Continuum Plain English Reference Manual
Continuum Plain English Reference Manual
Language Reference
© 2010, Schneider Electric
All Rights Reserved
No part of this publication may be reproduced, read or stored in a retrieval system, or
transmitted, in any form or by any means, electronic, mechanical, photocopying,
recording, or otherwise, without prior written permission of Schneider Electric.
This document is produced in the United States of America.
Andover Plain English™ is a trademark of Schneider Electric.
Andover Infinet™ is a trademark of Schneider Electric.
All other trademarks are the property of their respective owners.
Schneider Electric
One High Street
North Andover, MA 01845
(978) 975-9600
Fax: (978) 975-9782
http://www.schneider-electric.com/buildings
ii Schneider Electric
Table of Contents
Chapter 1 Fundamentals
Introduction .......................................................................................................................1-2
Continuum Products..................................................................................................1-2
Continuum System Architecture .....................................................................................1-3
Simple Continuum System ........................................................................................1-3
Moderate Continuum System....................................................................................1-3
System Components .................................................................................................1-4
Network Controllers................................................................................................1-5
Infinet Controllers ...................................................................................................1-5
MS/TP Controllers..................................................................................................1-5
I/O Modules............................................................................................................1-5
Workstations ..........................................................................................................1-6
CyberStation Software ...........................................................................................1-6
Database................................................................................................................1-6
Infinet......................................................................................................................1-6
LBUS ......................................................................................................................1-6
MS/TP ....................................................................................................................1-6
Objects and Classes .........................................................................................................1-7
Objects ......................................................................................................................1-7
Object Naming Convention ....................................................................................1-7
Alias Naming Convention.......................................................................................1-8
Classes......................................................................................................................1-9
BACnet Objects vs. Continuum Objects ...................................................................1-9
Attributes .........................................................................................................................1-10
How to View Attributes ............................................................................................1-10
Basic Attribute Listing..............................................................................................1-11
Accessibility .............................................................................................................1-11
Object Ownership ...........................................................................................................1-12
Hierarchical View of System Objects ......................................................................1-12
Network Paths .........................................................................................................1-13
iv Schneider Electric
Using the Plain English Wizard .....................................................................................2-30
Opening the Plain English Wizard...........................................................................2-30
The Wizard File Selection Menu .............................................................................2-31
Selecting and Configuring a Wizard Program .........................................................2-31
The Object References Screen...............................................................................2-33
The Final Wizard Screen.........................................................................................2-34
vi Schneider Electric
Chapter 6 Functions, Arrays, and Logs
Functions ...........................................................................................................................6-2
Calling a Function......................................................................................................6-3
Calling a Function without Arguments.......................................................................6-3
Calling a Function with Arguments............................................................................6-3
Functions that Return a Value...................................................................................6-4
Arrays .................................................................................................................................6-5
Setting Up an Array of Variables ...............................................................................6-5
Logs....................................................................................................................................6-6
How a Log Updates...................................................................................................6-6
How to Retrieve Log Values......................................................................................6-7
Log Update Intervals .................................................................................................6-7
Log Types..................................................................................................................6-7
Setting Up a Log........................................................................................................6-8
Using Arrays or Logs in Functions ............................................................................6-8
Chapter 7 Keywords
Section 1 Format Conventions .......................................................................... 7-2
Keyword Formatting Standard ........................................................................................7-2
Identical Format for All Keywords .............................................................................7-2
Format .......................................................................................................................7-2
Purpose .....................................................................................................................7-2
Remarks ....................................................................................................................7-2
Example.....................................................................................................................7-2
Related Keywords .....................................................................................................7-2
Alias...........................................................................................................................7-3
Products Supported...................................................................................................7-3
Modes Available ........................................................................................................7-3
Text and Symbols Used in the Format Heading ............................................................7-5
Format Heading Information......................................................................................7-5
Capital Letters ...........................................................................................................7-5
Bold Italics .................................................................................................................7-5
Parentheses ( )..........................................................................................................7-5
Italics .........................................................................................................................7-6
Comma (,) and Colon (:)............................................................................................7-6
Period (.)....................................................................................................................7-6
Format Terms in Bold Italics ...........................................................................................7-7
Replacement of Terms ..............................................................................................7-7
Number......................................................................................................................7-7
Integer .......................................................................................................................7-7
String .........................................................................................................................7-7
Name .........................................................................................................................7-7
List .............................................................................................................................7-7
x Schneider Electric
Section 7 Keywords S through Z................................................................... 7-303
SAVE Statement (on controller) ............................................................................7-303
SAVE Statement on workstation ...........................................................................7-309
SCAN System variable..........................................................................................7-313
SEARCH Function ................................................................................................7-315
SECOND System variable ....................................................................................7-316
SELECT (CASE) Statement .................................................................................7-317
SendEmail Function .............................................................................................7-320
SET Statement ......................................................................................................7-324
SETDISPLAY Function .........................................................................................7-327
Shell Statement ....................................................................................................7-329
Show Statement ...................................................................................................7-332
SHOWREPORT Statement...................................................................................7-334
SIN Function..........................................................................................................7-338
SQRT Function......................................................................................................7-339
StandardDeviation Function................................................................................7-340
STATUS# System variable (programmable).........................................................7-343
STOP Statement ...................................................................................................7-344
STRING Statement ...............................................................................................7-346
STRINGFILL Function ..........................................................................................7-348
STRTODATE Function..........................................................................................7-351
STRTONUM Function ...........................................................................................7-354
SUCCESS Constant..............................................................................................7-355
SUM Function........................................................................................................7-356
SystemStatus System variable ............................................................................7-358
TAB Function ........................................................................................................7-360
TAN Function ........................................................................................................7-361
TD Local variable ..................................................................................................7-362
TH Local variable ..................................................................................................7-363
THE Statement......................................................................................................7-364
TIMEPIECE Function ............................................................................................7-365
TIMES Operator ....................................................................................................7-367
TM Local variable .................................................................................................7-368
TOD System variable ............................................................................................7-369
TOUCHEDCELL System variable ........................................................................7-371
TRUNCATE Function............................................................................................7-372
TS Local variable...................................................................................................7-375
TURN Statement ...................................................................................................7-376
UniquePIN System variable..................................................................................7-378
UPDATE Function.................................................................................................7-379
UpdateExtLog Function .......................................................................................7-384
VERSION System variable....................................................................................7-391
WEEKDAY System variable .................................................................................7-392
WHILE Statement .................................................................................................7-394
WHITE Constant ...................................................................................................7-396
WriteFile Function ................................................................................................7-397
WriteProperty Function........................................................................................7-401
YEAR System variable..........................................................................................7-403
• Introduction
• Continuum Structure Architecture
• Objects and Classes
• Attributes
• Object Ownership
Introduction
The Andover Plain English™ language (PE) was developed by Schneider Electric to
provide our customers with the ability to customize their building automation systems in
accordance with specific site requirements. Similar to BASIC, PE is based on keywords
that provide a simple straightforward approach to developing programming statements
and requires minimal programming experience.
Andover Plain English™ is included as part of Andover Continuum's Plain English
Integrated Development Environment (IDE), a complete suite of highly integrated tools for
writing, editing and debugging PE programs. The Plain English IDE is described in
Chapter 2 of this document.
The programs developed with PE support the Andover Continuum line of BACnet and
Infinity controllers and workstations.
Ethernet IP Network
bCX1
BACnet
NetController Router Network
Path
ACC I/O Bus
PC Windows IOU Modules
Workstation running BACnet
CyberStation with MS/TP
Database RS-485 b3xxx
PC Windows
Workstations
running
CyberStation
SQL
Database
Server
Infinity
CX 9xxx NetController
LBUS IOU Modules
bCX1 Controller
BACnet
Controller
Router
IOU Modules
b3xxx
Local field wiring
Local field Infinet Infinet
wiring
BACnet BACnet
MS/TP Local field Local field
Controllers
RS-485 wiring wiring
Local field
wiring
Infinet Infinet
b3xxx
Controllers Controller
System Components
The following paragraphs define the specific components that make up the Andover
Continuum system, varying from the types of controllers to the different connections. The
system components are as follows:
• Network Controllers • CyberStation Software
• Infinet Controllers • Database
• MS/TP Controllers • Infinet
• I/O Modules • LBUS
• Workstations • MS/TP
MS/TP Controllers
Schneider Electric offers a complete line of MS/TP BACnet-compatible sub controllers
(b3 series) that are functionally equivalent to the entire i2 product line.
I/O Modules
Continuum I/O modules are specialized units that receive sensor inputs and activate
equipment (valves, fans, and so on) and perform access control functions. They connect
directly to the NetController II or the CX99xx NetController. Available I/O modules include
input, output, mixed I/O, and display configurations.
CyberStation Software
CyberStation is a Windows-based application program that runs on a PC workstation and
interacts with the control system. It provides a graphic user interface (GUI) that can
display and manipulate data that allows the entire site management of adjusting
schedules and setpoints, acknowledging alarms, controlling doors, tracking personnel,
etc.
Database
The Database stores all the vital information pertaining to the building automation control
system. The database engine is either Microsoft SQL server or SQL Desktop Edition.
Andover Infinet™
The Andover Infinet is a high performance, token-passing LAN that allows Infinet
application controllers to communicate with each other and to a single CX or
NetController. Using InfiLink repeaters, it is possible to have 127 Infinet controllers on
one Infinet. Data transmits over the Infinet at a rate of 19.2 Kb/sec.
LBUS
The LBUS is an RS-485-based protocol that is used by the system AC256 to
communicate with older IOU modules. The NetController can communicate to these IOU
modules using the LA-1 converter. Only one LBUS can be connected to a CX controller.
Each LBUS can handle up to 16 IOUs.
MS/TP
MS/TP is an RS-485 based network that connects Andover Continuum and third-party
BACnet devices to the bCX1 controller.
Objects
Objects are the basic building blocks of Schneider Electric's Andover Continuum control
systems. All the items that make up the system, both hardware and software are
identified as objects. Each item appearing on a CyberStation workstation screen
represents an object. For example, objects contained within the controller class include:
• CommPort
• Input
• Output
• User
• Group
Graphical icons, displayed in the Continuum Explorer, represent both hardware objects
and software objects.
Object Naming Convention
When you create a name for an object in CyberStation, the system automatically creates
a second object identifier called an Alias. The object name can be lengthy and descriptive
whereas the object alias must conform to a stricter naming convention (see "Alias
Naming Convention" on the next page).
The object name is stored in the Continuum database, not in the controller.
_ Underscore character.
. Period character
/ Slash character
− Dash character
Space character
Object names can be up to 64 characters long and may consist of any combination of the
naming character set.
Ideally, the object name should be as descriptive as possible to help identify the object it
represents. For example, an output point for an operating fan could be named Fan
Start/Stop.
Alias Naming Convention
The alias is the object reference used in programs and functions. CyberStation creates
the alias version of the object name whenever a new object is created.
The alias name is saved to both the controller and the Continuum database.
The rules for the alias naming character set are as follows:
• The length of the alias name cannot exceed 16 characters
• Must start with a letter, not a number
• Alphanumeric characters
• Period and underscores are the only punctuation characters allowed
• No spaces
• No reserved words, keywords or symbols (+, -, /, *, etc.)
The attributes that appear on the object's General tab varies depending on the selected
object.
Accessibility
The attributes for all objects used in PE programs are accessible from any CyberStation
workstation. Most object attributes can be altered from the Command Line window of the
workstation. (Refer to Chapter 3 for a detailed description of how to view object attributes
using the Command Line.)
Appendix C contains a complete list of attributes for each object contained in
CyberStation.
Root
Network
Bldg1 Controller
Input Point
CX1
Rm_Temp1
Network
In this statement, the correct path from the network and controller (BLDG1, CX1) to the
input point (RM_TEMP1) must be specified in order to run the program.
If you click the hot spot on the left-hand side of the Continuum
Main Menu, the System & Status menu page appears.
Class of
Objects
Displayed
In IDE Editor
Explorer
IDE Explorer
Title Bar
The Title bar indicates the directory path to the current PE program file. If you change
programs in the PE Editor, the Title bar will change to reflect the new path.
File Menu
The File Menu offers the following options:
Option Description
New Opens a new program file.
Open Opens an existing program file.
Close Closes the current active program file.
Delete Deletes the current active program file.
Save Checks and saves the active program file.
Save As Checks and saves the active program file under a new name.
Save All Checks and saves all open program files.
Close All Closes all open program files.
Import Inserts the contents of a text file into the active program file.
Export Saves the active program file to a text file.
Configuration Displays the Infinity Program, or the Function Configuration Dialog.
Firing Order Displays and allows editing of the current firing order.
Print Prints the active program file.
Option Description
Undo Reverts to the previous action.
Find Previous From the cursor position, finds the previous instance of the text for
which you last searched.
Replace Finds specified text, and replaces it with a different specified text.
Goto Places your cursor at the specified line number or line definition.
View Menu
The View Menu offers the following options:
Option Description
Toolbars When checked (√), adds the selected toolbar to the IDE screen.
When not checked, removes the selected toolbar from the IDE
screen. The toolbars are Main, Find, Check, Assistant, Explorer,
Command Line and Watch.
Set Font Displays the Font dialog box, allowing you to change the font for
the active program file.
Refresh Checks and saves the active program file, and refreshes
the screen.
Folder View Changes the IDE Explorer to folder view. In this view, the Root and
all folders appear in the navigation pane.
Network View Changes the IDE Explorer to network view. In this view, the
network you set up appears in the navigation pane.
Tools Menu
The Tools Menu offers the following options:
Option Description
Window Menu
The Window Menu offers the following options:
Option Description
Cascade Displays program windows overlapping diagonally.
Tile Horizontally Displays program windows in equal horizontal portions of
the editor.
Tile Vertically Displays program windows in equal vertical portions of the editor.
Note: A list of currently open windows appears at the bottom of the Window menu.
Clicking any window in the list will make it the active window.
Help Menu
The Help Menu offers the following options:
Option Description
About IDE Displays the copyright and version number for the PE editor.
Cut text
Copy text
Paste text
click
3 To search from the cursor position to the beginning of the program,
click
Stops compilation
Starts the Plain English Wizard. (See "Using the Plain English
Wizard" in this chapter.)
Back Up
Current Device One Level
Button
Class Drop-
Down List Box
List of Objects
Matching
Selected Current
Class
IDE Explorer
Objects Provides a temporary storage place for object names that you need
in a program
Keywords Lists all the Plain English language keywords that are not functions.
Hide Removes the window from view. Make windows visible from
the View menu.
Float in Main Puts the tool window in the Main Window can be dragged out
Window Window and can be moved within it. of the Main Window.
3 Select the Autostart checkbox if you want the program to start running
the moment it is saved.
5 Select either Looping or Fall Thru in the Flow Type selection box
depending on what type of program is intended. (See "Looping vs.
FallThru" in Chapter 3.)
Text Entry
On a Continuum CyberStation you can create your program by entering text with the
keyboard and using either the mouse or keystroke combinations to:
y Move the cursor
y Select text
y Change and move text
The keystroke combinations to accomplish these tasks are described in the following
table.
Find What Enter the text to search for⎯can be up to 132 characters including
spaces.
Match whole Only finds the selected word and rejects other words that would
word only contain it (if "one" is the selected word, it would reject "done", "bone",
"alone", and so on).
Match case Will match the case of the selected word( if "One" is selected it will
ignore "one")
Direction Up searches from the cursor position to the beginning of the
program. Down searches from the cursor position to the end of the
program.
Find Next Finds the next instance of the word/s listed in the "Find What"
column.
Find What Enter the text to search for⎯can be up to 132 characters including
spaces.
Replace with Enter the text you want to replace the found text with.
Match whole Only finds the selected word and rejects other words that would
word only contain it (if "one" is the selected word, it would reject "done", "bone",
"alone", and so on).
Match case Will match the case of the selected word( if "One" is selected it will
ignore "one")
Find Next Replaces the found text when it is clicked and then the Replace
button is clicked.
Go To Dialog Box
Importing Programs
You can import an external program (located on a floppy disk or in a different directory)
into an existing program in the Editor. To do this, perform the following steps.
Exporting Programs
You can export an existing program in the Editor to another drive or directory. To do this,
perform the following steps.
Exporting a Program File
Step Action
Make sure the program file you wish to export is the active program in
1
the Editor window.
2 Open the File menu from the main menu bar.
3 Select Export from the File menu.
4 The IDE File Export dialog box appears.
Note: If the existing program in the Editor has errors and you don't have time to correct
them, exporting the file is a good way to save the program.
To save a program file, click Save in the File menu, or click the button in the Main
Toolbar.
The IDE automatically checks the file for errors before saving. If errors are found, the
Check tab on the Assistant becomes active and lists the errors. Double click any error
listed in the Assistant. This will place the cursor on the program instruction in the Editor
that caused it.
Note: The IDE will not let you save the program file, until you fix all the errors.
If you want to postpone fixing the errors in your program until a later time, you can use
the Export feature of the Editor to place it in a temporary file.
When all the errors have been corrected, the Check page of the Assistant will display the
following message.
In order for the program to run, its State attribute must already be Enabled. (See
"Configuring the Program File" in this chapter)
The system then does the following:
y Sets the program’s Status attribute to Active.
y Sets the program’s CurrentLine attribute to its first line.
y Updates the program's LineStartTime to the time the Scan starts. (See Chapter 3 for
details on the Scanning process.)
To access that page, click the Configuration icon in the Check toolbar or select
Configuration from the File menu. When the Configuration dialog box appears, click the
Run Time tab to activate the file status window.
You cannot change any of the information in this window. The controller automatically
updates it. The Table on the following page explains the Run Time Page features
Current Line Start Displays the date and time the current line began executing.
File Size Displays the number of characters (bytes) in the file (1024 bytes
equal 1KB). The size of the file also includes basics about the
file, such as its name, flowtype, and other attribute settings that
the controller stores.
Current Line Displays the name or number of the currently active line of the
program. No current line shows if you have not labeled any
program lines.
Error Gives the explanation of the last runtime error that occurred
when running this program.
Click the Next> button to bring up the File Selection menu page.
Note: If you select a Function from the File Selection menu, the State, Flow Type and
Autostart selection will not be available in the File Configuration dialog box.
Click the Next> button displays the Object References Wizard screen.
Note: Some of the pre-written programs require additional input before they can be
transferred to the Editor. These programs are discussed on the next page.
To replace the object references, click the empty Object Name field. This will display a
browse button. Click it and the “Select an Object” dialog box (not shown) appears.
Choose the object you want and click on the Select button to place it in the Object Name
field.
When you are finished, click the Next> button to go to the final Wizard screen.
Use of "The"
Using "the" makes the statement appear more grammatical, but its use is optional in the
Plain English Language. The following example shows how “The” improves a statement’s
readability:
IF THE FAN IS ON THEN TURN ON THE PUMP
LINE BEGIN
TURN THE HEAT OFF
TURN THE FAN ON
.....
Or
BEGIN:
TURN THE HEAT OFF
TURN THE FAN ON
.....
All of the statements following the “BEGIN” label are part of that line, until another LINE
label is encountered. The statements in the line are indented here to emphasize their
relationship to the line label. Ideally, you should always form lines this way.
Line labels do not necessarily need to include the word "LINE". The line label could have
been typed with just the name followed by a colon ( : )
Line labels are limited to 16 characters, including underscores, periods, and numbers.
Comments
Comments are optional sentences often used to help document the operation of a
program for the human reader. Comments are not operated upon; they are entered as
single lines preceded by a single quotation mark ( ‘ ). The following example contains a
comment:
' The following line begins the cool down process
Begin:
TURN THE HEAT OFF
TURN THE FAN ON
You can add as many comments as necessary, but each is restricted to one physical
(132 characters) line.
You can also add a comment after a statement on the same physical line, as shown in
the following instance:
TURN THE FAN ON ‘ start cooling
PE Keyword Types
Keyword Type Definition
Statement (an action Defines an action the controller can perform.
word)
Local Variable A variable (a value that changes) that does not carry over
a value from another program, but has a value only within
the active program.
Chapter 7 lists all the keywords available in the PE and explains the correct format to use
for each keyword.
Other Words
Besides keywords, other types of words the controller knows are:
y Names you give to objects such as network controllers, Infinet controllers, BACnet
controllers, programs, files, and points.
y Words that Andover Continuum has reserved (called “reserved words” see Appendix
B).
y Attributes and their settings (see Appendix C).
Command Line
The Command Line is an area within the Plain English Development Environment of
CyberStation where you manually type in and execute Plain English commands.
If OCCUPIED is On then
Turn On the RoomFan
Else
Turn Off the RoomFan
Endif
Next, you associate the point called OCCUPIED with the program on the appropriate
controller. To do this, you would:
y Select the associated system variable or point editor from the appropriate controller
in CyberStation’s Explorer.
y Open the Triggers tab page on the editor and browse through the Plain English
programs to locate and select the Fan program.
This adds the program to the system variable or point’s trigger list. Refer to Chapter 13 of
the Continuum CyberStation Configurator’s Guide for detailed information on setting up
triggers.
You can also use triggers to reduce controller scan time. (See “Triggering Programs from
Points” later in this chapter)
You cannot, for instance, open the damper and close the valve in the same statement.
The following is an invalid statement:
OPEN THE DAMPER AND CLOSE THE VALVE
IF LIGHTSWITCH IS ON THEN...
The three dots after THEN in the statement indicate that more text is required to
complete the statement.
Below is an example of a statement that contains another operator⎯IS GREATER
THAN:
The following complete IF..THEN statement appears to have two verbs; however, the
operator (IS) belongs with IF..THEN and TURN ON remains as the only verb:
TURN ON PUMP
For information on how to include multiple statements after the word THEN, see the
IF..THEN..ELSE keyword in Chapter 7.
System variables retain 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 0.25 seconds long, then the actions are taking place at between 12
and 12.25 seconds. This is a factor to keep in mind when timing is critical.)
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.
The controller converts each input that has changed since the last scan into engineering
units. Conversion 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). The converted
value of each input point is stored in the input's object value attribute.
Once the new values are assigned to input points, those points retain their values
throughout the scan. Any 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.
The controller executes one line from each program in the sequence the firing order list
specifies.
The controller treats command lines like one-line programs. The scanner checks for
command lines between every two-program lines during the scan and responds
immediately. If any command line or program line prints to the Status bar, the Status bar
display changes after the scan processes alarms. If more than one statement prints to
the Status bar, the last statement "wins."
The controller includes a safety mechanism such that no single program can monopolize
the scan. The mechanism is a statement counter that disables a program and sets its
ERROR attribute to "Executed too many statements on one line" if the scanner tries to
execute more than 5000 statements in a single line during a single scan.
Conversion 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.
As an example, 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⎯the
setting of the last program is the one that takes affect.
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.
The following describes the actions of an Infinity or i2 controller, not a BACnet controller.
BACnet alarms are slightly different.
Points with Infinity alarms can be triggered by up to eight separate conditions. Whenever
the point's value is set during the scan, the controller evaluates each condition
associated with an alarm and updates the point's alarm attributes: ALARM1 through
ALARM8. Or, it calculates the alarm's 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 the alarm delay time.
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 reached their delay times, and if
they are still TRUE, sets the alarms.
After the scan processes the alarms, it updates the Status bar display if its setting has
changed or if a value it is displaying has changed.
Exported Points
Point values can be exported at any time during the scan. As an example, if
PROGRAM1 turns a 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 the same program.
This sets each program's status to active, and runs the program, starting execution at the
first line of the program.
This chapter describes the types of points, constants and variables that exist in the
Andover Continuum system. Some topics included in this chapter are: the difference
between hardware and software points, what constitutes a constant and how a constant
differs from a variable, what a system defined constant is, what makes a local variable
different from a system variable and unique i2 controller system variables.
This chapter discusses the following topics:
• Points
• Constants
• Variables
• Local Variables
• System Variables
Points
Points are objects that supply information to the control system. There are five types of
points:
y Input
y Output
y Numeric
y String
y DateTime
Input and output points are hardware points, whereas numeric, string, and datetime
points are software points.
Hardware Points
Controllers use input and output points to interact with the environment. They connect to
sensors or devices directly from certain controllers or via input/output IOU modules that
are attached to a controller.
Input Points
An input point senses temperature, pressure, and the closure of a switch contact or any
outside environmental entity that can be electrically represented. Input circuits in Andover
Contiuum controllers act like voltmeters; they can measure the presence or absence of a
voltage. In situations where switch contacts are being sensed, the input circuit supplies
the voltage to one side of the contact. When the contact is closed, the voltage is “sensed”
on the other contact. Temperature and pressure sensors modify the value of the voltage
sensed. Each input point includes an associated “value” attribute that represents the
voltage reading at one particular point in time. When you reference an input point in a
Plain English program you are actually referencing the value attribute of the point.
Example:
IF INPUT1 = 74 THEN …
Software Points
Software points are storage locations found within the controller or workstation where
information can be saved for use in a program. Some software points are read-only.
These points can represent system information regarding the status of various hardware
or software entities.
The following are examples of software points:
y Numeric (called Multi-State Value, Analog Value or Binary Value on Workstations)
y String
y DateTime
A good example of a software point would be a numeric that serves as a place to store
the high or low limit (set point) for a temperature reading.
Numeric Points
Numeric points are storage locations in a controller's memory that contain numeric-only
information. A numeric point could also be used to indicate whether a building is occupied
or not, in which case its value could be ON or OFF.
DateTime Points
Datetime points are storage locations in a controller or workstation's memory that store
date time information. They store a timestamp (the default is January 1, 1989) not month
or day of week. They are used in schedules and to create time stamps.
Note: For DateTime constant values, see the StrToDate conversion function.
Numeric Constant
A numeric constant is a number. The number can be an integer (with no decimal places)
or a number with a decimal (floating point).
Integer Numbers
Integer numbers have no decimal places. When an integer number is required in a
keyword format, you can use only a whole number, positive or negative, including zero.
String Constants
A string constant is a series of ASCII characters, including blanks, surrounded by
quotation marks ("string").
Anything you put after the vertical bar is interpreted as a code or a format for a variable
value. For example, to print a quote enclosed by quotation marks you would use (“)
following the vertical bar. In the statement:
Note: Do not use system defined constants as names when you name programs, points,
or other items.
Numeric Variables
A numeric variable is a name that represents a number. Numeric variables are subject to
the same range limitations as numeric constants. Numeric constants, variables, points,
expressions (formulas), or functions can be compared to other numeric type items or
used in mathematical calculations. For more about numeric variables, see the NUMERIC
statement keyword in Chapter 7.
String Variables
A string variable is a name that represents a series of alphanumeric characters. String
constants, variables, points, expressions, or functions can be compared to other string
type items. Strings cannot be used in mathematical calculations unless they are
converted to a numeric type. For more about string variables refer to the STRING and
STRINGFILL statement keywords in Chapter 7.
DateTime Variables
A datetime variable is a name that represents a date and time. Datetime constants,
variables, points, expressions, or functions can be compared to other datetime items.
You can retrieve the date and time from the STRTODATE function or from the DATE
system variable. Chapter 7 provides a full discussion of both these keywords.
You can print out a datetime variable to see what date and time is in it, but the date and
time that prints is in a predefined format you cannot change.
The date and time prints in this format (in the 24-hour clock):
MONTH DD YYYY hh:mm:ss
Note: If you name a local variable with the same name you have defined for a point, your
program always assumes you are referring to the local variable and not to the point.
You can have a total of 255 local variables (of all types) in a single program. Define local
variables using the following keyword statements (each is listed in Chapter 7).
• Numeric
• String
• DateTime
Numeric Keyword
The Numeric keyword assigns the name that follows it as a local numeric variable:
Numeric RateOfRise
String Keyword
The String keyword assigns the name that follows it as a local string variable. The
maximum number of characters allowed is defined before the name:
String 40 DirtyFilterMsg
DateTime Keyword
The DateTime keyword assigns the name that follows it as a local variable that accepts a
date and time:
DateTime LocalDateTime
Note: The i2 and BACnet controller programmable system variables and techniques are
covered extensively in the i2 and BACnet Controller Technical Reference Guides.
Note: On all other controllers, when AC power is restored the PowerFail system variable
is ON only during the first scan after power restoration.
When AC power is applied to the controller, the current date and time is recorded to the
PowerupTime system variable. This system variable can be used to determine how
many hours have elapsed since AC power was restored to the controller.
When the system sets the PowerFail system variable to ON, some additional system
variables provide the user with power control for certain portions of the system. These
are settable by the user only if the system is operating in battery backup mode (meaning
the PowerFail system variable is ON). These power-related system variables can be ON
or OFF.
Type Conversion
If the compared expressions are not the same type, you must convert them to the same
type using the keywords below:
y StrToNum converts a string to a number.
y NumToStr converts a number to a string.
y StrToDate converts a string with the correct information into a datetime.
RESULT = SQRT(25)
The number the function operates on (25) is included within parentheses. This function
returns the value 5.
When a function is used to calculate or provide a value, it “returns” the value to the
program that calls the function. A program may also provide (“pass”) the function some
values (called “arguments”) to use in calculations or actions it must take. Arguments
(separated by commas if these are several) are included in parentheses following the
function name. Not all functions require arguments, however, you should include the
parentheses even if it is empty (e.g., function ()).
You can run a function from:
y The Command Line, if the function exists in a controller or on a workstation.
y A Program, if the program and the function exist on the same controller.
User-defined functions are created using standard Plain English keywords within
something called a “function file”. The name you give the file becomes the word you use
to activate the function. The small Plain English program you write as a function becomes
a subroutine that may be called whenever that particular action needs to be done.
You can use the RETURN statement to tell the controller to return to the calling program,
function, or command line.
ARG 1 TMP1
ARG 2 TMP2
ARG 3 TMP3
ARG 4 TMP4
NUMERIC TOTAL.CHANGE
TOTAL.CHANGE = (TMP1 - TMP2) + (TMP2 - TMP3) + (TMP3 -TMP4)
RETURN (TOTAL.CHANGE/3)
As shown below, you could also give the expression a local variable name.
ARG 1 TMP1
ARG 2 TMP2
ARG 3 TMP3
ARG 4 TMP4
NUMERIC TOTAL.CHANGE, MID.CHANGE
TOTAL.CHANGE = (TMP1 - TMP2) + (TMP2 - TMP3) + (TMP3 - TMP4)
MID.CHANGE = TOTAL.CHANGE/3
RETURN MID.CHANGE
Use a name instead of an expression in the RETURN statement because the name is
more readable as its meaning is automatically clear.
RETURN can return a string in quotation marks or a date and time as well as a number,
and all of these are values.
Example of an Eight
Element Array
Index Value
1 8.000
2 8.510
3 9.000
4 9.620
5 10.000
6 10.750
7 11.000
8 11.250
CLOCK[1] is 8.000, CLOCK[2] is 8.510, CLOCK[3] is 9.000, and so on. Each entry in an
array is referred to as an element. A Continuum array can contain up to 32,767 elements.
You can also put a numeric variable in place of the index number, such as
CLOCK[COUNT]. The variable is called an "index variable."
NUMERIC TEMPERATURE[50]
For more on defining arrays and other types of variables, see the NUMERIC, STRING,
and DATETIME keywords in Chapter 7.
Example of Log
Updates
Index Value
Most recent
1 72 value recorded
2 73
3 75
4 74
5 73
6 72 th
8 most recent
7 71 value recorded
8 73
The log position with the index [1] contains the newest logged value. The highest index
number holds the oldest value. However, if you access the log without an index number,
you receive the current value of the point. For example, the OUTSIDEAIR log updates as
follows:
OUTSIDEAIR is the current value.
OUTSIDEAIR[1] is the most recently logged value.
OUTSIDEAIR[2] is the second most recently logged value.
OUTSIDEAIR[3] is the third most recently logged value, and so on.
PRINT OutsideAir[6]
Log Types
When you define a log, as with any other point, you must specify a type (numeric, string,
datetime, input, or output) and the number of entries, called elements.
Logs automatically update in one of four ways:
y Instantaneous
y Average
y Minimum
y Maximum
Each update takes all the values of the last scan and acts on either the most recent
(instantaneous), the average of them (average), the lowest of them (minimum), or the
highest of them (maximum).
String and datetime logs must be instantaneous. It is also possible to have a string log
that contains messages.
AVERAGE (OUTSIDEAIR)
However, functions or other keywords that do not have a special format for arrays do not
carry out the function on the entire array or log, but instead automatically take the current
value of the point.
For example, PRINT OUTSIDEAIR prints the current value of OUTSIDEAIR, rather than
each value in the log.
The current value of the log and the last value logged are not necessarily the same. The
current value is the one read by the current scan.
Functions automatically carried out on the entire log are:
AVERAGE MAXIMUM
MAXITEM MINIMUM
MINITEM STANDARDDEVIATION
SUM
This chapter provides a complete description of all the keywords used in Andover
Continuum Plain English programming language.
The chapter begins with a discussion of the formatting conventions used to describe each
keyword, followed by a listing of the keywords categorized into logical groups.
The main body of the chapter contains the keyword descriptions arranged in alphabetical
order.
This chapter contains the following topics.
Identical The keywords are listed in alphabetical order beginning on page 7-13.
Format for All Each keyword starts at the top of a new page and its classification by
Keywords type is indicated in the right-hand side of the keyword heading. The
classification types are: constant, function, operator, statement and
system variable.
Format Shows the correct way to enter the keyword instruction. The correct
order must be followed when entering the keyword into the system to
avoid programming problems. Additional information regarding text
style and symbols appearing under this heading are described on
page 7-5.
Related Keywords that are often used with the keyword being described or
Keywords that are closely related to it.
Modes Lists whether the keyword can be used in the command line mode,
Available the program file mode, or both. Programs cover InfinityPrograms,
InfinityFunctions, Functions and Programs.
Format The information contained after the keyword Format heading shows
Heading how and what you must enter to correctly use the indicated keyword.
Information Depending on the keyword, the Format may present certain words
that you must type exactly as they are shown, and indicate words that
you must replace with an appropriate name or number.
Capital Letters Any words shown in CAPITAL LETTERS indicate words that must
form part of the keyword instruction. They can be typed with upper or
lower case letters. For example:
Format ACOS (number)
indicates that ACOS must be entered (typed) as "ACOS" or "acos".
Bold Italics Any terms shown in bold italics stand for elements that you must
replace with a name, number, or other item. For example:
Format ACOS (number)
indicates that number must be replaced with the appropriate number
to satisfy the use of the keyword ACOS (arccosine) in the given
program.
The terms that appear in bold italics and the items that replace them
are described on page 7-7.
Parentheses ( ) When parentheses are shown as part of the Format, they must be
typed as part of the keyword statement. For example:
Format ACOS (number)
might require the arccosine of the number ". 7071", so the keyword
statement would be entered as ACOS (.7071).
Italics Regular italics indicate elements that are not a mandatory part of the
keyword statement. They can be replaced with a particular word or
they may be left out of the statement. For example:
Format STRING string_length LocalVariable
which defines a local string variable. You can optionally specify the
length of the string in characters.
Comma (,) and When a comma or colon is shown as part of the Format, it must be
Colon (:) typed as part of the keyword statement. For example:
Format SEARCH (string, search_string)
Indicates that the words substituted for string and search_string in
the keyword statement must be separated by a comma (,).
Period (.) The period is used as a character in names and is not interpreted as
punctuation. Never put a period at the end of a keyword statement or
command line.
Replacement of When the following terms appear in bold italics after the keyword in
Terms the Format heading, they must be replaced according to the following
rules.
String Replace string with any text (word or words) or any name that stands
for a text. You can also replace it with any expression that gives a
string of text, including a formula or function.
Logical This section presents the Andover Contiuum Plain English keywords
Keyword in their associated logical groups. Details on each keyword are in the
Groups Listing alphabetically ordered keyword descriptions that follow this section.
Table 7-1. Logical Grouping of PE Keywords
Group Keyword Type
Access Control ACCESSLOG System variable
ACCESSSERVER System variable
AVAILRECORDS System variable
CABINETTAMPER System variable
EVENTLOGSIZE System variable
READERPOWER System variable
SYSTEMSTATUS System variable
UNIQUEPIN System variable
Alarm Counting ACTIVEALARMS System variable
UNACKEDALARMS System variable
BACnet READPROPERTY Function
RELINQUISH Function
WRITEPROPERTY Function
Building Control MOVE Statement
TURN Statement
Control of Inputs and Outputs System variable
IOUCOMMFLT#
System variable
STATUS#
(programmable)
Control Over Communications Function
INITMODEM
Function
DIAL
Function
CLOSE
Function
HANGUP
Function
OPEN
Function (comm
READ
port)
Creating/Manipulating Files CLOSEFILE Function
FILE Statement
OPENFILE Function
POSITIONFILE Function
READFILE Function
WRITEFILE Function
EOF Constant
250 Display This group of keywords only applies to the 250-display unit.
Unit Keywords
Table 7-3. Keywords for the 250 Display Unit
Group Keyword Type
Display Unit Basics AUDIOBELL System variable
BACKLIGHT System variable
BEGINPOLYLINE Function
CLEARSCREEN Function
CONTROL Function
DRAWELIPSE Function
DRAWLINE Function
DRAWRECTANGLE Function
ENDPOLYLINE Function
LINEPOINT Function
LOCATE Function
SETDISPLAY Function
TOUCHEDCELL System variable
BLUE Constant
FILL Constant
NOFILL Constant
WHITE Constant
ABS Function
Purpose Returns the absolute value of number. The absolute value of any
positive or negative number is always the positive number.
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation
Format AccessLog
Purpose Indicates the amount of the access log that has been filled, from 0 to
1. It can be interpreted as a percentage of the access log, and
displays as .01 for 1 percent, .02 for 2 percent, .03 for 3 percent, etc.
The value of the log includes up to six digits after the decimal point.
Remarks This system variable and the event log to which it refers exist only on
the controller. Since the event log contains all access events that
have occurred on the controller, the keyword applies only if you are
using the controller for access control.
Example 1 If any access events have been stored in the event log of a controller,
the controller's AccessLog system variable value is greater than zero.
You can see if the log has any events in it by using the system
variable in an IF..THEN statement:
Program File
If AccessLog > 0 then Goto CallingOut
. . .
Related EventLogSize
Keywords
Products ACX series, BACnet series, CMX series, CX series, and i2 series
Supported controllers.
Format AccessServer
Remarks The number is any number or expression that gives a result between
-1 and 1 inclusive.
Alias ARCCOSINE
Products BACnet series, CMX series, CX series, DCX 250, i2 series controllers
Supported (except i2885, i2887, i3885, i3887), and CyberStation.
Format ALARMS
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format 2: When used in a list of names between the last two items,
indicates the end of the series.
Table 6-1 compares the order that the controller acts on all operators.
Because AND and OR are acted on last, you can form logical
statements without using too many parentheses. See Example 3 for
how to use AND and OR together.
The ampersand (&) is the alias for the logical AND only.
Example 2 To run a series of programs, instead of using RUN several times, you
can list the program names on the same command line, using AND (final
comma optional) to indicate the last item in the list:
Program File
Run the Cooling, Heating and Fan
Or using the final comma:
Run the Cooling, Heating, and Fan
You may not use the ampersand (&) for AND in a series. You may,
however, leave out AND as follows:
Run the Cooling, Heating, Fan
Example 4 AND is also used with the operator BETWEEN, as in the following
example:
Program File
If Tod is between 8:00am and 6:00pm then...
You may not use the ampersand (&) for AND when it is used with
BETWEEN.
Related IF..THEN..ELSE
Keywords IS...
OR
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Example 1 In this example, ARG[5] returns the status of a report. To make that
easier to understand, ARG[5] is redefined as RPTSTATUS. The
function refers to RPTSTATUS for the variable value from then on.
Function File
Arg 5 RPTSTATUS
Example 2 To test the report status to see if it equals SUCCESS, you can call on
the argument variable using its easy-to-remember name (from
Example 1):
Function File
If RPTSTATUS is Success then…
Example 3 To test the report status to see if it equals SUCCESS, you can also
call on the argument variable using ARG[5]:
Function File
If Arg[5] is Success then…
Related PASSED
Keywords
Alias PARAM
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Purpose Returns the ASCII value of the first character of the string.
Example In this example, the function uses a string constant ("S") as its
argument:
Program File
asc ("S")
This statement returns 83, which is the ASCII value of the character
S.
Related CHR
Keywords
Products BACnet series, CMX series, CX series, DCX 250, i2 series controllers
Supported (except i2885, i2887, i3885, i3887), and CyberStation.
Alias ARCSINE
Products BACnet series, CMX series, CX series, DCX 250, i2 series controllers
Supported (except i2885, i2887, i3885, i3887), and CyberStation.
Purpose This function is available only on a workstation. You can use ASK in
multiple programs, however, only one ASK window displays at a time.
Example 1 Suppose you want to ask the operator to enter a setpoint. You would
begin by creating a variable to receive the setpoint. Then, you would
use ASK to draw a window on the workstation screen as follows:
Program File
Numeric AnySetpt
Ask "Setpoint Information", "Enter the new setpoint", AnySetpt
The displayed window would appear as shown on Figure 7-1.
Example 2 When you use ASK, you may want to check to see if it returns
SUCCESS, FAILURE, or FormCancel. If ASK returns FAILURE, you
can continue to try to set up the window until ASK returns SUCCESS,
as shown in the following fall thru program:
Program File
Numeric Result
String Anypoint, TitleString
Presenting:
Result = Ask ("Point Name", "Enter The Point Name", Anypoint)
Testing:
If Result = Failure then Goto Presenting
If Result = Success then Goto Working
If Result = Formcancel then Stop
Products
CyberStation
Supported
Modes
Programs only
Available
Alias ARCTANGENT
Products BACnet series, CMX series, CX series, DCX 250, i2 series controllers
Supported (except i2885, i2887, i3885, i3887), and CyberStation.
Alias ARCTANGENT2
Products BACnet series, CMX series, CX series, DCX 250, i2 series controllers
Supported (except i2885, i2887, i3885, i3887), and CyberStation.
Format AUDIOBELL
Purpose Makes the DCX 250-Display Unit beep for the number of seconds you
set it to.
Remarks You can use "TURN OFF AUDIOBELL" to stop the beep.
Example 1 Inside a program or from the command line, you set AUDIOBELL as
follows to make the controller beep for 15 seconds:
Program File
AudioBell = 15
Example 2 Inside a program or from the command line, you can stop the beeping
at any time as follows:
Program File
Turn Off AudioBell
Format AvailRecords
Example 1 To find out approximately how many remaining personnel slots are
available on an ACX series controller's memory, you would enter the
following at the command line:
Command Line
Pr MyNet\MyCX9410\MyACX701\AvailRecords
Format 2: Returns the average of the items in the array you name.
Format 3: Returns the average of the items in the log you name.
Remarks Replace numeric_ list with one or more numbers or names that
stand for numbers, separated by commas.
Items in the list must all be either numbers or variables that contain
numbers.
Example 2 Since you know a certain temperature varies, you have been storing
readings in an array called OAT. You then use the average function
on that array, as follows:
Program File
OAT.Avg = Average (OAT)
Example 3 You have been logging temperatures in a log for several hours. To
find their average, you find the average of that log, as follows:
Program File
HourlyAvg = Average (TempLog)
Alias AVG
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format BACKLIGHT
Purpose Turns on the background light of the DCX 250-Display Unit for the
number of seconds to which you set. Once it has been set to a
number, each second it will automatically decrement its value by one.
Remarks You can use "TURN OFF BACKLIGHT" to turn off the light
Example 1 Inside a program or from the command line, you set BACKLIGHT as
follows to turn on the DCX 250 Display Unit background light for 20
seconds:
Program File
BackLight = 20
Example 2 Inside a program or from the command line, you can turn on the DCX
250 Display Unit background light for 5 minutes when an operator
touches anywhere on the screen, as follows:
Program File
If TouchedCell then Set BackLight = 300
Example 3 Inside a program, you can turn off the DCX 250 Display Unit
background light as follows:
Program File
Turn BackLight Off
Purpose Branches to a different line for each value the number can have. You
put the line names in the linelist.
Replace linelist with one or more defined line labels (see LINE
statement) present in the current program. The label must be spelled
here just as it is defined, except you may interchange upper- and
lowercase. The line label may also be an integer.
Example You may have a series of steps (a line) that you want to run every
Friday to shut down equipment not required over the weekend. And
every Monday you may want to restart that equipment.
Example Remember that SUN is considered the first day of the week, so in the
continued program below, the first line listed after GOTO runs on Sunday, the next
on Monday, the next on Tuesday, and so on:
Program File
Basedon Wkd Goto Sun.1, Mon.1, Tue.1, Wed.1, Thu.1, Fri.1
…
Line Sun.1
…
Line Mon.1
…
Line Tue.1
…
Line Wed.1
…
Line Thu.1
…
Line Fri.1
Related GOTO
Keywords LINE
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series SCX series, TCX series controllers, and
CyberStation.
Modes Programs
Available
Format BEGINPOLYLINE ( )
Purpose Indicates that you want to begin drawing either multiple graphic lines
(polylines) or a polygon on the DCX 250-Display Unit. Returns
SUCCESS or FAILURE. Parentheses are not required if you put
BEGINPOLYLINE at the beginning of a statement.
Remarks Before you use BEGINPOLYLINE, set the display to NOFILL to form
lines, to FILL to form a polygon. Then give a series of line points (see
LINEPOINT) you want connected. Finally, you indicate the series of
line points is over by closing the instruction with ENDPOLYLINE.
Example 1 You create a line connecting a series of line points on the DCX 250
Display Unit by entering the following:
Program File
SetDisplay (NOFILL)
BeginPolyLine
LinePoint (10, 10)
LinePoint (10, 100)
LinePoint (100, 50)
LinePoint (40, 10)
EndPolyLine
Example 1 As shown on Figure 7-2, the DCX 250-Display Unit forms a line
continued (rather than a polygon) because you set the display to NOFILL.
Example 2 Create a polygon connecting a series of line points on the DCX 250
Display Unit by entering the following (again, no parentheses are
required):
Program File
SetDisplay (Fill)
BeginPolyLine
LinePoint (10, 10)
LinePoint (10, 100)
LinePoint (100, 50)
LinePoint (10, 10)
EndPolyLine
Example 2 The DCX 250-Display Unit forms a polygon (rather than a line)
continued because you set the display to FILL as shown on Figure 7-3.
Related SETDISPLAY
Keywords LINEPOINT
ENDPOLYLINE
Modes Programs
Available
Purpose Logically compares the binary equivalents of the two integers, digit by
digit. Creates a new binary number that contains a 1 for each digit's
position where the first number's bit and the second number's bit are
both 1. Sets all other digits to zero. Converts the new binary number
to its decimal equivalent.
Remarks The integer is any number from 0 to 65535. If you give a number
with a decimal point in it, BITAND uses only the integer from it and
drops the fraction.
Related BITOR
Keywords BITXOR
BITNOT
Remarks The integer is any number from 0 to 65535. If you give a number
with a decimal point in it, BITNOT uses only the integer from it and
drops the fraction.
Related BITAND
Keywords BITOR
BITXOR
Purpose Logically compares the binary equivalents of the two integers, digit by
digit. Creates a new binary number that contains a 1 for each digit
position where either the first number's bit or the second number's bit
is 1 and where both the first and second number's bits are 1. Sets all
other digits to zero. Converts the new binary number to its decimal
equivalent.
Carries out comparisons of checksums and similar operations
Remarks The integer is any number from 0 to 65535. If you give a number
with a decimal point in it, BITOR uses only the integer from it and
drops the fraction.
Related BITAND
Keywords BITXOR
BITNOT
Purpose Logically compares the binary equivalents of the two integers, digit by
digit. Creates a new binary number that contains a 1 for each digit
position where either the first number's bit or the second number's bit
is 1, but gives zeros where both are 1 or both are 0. Converts the new
binary number to its decimal equivalent.
Remarks The integer is any number from 0 to 65535. If you give a number
with a decimal point in it, BITXOR uses only the integer from it and
drops the fraction.
Program File
Set Result = Total1 bitxor Total2
Related BITAND
Keywords BITOR
BITNOT
Format BLUE
Purpose Sets the graphics on the DCX 250-display unit screen to blue when
you use it with SetDisplay.
Example You set color of the graphics on the 250 screen as follows:
Program File
Setdisplay (Blue)
Related Setdisplay
Keywords White
Modes Programs
Available
Format BREAK
Remarks After BREAK executes, the next statement the system carries out is
the one immediately following the end of the loop.
Related CONTINUE
Keywords
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Modes Programs
Available
Format CabinetTamper
Purpose Indicates whether or not the ACX controller has been tampered with.
A binary value controller System Variable linked to a controller's
cabinet door.
Example If an alarm indicates the ACX controller cabinet has been tampered
with, you can print the cabinet door status as follows:
Program File
Pr CabinetTamper
The control system responds as follows:
True
If you want to take a particular action whenever the ACX controller
cabinet has been tampered with, you can write the following in a
program:
If CabinetTamper then Goto EmergencyAction
Or
If CabinetTamper is True then Goto EmergencyAction
Format 2: CD
Format 3: CD \ path_name
Format 3: Connects you to another network or, if you give only the
backslash, to the root. (Applies on workstations only.) You can also
connect to a controller or Infinet controller at another network by
giving the full path with this format. Also connects you to any folder in
the system.
After you open the connection, it remains open until you use CD
again to connect to another site, or until the connection is open and
inactive for longer than the SafetyInterval attribute of the site allows
(see Appendix C for a listing of Site attributes).
Example of From a terminal on any CX controller, you can connect to the Floor1
Format 1 CX controller as follows:
Command Line
CD Floor1
From a terminal on any CX controller, you can connect to the Room4
Infinet controller on the Floor1 CX controller as follows:
CD Floor1 Room4
Or, if you are already connected to the Floor1 CX controller, enter the
following:
CD Room4
Example of After connecting to another controller for a while, you can connect to
Format 2 the one you logged on to by entering CD without a name after it:
Command Line
CD
To connect to the root from the command line, you enter CD followed
by the backslash alone:
CD \
Example of To connect to another network from the command line, you enter CD
Format 3 followed by the name of the network.
Command Line
CD \Building6
To connect to a controller at another site from the command line, you
enter CD followed by the name of the site and the controller.
CD \Building6 Floor1
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Purpose Rounds number to the nearest larger integer on the number line and
returns that integer.
-4 -3 -2 -1 0 1 2 3 4
Related FLOOR
Keywords TRUNCATE
ROUND
Products BACnet series (except b3885, b3887), CMX series, CX series, DCX
Supported 250, i2 series controllers (except i2885, i2887), and CyberStation.
Example 1 After several pages of messages print, you then want to send a report
to that printer.
You make sure the report starts on a clean sheet of paper by sending
an instruction to the printer telling it to bring the paper to the top of a
new page. This action is called a formfeed. The ASCII code to
generate a formfeed is 12. You would write it in the following format:
Program File
'Generate a formfeed and report title
Print chr(12); "Weekly Energy Report"
Example 2 Another way to use the CHR function is to send a bell to a terminal,
computer, or printer to warn that the ERRORS variable has reached a
critically high value. The ASCII code used to generate a bell sound is
7. You would write it in the following format:
Program File
'Decides too many errors are not acknowledged and generates a bell
If Errors > 15 then Print chr(7)
Related PRINT
Keywords ASC
Products BACnet series (except b3885, b3887), CMX series, CX series, DCX
Supported 250, i2 series controllers (except i2885, i2887), and CyberStation.
Modes Programs
Available
Format CLEARSCREEN ( )
Purpose Erases everything on the DCX 250-Display Unit screen and resets all
display attributes (set with SETDISPLAY) to their original settings.
Returns SUCCESS or FAILURE.
Remarks You can use CLEARSCREEN in programs only, not from the
command line. This characteristic prevents users from erasing
screen settings.
Example You can display a graph on the 250 screen and then clear the screen
before you display a list of choices, as follows:
Program File
Run DisplayGraph
ClearScreen
Run DisplayChoices
Notice that the parentheses are not required here because
ClearScreen is at the beginning of a statement.
You may also clear the screen at the beginning of a new 250
program.
Alias CLS
Modes Programs
Available
Purpose After you have used OPEN, resumes normal interactions with the
comm port. Normally, input appears on the screen and output goes to
the Message window. Returns SUCCESS if the comm port closes
without a problem and FAILURE if the comm port does not close.
Once CLOSE executes, the controller automatically moves to the next
labeled line.
You never need GOTO after CLOSE.
Remarks The comm_port is the comm port the modem is on. Or it can be the
path to the comm port. You may use CLOSE as a function only on
comm ports.
CLOSE must always be the last statement on a labeled line or on a
line by itself. The line immediately following the CLOSE line must test
for SUCCESS or FAILURE; otherwise, the control system software
considers that a CLOSE error.
Once you open a comm port with OPEN, after you complete
communications on that port, you must close the port with CLOSE.
Example After you open a modem with OPEN, then send a message, you can
close the modem comm port with CLOSE. The following example
shows a program that uses close. Note that it is a fallthru program
and uses a customized function named CALL and this program is
named ModemMessage.
Program File
Numeric Startup, Result
Opening:
Startup = Open (Modem1)
Calling:
If Startup = Success then
Call (Modem1, "999999")
Else
Goto Ending
Endif
Example Sending:
continued Print "Alarm on Floor2" to Modem1
Closing:
Result = Close (Modem1)
Ending:
If result = Success then
Stop ModemMessage
Else
Print "Could not access Modem1 Port"
Endif
Modes Programs
Available
Purpose Closes the text file you opened earlier with the OpenFile keyword.
Remarks The file_variable_name must be the local FILE variable name you
created with FILE to correspond to a text file name.
CloseFile returns SUCCESS or FAILURE.
If you have used FILE in the program to define a FILE variable name,
you can then open the file with OpenFile and close it with CloseFile.
Example 1 Once you create a text file with FILE and open it with OpenFile, you
must later close it with CloseFile, as shown in this example.
Program File
File ZoneData
Numeric Chars, OK
String Dataline 80
Line Opening
Set OK = OpenFile ("c:\text\zone.txt", WriteOnly, ZoneData)
If OK = Failure then
Print "File Open Failed"
Stop
Else
Goto Writing
Endif
Line Writing
. . .
Line Closing
Set OK = CloseFile (ZoneData)
If OK = Failure then
Print "File Close Failed"
Else
Stop
Endif
Example 1 The control system software knows that the file in the string
continued ("c:\text\zone.txt") is the file that the ZoneData File variable
represents.
Remember that CloseFile is a function, so you must set a variable to
its result or use it in an IF..THEN statement. In this case, you set the
OK numeric variable equal to the results of the CloseFile.
Example 2 If you want to close an array of files you opened earlier, you can use
a FOR..NEXT loop with CloseFile, as in the following example.
Notice that the FilesOpen variable gives the actual number of files
opened successfully. You would set this variable in the Opening line
and later use it in the Closing line to close the correct number of files.
Program File
File ZoneData [3]
Numeric OK, FileNum, FilesOpen
Line Opening
.
.
Line Closing
For FileNum = 1 TO FilesOpen
Set OK to CloseFile (ZoneData[FileNum])
If OK = Failure then Break
Next FileNum
If OK = Success then Stop
Print "File Close Failed for ZoneData"; FileNum
Related FILE
Keywords OPENFILE
READFILE
POSITIONFILE
WRITEFILE
FAILURE
SUCCESS
Products CyberStation.
Supported
Modes Programs
Available
Purpose Closes the list of objects that the local OBJECT variable
stands for.
Remarks The list is always one you opened earlier in the same program with
the OpenList keyword. You must have defined the local OBJECT
variable with the OBJECT keyword.
Returns SUCCESS or FAILURE.
CAUTION
! Be sure you close every list you open with
OPENLIST.
Example 1 After you have opened a list with OpenList, you must close it with
CloseList. The name of the list to close must be a local OBJECT
variable such as:
CloseList (CurrentReport)
The following is a complete program that opens a list of programs
from the CentralStation, prints their names, and then closes the list.
Related GetObject
Keywords OBJECT
OpenList
Format 2: CyberStation.
Modes Programs
Available
Purpose Format 1: Closes the window of the named Pinpoint graphic object.
The Pinpoint Application does not close itself, but only closes the
specified graphics object. The object may be in the front or in the
background.
Command Line
CloseWindow (CyberStation\Panel1)
Products CyberStation
Supported
Format CONTINUE
Remarks Each time the loop repeats the action is an iteration of that loop.
Related BREAK
Keywords
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Modes Programs
Available
Purpose Places a control graphic on the DCX-250 Display Unit's screen and
activates it. The type of control is determined by a style number (1 to
14) that you select from a group of predefined controls (see Appendix
D). Returns SUCCESS or FAILURE.
Remarks First, you must erase the 250 screen with the CLEARSCREEN
keyword and the backlight must then be turned on for the CONTROL
keyword to function. Once the backlight is on, the 250 positions the
selected control graphic in the center of the four coordinates (left,
bottom, right, and top) that you specify.
Example Displays a button control (Control Style 1) for Fan2 in the approximate
center of the screen (see Figure 7+-5) as a 240 dot wide by 50 dot
high rectangle with the title "Fan 2".
Program File
ClearScreen
Turn On BackLight
control 1, 40, 75, 280, 125, True, Fan2, "Fan 2"
Example
continued
Fan 2
The format for this example uses all the required arguments plus the
"title" argument.
Modes Programs
Available
Alias COSINE
Products ACX series, BACnet series (except b3885, b3887), CMX series, CX
Supported series, DCX 250, i2 series, LCX series, SCX series, TCX series
controllers (except i2885, i2887), and CyberStation.
Format CPUPower
Purpose A predefined variable you set to OFF to turn off battery power to the
central processing unit (CPU) of the CX series controller. You turn off
the CPU after AC power fails. This way you preserve the life of the
battery and extend the length of time the controller can retain memory
on battery backup.
Remarks For advanced users only. Most often used in programs that
respond to loss of AC power.
When you set CPUPower to OFF and AC power is not present, you
shut off power to the entire CX series controller, including its modem,
EnergyLink, and the 250-display unit.
After AC power goes down and battery power takes over, setting
CPUPower to OFF turns off power to the CPU at the end of the scan;
as a result, the controller does not operate at all until AC power
returns.
To retain memory for the longest possible time, you should turn off
CPUPower as soon as possible after PowerFail becomes ON.
Example When the AC power fails, the PowerFail system variable becomes
ON. You can have PowerFail trigger the following looping program to
turn off the CPU if the power remains off for 2 minutes:
Program File
Line WaitForFail
If PowerFail is On then
Goto TimePowerDown
Else
Stop
Endif
Line TimePowerDown
If TM > 2 then Goto TurnOffCPU
Line TurnOffCPU
If PowerFail is On then Set CPUPower to Off
Else
Stop
Endif
Notice that since the PowerFail variable triggers the program
whenever the system variable changes, you must test to be sure that
PowerFail is ON, not OFF, before setting CPUPower to OFF.
Related PowerFail
Keywords PowerUpTime
ModemPower
Format CurUser ( )
Example 1 If you want to have a program or report check who is logged on to the
current workstation, type the following in a program:
Program File
If UserOnWS = CurUser ( ) then . . .
Example 2 If you want to create a USR function that gives the name of the
current user, you can create it by typing the following in a function file
called USR:
Function File
Object CU
CU = CurUser ( )
Print CU Name
Return CU Name
Why create a local OBJECT variable and assign it CU? Since
CurUser is a function, you cannot directly print CurUser with PRINT.
You must first store what CurUser returns in an OBJECT variable. By
making CU an OBJECT variable, you can then print the attributes
normally associated with a user, such as NAME or FULLNAME. In
this case, the function prints the NAME attribute.
Products CyberStation
Supported
Format CurWorkstation ( )
Purpose Returns the workstation object at which you are currently sitting.
Example 2 If you want to create a WS function that gives the name of the current
workstation, you can create it by typing the following in a function file
called WS:
Function File
Object CurWST
CurWST = CurWorkstation ( )
Print CurWST Name
Return CurWST Name
Why create a local OBJECT variable and assign it CurWST? Since
CurWorkstation is a function, you cannot directly print CurWorkstation
with PRINT. You must first store what CurWorkstation returns in an
OBJECT variable. By making CurWST an OBJECT variable, you can
then print the attributes normally associated with the workstation,
such as NAME.
Products CyberStation
Supported
Format DATE
Purpose Retrieves current system date and time so that you can then store it
in a variable.
Remarks The default value for the DATE system variable is January 1, 1989.
You can set the DATE value for the system using the STRTODATE
keyword from a program or command line.
Example Once you have defined the datetime variable called Temp_Date using
the DATETIME statement (see page 7-77), you can then set the
value of that variable using the DATE system variable, as follows:
Program File
DateTime Temp_Date
Temp_Date = Date
This way, Temp_Date retrieves the exact system date and time at a
given moment.
You may, for instance, record the date and time that a point changes.
You can use the variable you have created in subsequent
calculations.
Related DATETIME
Keywords DIFFTIME
STRTODATE
Alias TIME
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Remarks Replace namelist with the name of a datetime variable you are
defining or a series of datetime variables separated by commas.
You must define all local datetime variables at the top of your
program.
You usually set the datetime variable to the time at a given moment
using the DATE system variable (see page 7-75).
You can print the datetime variable. When you do, you receive the
date and time printed in this format:
MONTH DD YYYY hh:mm:ss
The month is spelled out; the day is two digits, the year four digits.
The hour, minute, and second are in 24-hour time.
Example 2 When you print a datetime variable, you cannot set the format:
Program File
Print TempTime
October 26, 2005 18:25:06
Example 4 You can define more than one array of datetime variables in a single
statement:
Program File
DateTime TempTime[40], Timer[30], Watch[15]
Example 5 You can define several arrays of datetime variables and several
single variables in a single statement:
Program File
DateTime TempTime[40], FirstTime, Timer[30], LastTime
Related DATE
Keywords DIFFTIME
STRTODATE
NUMERIC
STRING
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Modes Programs
Available
Format DAYOFMONTH
Example 1 To print out a headline that contains the date, you would use
DAYOFMONTH, as shown below:
Program File
Print 'The kwh History for", Month, DayofMonth, "," , Year
The resulting header would print the actual month, day of the month,
and year, like this:
The kwh History for October 15, 2005
Example 2 To make some events occur only on particular days of each month,
you can set up an IF..THEN statement that checks for the day of the
month:
Program File
IF DayofMonth is between 7 and 14 then…
Related MONTH
Keywords YEAR
DAYOFYEAR
Alias DOM
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format DAYOFYEAR
Purpose Gives the number of the day of the year, between 1 and 366.
Example Suppose on a certain date, you need to switch off the heating and
switch on cooling. You would use DAYOFYEAR to program the
controller as in the following example:
Program File
If DayOfYear is 152 then
Stop the Heating_Prog
Run the Cooling_Prog
Endif
Related MONTH
Keywords YEAR
DAYOFMONTH
Alias DOY
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Purpose Deletes old extended log entries for the point, group of points, or
controller. If you are not sure what an extended log is, refer to the
Continuum CyberStation Configurator's Guide for further information.
Note: The DeleteExtLog function is only available on a CyberStation
workstation. It is not available on any controller.
Remarks To avoid filling your database with log entries, you must instruct the
continued workstation to remove the extra log entries either automatically or
using DeleteExtLog.
DeleteExtLog removes only old entries⎯those entries that have
expired. It determines an entry has expired by calculating the
expiration date of each entry as follows:
DateTime Entry Was Logged + ExtLogInterval ExtLogSize
Notice that the ExtLogInterval and ExtLogSize the workstation uses in
the calculation are the ones that existed when the entry was logged.
So, if you later changed the extended log interval or size, the
expiration date calculated remains as is.
As soon as the software sees the DeleteExtLog statement in a
program, it understands the purpose of the datetime variable you
defined⎯to tell it to delete all log entries that have expired before that
date.
Example 1 Suppose you want to delete the expired extended log entries of all
points in the Floor1 controller that were logged more than 90 days
ago. You could delete the log entries with a fallthru program similar to
the following example:
Program File
Numeric Result
DeleteLog:
Result = DeleteExtLog (Building1 Floor1, Date - 90 * 24 * 3600)
CheckLogDeletion:
If Result is not success Then
Print "Failed to delete extended log entries for Floor1"
Stop
Endif
Give DeleteExtLog the controller name, then a calculation that
creates a datetime in seconds. The datetime value is the number of
seconds that are equivalent to the date and time by which the logs
must have expired.
Example 2 Suppose you want to delete the expired extended log entries of a
single point up to the last day of June 2005. You could delete them
from the Command line as follows:
Command Line
DeleteExtLog (Building1 Floor1 Temp1, StrToDate ("June 30,
2005 23:59:00"))
This statement converts the date string into a date the controller
system can understand and then deletes the log entries that have
expired by that date.
Example 3 Suppose you want to delete the expired extended log entries of all
points in the Floor1 controller that have been logged and then expired
by a future date⎯a month from now. You could delete them with a
fallthru program like the one that follows:
Program File
Numeric Result
DeleteLog:
Result = DeleteExtLog (Building1 Floor1, Date + 30 * 24 * 3600)
CheckLogDeletion
If Result is not Success then
Print "Failed to delete extended log entries for Floor1"
Stop
Endif
Note: When the datetime argument is greater than or equal to log
timestamp, the entry is deleted immediately.
Related UpdateExtLog
Keywords
Products CyberStation
Supported
Purpose Format 1: From a program, dials the Infinity modem (via the comm
port you indicate) to connect from a controller (often at a remote site)
to another device, usually a workstation.
Format 2: From a program, dials the Infinity modem to connect from
a controller (often at a remote site) to another device, usually a
workstation. Uses the DefaultPort of the program.
Format 3: From the Command line on a terminal, dials the Infinity
modem to connect from a controller (often at a remote site) to another
device, usually a workstation. The commport is required on the
Command line.
Remarks If the first character in the phone number is an ‘A’ or ‘a’, the DIAL
continued keyword assumes that the phone number string contains valid AT
commands prior to the phone number to command the modem to
dial.
This feature is useful for 3rd party modems or Cellular Modems that
require something other than “ATDT” to command dialing.
Note: commport is optional in a program and is required on the
Command line
Replace with the Controller port that physically connects to the
modem. The DefaultMode and Mode attributes of the port must be set
to AutoSet or Printer. If, in a program, you do not indicate the comm
port, DIAL uses the default port you set at the top of the program or in
the File Configuration window. From the command line, you must
indicate the comm port.
DIAL automatically turns on the DTR (data terminal ready) attribute of
the port to put the port in Raw mode. Once DIAL establishes the
connection to a workstation, programs can then and only then use
the READ comm port function to take data from the port or PRINT to
send data out the port. The port stays in Raw mode until you use
HangUp or CLOSE to close the connection.
You can use DIAL in a program or on the Command line. When you
use DIAL in a program, you must use it on a labeled line by itself.
After it executes, DIAL automatically moves the program to the next
labeled line. The next labeled line should then test for the returned
results of DIAL.
When you use DIAL from the Command line, it returns right away,
before the dialing actually begins. In this case, the results that DIAL
first return reflect the first response to DIAL rather than the final
results.
DIAL returns the last of the above that occurs. If the controller at first
does not detect a carrier, then it receives a busy signal, DIAL returns
DialBusyTone and does not indicate that it could initially not find the
carrier.
Once DIAL is successful, the Mode of the comm port is Raw.
After dialing, DIAL waits up to 90 seconds for a response. (The 90
seconds includes the 50 seconds from the S-7 register.) If it fails, DIAL
does not try again. Instead, DIAL responds as follows:
• Returns one of the above results
• Reactivates the program it is in.
• Double checks to be sure DTR is ON
• Returns the port to its default mode (either AutoSet or Printer)
based on the DefaultMode attribute.
Remarks Once DIAL acts on the port successfully, the port is in Raw mode. So
continued to verify its success from the Command line, you can check the Mode
attribute of the port.
Whenever you dial the port with DIAL and use PRINT to transmit data,
be sure to check the PrintDone attribute of the port before hanging up
with HangUp. PrintDone is True when no more characters are waiting
to be sent over the port.
CAUTION
! Whenever you use DIAL to call out from a port,
you must later use HangUp to disconnect. If
you do not, the line is still open and you are still
paying for the connection.
Example 1 You can use DIAL to call a workstation and send it messages. The
following looping program exists on a controller that calls a workstation:
Program File on Controller
Numeric InitResult, DialResult, HangUpResult
...
StartingDial:
DialResult = Dial ("5085551212", Comm1)
‘ Using alternate AT Command
‘ Issue the ATD command, then pause, issue the T command and
‘ pause again…
‘DialResult = Dial ("ATD,T,, 5085551212", Comm1)
CheckingStatus:
If DialResult is Success then
Goto SendingData
Else
Goto StoppingComms
Endif
Sending Data:
Print Message 1 to Comm1
Print Message 2 to Comm1
Print Message 3 to Comm1
...
Goto CheckingDone
CheckingDone:
If Comm 1 PrintDone then Goto CompletingComm
CompletingComm:
HangUpResult = HangUp (Comm 1)
Checking Hangup:
If HangUpResult is not Success then Print "Could Not Hang Up Comm Port"
Goto StoppingComms
StoppingComms:
Stop
Example 1 The program starts by creating a few local numeric variables to hold
continued the results of initializing the modem, dialing the call, and hanging up.
It then initializes the modem (see the InitModem keyword for more
details).
Then, in the StartingDial line, the program uses the DIAL keyword to
call a phone number, indicated in quotation marks, and to find the
modem on a particular port, Comm1. Notice that the phone number is
in quotation marks because it is an actual phone number rather than
an object, point, or variable in the control system.
Since DIAL immediately sends the program to the next labeled line,
you do not need a GOTO to proceed to CheckingStatus. If DIAL is
successful, then the program goes to the SendingData line. Since the
port is in Raw mode, the program can now use PRINT to send
messages out the port to the workstation. So, on this line the program
proceeds to send a series of messages to the workstation.
After sending data to the port, the program goes to the CheckingDone
line, where it checks the PrintDone attribute of the port. When the
attribute is True, the port has finished transmitting data. The program
remains on this line until the attribute is True. Once PrintDone is True,
the program goes to CompletingComm, where it uses HangUp to
hang up on the port (see the HangUp keyword for details).
Example 2
Program File on Controller
Numeric InitResult, DialResult, HangUpResult
String PhoneNum
...
DeterminingSite:
If Tod is less than 17:00 then
Set PhoneNum = "5085551212"
Else
Set PhoneNum = "6175551212"
Endif
Example 3 You can call a site from the controller Command window. First, you
must use InitModem to initialize the modem, and then you can dial
with DIAL. When you dial from the Command window, you must
include the comm port with DIAL:
Command Window
DialResult = Dial ("6175551212", Comm1)
Pr Comm1 Mode
DIAL immediately returns SUCCESS or FAILURE. If it does not
succeed within 90 seconds, it returns the port to its DefaultMode
setting.
To verify that DIAL has succeeded, you can print the Mode of the
comm port from the Command line to be sure the port is in Raw
mode. Later, you must be sure to hang up with the HangUp keyword.
Related InitModem
Keywords HangUp
Remarks The date_time is any actual date and time or a datetime variable.
DIFFTIME always subtracts the first datetime from the second one.
With SECOND, any time beyond a complete second is not counted.
So, 2 1/2 seconds becomes 2 seconds.
With HOUR, any time beyond a complete hour is not counted. So,
2 hours and 15 minutes becomes 2 hours.
Remarks With WKD, any time beyond a complete day is not counted. So, 2
continued days and 15 hours becomes 2 days.
If date_time1 is later than date_time2, DIFFTIME returns a negative
number.
Example 1 You can use DIFFTIME with SECOND to determine how many
seconds have passed. The sample program below calculates the
difference between two readings of the datetime variable Timer.
Program File
DateTime Timer[2]
IF DiffTime (Second, Timer[1], Timer[2]) > 30 Then Run Test
The statement determines the result of Timer [2] - Timer [1]. If the
difference is greater than 30 seconds, Test runs.
Example 2 You can use DIFFTIME with WKD to determine how many days have
passed. The sample program that follows calculates the difference
between the old date (stored in the OldDate variable) and the current
date (in the DATE system variable).
Program File
Numeric Result
Result = DiffTime (Wkd, OldDate, Date)
Related DATE
Keywords DATETIME
STRTODATE
TIME
Alias DT
The named program, name, or each item in the namelist must have
a STATE attribute (see “Basic Attribute Listing” in Chapter 1). The
STATE attribute allows the item to be enabled or disabled.
All disabled items remain disabled until you enable them (see
ENABLE keyword).
Example 2 When debugging, you can disable a point called Fan temporarily to
see how that affects the program. You can do so by placing the
following statement in a program or entering it from the command
line:
Program File
Disable the Fan
Related ENABLE
Keywords
Alias DIS
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Alias /
DIV
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Example 1 You can draw an ellipse from the left-bottom (10, 20) to the right-top
(250, 100) line point positions as follows:
Program File
DrawEllipse 10, 20, 250, 100
Notice that the parentheses are not required in this case, because
DRAWELLIPSE is at the beginning of a statement.
Figure 7- 6 shows how left and bottom give the lower left corner and
right and top give the upper right corner of the imaginary rectangle.
(250, 100)
(10, 20)
The left-bottom and right-top positions are the crosses shown in the
lower and upper corners of the rectangle.
Example 2 You can draw a perfect circle (Figure 7-7) by giving a left-bottom (10,
10) and a right-top (100, 100) line point positions as follows:
Program File
DrawEllipse (10, 10, 100, 100)
(Although the parentheses are not required in this case, you can use
them to make the program easier to read.)
Example 2
continued
250 SCREEN
When you draw an ellipse, you can have DRAWELLIPSE tell whether
it was successful or not, as follows:
Related DRAWLINE
Keywords DRAWRECTANGLE
Modes Programs
Available
Purpose Draws a line that is positioned on the DCX 250-Display Unit screen by
using the arguments you supply to the function as line point locators
(dots). Returns SUCCESS or FAILURE.
Remarks Applies the current display settings with the SETDISPLAY keyword.
The DCX 250-Display Unit forms the line on its screen by joining dots
(line points) that mark each end. You indicate the position of these
dots as follows:
Replace begin_left with the number of dots (line points) from the left
of the screen that the line should begin. Can be an integer from 1 to
320, or a name or expression that gives one.
Replace begin_bottom with the number of dots (line points) from the
bottom of the screen that the line should begin. Can be an integer
from 1 to 200, or a name or expression that gives one.
The begin_left and begin_bottom positions give the location of the
beginning of the line.
Replace end_left with the number of dots (line points) from the left of
the screen that the line should end. Can be an integer from 1 to 320,
or a name or expression that gives one.
Replace end_bottom with the number of dots (line points) from the
bottom of the screeen that the line should end. Can be an integer
from 1 to 200, or a name or expression that gives one.
The end_left and end_bottom positions give the location of the end
of the line.
Example
Program File
SetDisplay (White)
DrawLine 10, 100, 200, 50
Notice that the parentheses are not required in this case, because
DRAWLINE is at the beginning of a statement.
Figure 7-8 shows how the begin_left, begin_bottom, end_left, and
end_bottom values mark the dots that begin and end the line.
Begin_Left
= 10
•
Begin_
Bottom
= 100
•
End_Left = 200
End_Bottom
= 50
SETDISPLAY first sets the color to white, so the line appears on the
250 screen in white.
Related DRAWELLIPSE
Keywords DRAWRECTANGLE
Modes Programs
Available
Replace left with the number of dots (line points) from the left of the
screen that the left side of the rectangle should be positioned. Can be
an integer from 1 to 320, or a name or expression that gives one.
Replace bottom with the number of dots (line points) from the bottom
of the screen that the bottom side of the rectangle should be
positioned. Can be an integer from 1 to 200, or a name or expression
that gives one.
The left and bottom positions give the location of the lower left
corner of the rectangle.
Replace right with the number of dots (line points) from the left of the
screen that the right side of the rectangle should be positioned. Can
be an integer from 1 to 320, or a name or expression that gives one.
Replace top with the number of dots (line points) from the bottom of
the screen that the topside of the rectangle should be positioned. Can
be an integer from 1 to 200, or a name or expression that gives one.
The right and top positions give the location of the upper right corner
of the rectangle.
Example 1 You can draw a rectangle with the left side 10 dots over and the
bottom side 20 dots up, the right side 250 dots over and the top 100
dots up as follows:
Program File
DrawRectangle 10, 20, 250, 100
The 250 display unit draws the rectangle from the left-bottom 10, 20
to the right-top 250, 100 as shown in Figure 7-9.
Right = 250
Left
= 10
Example 2 You can draw a perfect square (Figure 7-10) by giving the same
values for left and bottom, then the same values for right and top,
such as 10, 10, and 100, 100, as follows:
Program File
DrawRectangle 10, 10, 100, 100
250 Screen
Related DRAWELLIPSE
Keywords DRAWLINE
SETDISPLAY
Modes Programs
Available
The named program, name, or each item in the namelist must have
a STATE attribute (see page 1-12). The STATE attribute allows the
item to be enabled or disabled.
Example 1 Suppose you have disabled a program that controls cooling. Type the
following to allow the controller run the program:
Command Line
Enable Cooling
Related DISABLE
Keywords
Alias EN
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format ENDPOLYLINE ( )
Remarks After you use BEGINPOLYLINE, and you give a series of line points
(see LINEPOINT keyword) you want connected, you then indicate the
series of line points is over by entering ENDPOLYLINE.
Example You create a line connecting a series of line points on the 250 display
unit by entering the following:
Program File
SetDisplay (NOFILL)
BeginPolyLine
LinePoint (10, 100)
LinePoint (100, 50)
LinePoint (200, 100)
LinePoint (250, 60)
EndPolyLine
250 Screen
If you want to know whether the lines or polygon have been drawn
successfully put ENDPOLYLINE inside an IF..THEN statement:
Related BEGINPOLYLINE
Keywords LINEPOINT
Modes Programs
Available
Format EOF
Related FAILURE
Keywords SUCCESS
Products CyberStation
Supported
Modes Programs
Available
Format ERRORS
Remarks The controller automatically updates ERRORS. You can only reset it
to zero.
The controller increments ERRORS when any of the following occurs:
• A Plain English program error disables a program (which also
sets the program ERROR attribute, depending on the severity of
the error). In other words, it is always the case.
• The controller’s input reference voltage goes out of its normal
range, usually when you apply too much voltage to one or more
inputs.
• The controller’s output reference voltage goes out of its normal
range, usually when drawing too much current from one or more
inputs.
• The Infinet has trouble transmitting or receiving data.
• Someone resets an Infinet controller.
• Someone turns off the AC power to any Infinet, CX series or CMX
series controller so that the AC power shuts down, but the battery
retains memory.
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format EventLogSize
Purpose Refers to the event log that stores access control events in the CX
series controller, which is hidden from view. Indicates the number of
access control events that the event log can store.
Remarks This system variable applies only if you are using your CX series
controller for access control.
You can set the number of events that the event log will contain,
based on the size of the controller's memory
Example 1 If you want to know how many events you can fit in the event log of a
CX or CMX series controller, you can print the controller’s
EventLogSize system variable in the Command window, as follows:
Command Line
Pr EventLogSize
Example 2 If you want to change the number of events the controller can store in
its event log, you can set the EventLogSize system variable in a
program or in the Command window, as follows:
Program File
Set EventLogSize = 1000
Related AccessLog
Keywords
Purpose Returns a value equal to the base e raised to the number power.
Alias EXP
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers (except i2885,
i2887, b3885, b3887), and CyberStation.
Alias FACT
Products BACnet series (except b3885, b3887), CMX series, CX series, DCX
Supported series, i2 series controllers (except i2885, i2887), and CyberStation.
Format FAILURE
Related SUCCESS
Keywords
Purpose Creates and defines one or more names as local FILE variables, just
as NUMERIC, STRING, and DATETIME create local variables. You
define the FILE variables inside a program for use only in that
particular program.
You cannot use FILE on the command line.
Each variable may be a single variable or an array. You specify an
array by including the array_size_number when you define it.
Each FILE variable name is a control system software name that
corresponds to any actual Windows file name. Later you use this
name to open the file with OPENFILE, and act on the file with
READFILE, POSITIONFILE, WRITEFILE, and CLOSEFILE
keywords.
Remarks A FILE variable is a file name that the control system software
understands; this is useful because the control system software does
not comprehend Windows file names. After you define the FILE
variable, you can later use OPENFILE to open a Windows file that
goes with it.
Although the variable is like a NUMERIC, STRING, or DATETIME
local variable, it is also different⎯you do not set it to a Windows file
name with a SET statement. Instead, the control system software sets
the name within an OPENFILE, CLOSEFILE, READFILE,
POSITIONFILE, or WRITEFILE statement, where you give the FILE
variable name and a string containing the Windows file name. (See
each related keyword for more detail.)
FILE is a variable because you can change the Windows file name to
a FILE variable name with which it associates. You always make that
change within a statement you form with a related keyword.
Replace file_variable_namelist with one or more local FILE variable
names to which you want Windows text files to correspond. The name
may be up to 32 characters, including letters, numbers, periods, and
underscores, starting with a letter.
Example 1 You use FILE in a program to define a file called ZoneData. Then you
can open a Windows file and put data in it with other related
keywords:
Program File
File ZoneData
Numeric Chars
String 80 Dataline
Line Opening
.
.
Line Working
.
.
Line Closing
.
.
Example 2 You can create an array of variables with FILE and once you have
defined them, you can assign each a Windows file name using a
FOR..NEXT statement with OpenFile.
Example 2 In this example, you open the Windows files in the left column below.
continued Each corresponds to the control system software name you created
with a local FILE variable defined in the array, shown in the right
column:
Control System
Windows File
File Variable
\text\zone1.txt ZoneData[1]
\text\zone2.txt ZoneData[2]
\text\zone3.txt ZoneData[3]
Program File
File ZoneData[3]
Numeric OK, NumFile
Line Opening
For NumFile = 1 To 3
OK = OPENFILE ("c:\text\zone"; NumFile;".txt", WriteOonly,~
ZoneData [NumFile])
If OK = Failure Then Break
Next NumFile
Line Working
.
.
Line Closing
.
Products CyberStation
Supported
Modes Programs
Available
Format FILL
Purpose Sets the graphics on the DCX 250 Display Unit screen to filled solids
rather than lines when you use it with SETDISPLAY.
Remarks The graphics on the 250 screen may be filled (FILL) or not filled
(NOFILL).
Example You set the graphics on the 250 screen to solids, as follows:
Program File
SetDisplay (Fill)
Related NOFILL
Keywords SETDISPLAY
Modes Programs
Available
Purpose Rounds number to the nearest smaller integer on the number line
and returns that integer.
Remarks The number is any number or expression. (See ROUND keyword for
a comparison of all rounding functions.)
-4 -3 -2 -1 0 1 2 3 4
Products BACnet series (except b3885, b3887), CX series, DCX 250, i2 series
Supported controllers (except i2885, i2887), and CyberStation.
FOR..NEXT Statement
Remarks The statement sets the value of the numeric_name to the begin
continued value, then carries out the statements after FOR until it reaches
NEXT. At NEXT, the program goes back to FOR and gets the next
value of numeric_name by adding number to begin.
2 12
4 14
6 16
8 18
10 20
The step may also be a negative step, taking the value of the name
from a begin of, for instance, 10 to an end of 1 by a number of –1.
CAUTION
! The scan action limits the number of statements
that can execute on one line to 5000. Be careful
of exceeding the limit when using FOR..NEXT.
Example 1 Before you run functions that use the Arg variables, you may want to
set them all to zero. You can set them all with one programming
statement using FOR..NEXT:
Program File
For Count = 1 to 15
Set Arg [Count] = 0
Next Count
The first time through the loop, Arg[1] is set to 0, the second time
Arg[2] is set to 0, the third time Arg[3] is set to 0, and so on.
Example 2 To set every third value in an array to zero, you can go to the third
item, then sixth, then ninth, and so on using STEP with FOR..NEXT:
Program File
Number Count
For Count = 3 to 15 Step 3
Set Pump [Count] = 0
Next Count
Example 3 To find a filtered average, you could set up a function called Filt.Total.
The function, shown below, uses FOR..NEXT to loop from Arg[3]
through Arg[15], and add only the numbers with a value between that
of Arg[1] and Arg[2]:
Function File
Number Total, Count, Num
Set Num, Total = 0
For Count = 3 to 15
If Arg[Count] is between Arg[1] AND Arg[2] then
Total = Arg[Count] + Total
Num = Num + 1
Endif
Next Count
Return (Total/Num)
FOR..NEXT, continued
Andover Plain English™ Language Reference 7-129
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Modes Programs
Available
Format FREEMEM
Example If you want to know the size of the largest block of free memory
available on a controller, enter the following:
Program File
Print FreeMem
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, and TCX series controllers.
Purpose Retrieves the value from an entry in the extended log and gets the
time it was stored in the log. Obtains this information for a particular
point and a range of times that begins with the start_time and ends
with the end_time.
When you use GetExtLog, you must use it on a labeled line by itself.
Once GetExtLog executes, the controller automatically goes to the
next labeled line, where the program should test to see if GetExtLog
returns SUCCESS or FAILURE.
Replace object_name with the full path name of the object.
Replace value_var with a local variable or point to hold the
value of the next extended log entry that GetExtLog retrieves.
Replace start_time with a time of first entry that the GetExtLog
should retrieve from the log. Can be a datetime point or local datetime
variable.
Replace end_time with the Time of last entry that the GetExtLog
should retrieve from the log. Can be a datetime point, local datetime
variable, or datetime data file field. If you do not give an end time,
GetExtLog continues to retrieve the time and log values until the
current date and time. May be a numeric or string expression that
results in a datetime (or number of seconds representing one).
The program starts getting extended log values at the start_time you
give. The program continues to retrieve the extended log times and
associated values until it reaches the end_time you give.
Example Fall-Thru program that retrieves all the extended log entries of a
numeric point since 30 days ago.
Program File
Numeric result, logvalue
DateTime LogTime, endLogTime
SetEndLogTime1:
EndLogTime = StrToDate(“12/10/2005 09:50:00 AM”)
Print “Start Log Extraction” to MessageWindow
GettingLogEntry:
Result = GetExtLog(MyNetwork\MyCX\n1log, logvalue, logtime,~
endLogTime)
PrintingLogEntry:
If Result = Success then
Print logtime, endLogTime, logvalue to MessageWindow
‘do we need to finish thelog?
if logtime >= endLogTime then
Print "Log Extraction Finished" to MessageWindow
Stop
Endif
Goto GettingLogEntry
Else
Print “Failed getting extended log” to MessageWindow
Stop
Endif
Related DeleteExtLog
Keywords UpdateExtLog
Products CyberStation
Supported
Modes Programs
Available
Purpose Changes the string to a name, such as the name of a defined point,
so it can then be set to a value or used in the language whenever a
point name is allowed. Can be used to give one name to a series of
items in the database that has the same root in their names. Each of
the names is made up of a root abutted with (joined to) a variable.
Remarks string – The string can be either text (word or words) or a text
expression. The text expression can be a known character or
characters combined with a changeable character or characters to
form one word. A semicolon joins the parts of the combined string
(TEMP; X gives TEMP1, TEMP2, TEMP3, as X becomes 1, then 2,
then 3).
Enter TRUE (or equivalent numeric expression) to send this Who Has
– I Have broadcast to other BACnet controllers on the network, in
search of the object.
Example 2 You can use GETNAME to get the value of a point from more than
one controller. In this example, the controllers are VAV box controllers
called Room1, Room2, Room3, and so on, up to Room10. Since
each ROOM controller has a TEMP point, GETNAME can easily
retrieve that point from each controller:
Program File
Numeric ROOM
Line SettingRoom
ROOM = 1
Goto CheckingTemp
Line CheckingTemp
If GetName("Room";ROOM;" Temp") > 75 Then
Print "Room |## is |###", ROOM, GetName("Room"; ~
ROOM;" Temp")
Endif
Goto GetNextRoom
Line GetNextRoom
If ROOM >= 10 Then Stop
ROOM = ROOM + 1
Goto CheckingTemp
"Room"; ROOM;" Temp" gets the path to the Temp point on the
ROOM1 controller first. Once the program gets the value of
Temp from each controller, it compares that value to the
setpoint of 75. If the temperature is not at setpoint, the program
prints a message.
Object ObjRef
Line GettingObject
ObjRef = GetName(“BCX2 \ ANALOGVALUE1”)
Line SettingObject
ObjRef = 72
Example 4 To get an attribute with GETNAME, you must include the attribute
name in the GETNAME string. (You cannot get the name and then
put an attribute after it.) Include the attribute as follows:
Program File
Example 5 You can also get attributes of a point other than the value. This
example retrieves the STATE attribute (enabled or disabled):
Program File
Print "The Lights are |*", GetName("Room";ROOM;"Lights State")
Example 6 You can also get attributes of any other name defined in the control
system software, for instance, the STATUS of a program called
HEATING (active or inactive):
Program File
Print "Status of Heating is |*", GetName("Floor";FloorNum;"~
"Heating STATUS")
Modes Programs
Available
Purpose Gets the next object from a list of objects you opened with
OPENLIST. The list is always of one particular class of objects, such
as INPUT, OUTPUT, and PROGRAM.
Remarks The object_var is a local OBJECT variable you defined with the
OBJECT statement.
See the related keywords for details on how to open and close the
lists.
Example 1 After you have defined a local OBJECT variable with the OBJECT
keyword, you can then open the list of objects of a particular class
(see OpenList) and get each object with GETOBJECT. In this case,
you open a list of VAV points and get each point as follows
Program File
Object VavPoint
Line OpenPoint
.
.
Line GetPoints
If GetObject (VavPoint) is not Success then Goto ClosePoints
Example 2 This program checks the state of each program it retrieves from a
continued particular controller. If the program is disabled, the control system
software prints the program name. When the control system software
has finished getting all the programs, you have a list of the disabled
programs.
Example 3 You can print a list of the CX series controllers that are off-line using
GETOBJECT. The sample program is looping:
Program File
Object EnetCtrlr
Line OpenController
.
.
Line GetController
If GetObject (EnetCtlr) is not Sucess then
Goto CloseController
Endif
Example 4 You can also get a list of all points or all files rather than a particular
type of point or file. GETOBJECT gets all points in the following
example.
Program File
Object VAVPoint
Line OpenVAVPoints
.
.
Line GetVAVPoints
If GetObject (VAVPoint) is not Success then
Goto CloseVAVPoints
Endif
Pr VAVPoint
Line CloseVAVPoints
.
.
This program gets each point from the VAVPoint list. PR prints the
name, value, and units of each point. You can use this type of
program to retrieve all point values from a single controller quickly
and easily.
Related CloseList
Keywords OBJECT
OpenList
Modes Programs
Available
Remarks The linename is any line label created with the LINE statement.
Must be in the same program. (See LINE.)
Example 1 In the following looping program the GOTO statement with IF..THEN
controls the heating and cooling processes:
Program File
Line Beginning
If Temp is less than 68 then Goto Heating
If Temp is greater than 76 then Goto Cooling
Line Heating
Turn On Heater1
Goto Beginning
Line Cooling
Turn On Cool1
Goto Beginning
Both "Heating" and "Cooling" are line labels. When the temperature
changes, GOTO sends control to the appropriate line. The controller
then executes instructions in the labeled line. Notice that the GOTOs
have been strategically placed so the controller executes some
statements and skips others.
Example 2 You can include the word LINE in front of the line name, as follows:
Program File
Line 1
Start Fan1
Goto Line 2
Line 2
If Fan1.Status is on then Goto Line Shutdown
Line Shutdown
If Zone1 Temperature is less than 60 then
Stop Fan1
Goto Line 1
Endif
Example 5 You can separate Go and To, and include Line as well:
Program File
Line Beginning
If Temp is less than 68 then Go To Line Heating
If Temp is greater than 76 then Go To Line Cooling
Line Heating
Turn On Heater1
Go To Line Beginning
Line Cooling
Turn On Cool1
Go To Line Beginning
Related BASEDON..GOTO
Keywords LINE
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Modes Programs
Available
HangUp Function
Remarks When you use HangUp from the command line, it returns right away,
continued before the hanging up actually begins. In this case, the response that
HangUp first returns reflects the first response to HangUp rather than
the final result.
HangUp can return one of the following results:
SUCCESS⎯Controller has successfully disconnected from the
workstation or other device.
FAILURE⎯If the commport is not in the correct mode or the default
port is not defined in the program.
If the Mode of the port is PPP, Window, or Command, then HangUp
does not hang up the phone. Instead, it returns FAILURE and
reactivates the program that attempted to hang up.
If the Mode of the port is AutoSet or Printer, then HangUp turns off
DTR, returns SUCCESS, and reactivates the program that is hanging
up.
Hanging Up While Dial is in Process
If the Mode of the port is Raw, and DIAL is in progress, HangUp
responds as follows:
• Attempts to hang up and waits 10 seconds for the hang-up to
complete.
• If CXD is still ON sets DTR to OFF and waits 10 seconds for the
modem to reinitialize.
• Sets DTR to ON.
• Returns FAILURE.
• Reactivates the program that used DIAL to connect.
• Reactivates the program that used HangUp to disconnect.
• Sets the port to its DefaultMode.
• If you attempt to use CLOSE on the port while DIAL is active,
HangUp ignores it. CLOSE is not accepted.
CAUTION
! If you attempt to use CLOSE instead of hanging
up while the port is connected using DIAL, CLOSE
is successful, but the phone does not disconnect.
If you do not HangUp, the line is still open and you
are still paying for the connection
Example 1 Suppose you are on a controller and have written a program to call a
device with DIAL. After you have the program call the device
successfully, and once you determine the PrintDone attribute of the
port is True, you can hang up. To have the program hang up, use
HangUp and give it the name of the port on which to hang up:
Program File
CheckingDone:
If Comm1 PrintDone then Goto CompletingComm
CompletingComm:
HangUpResult = HangUp (Comm1)
CheckingHangUp:
If HangUpResult is not Success then
Print "Could Not Hang Up Comm Port"
Endif
Immediately after you use HangUp on the line, you must check for the
result of hanging up. If it was successful, HangUpResult is equal to
SUCCESS; otherwise it is equal to FAILURE.
Example 2 You use HangUp to have a program hang up after it has successfully
called a device. If you do not give HangUp the name of the comm
port, it automatically assumes you want it to hang up on the
DefaultPort you set in the File Configuration window or at the top of
the program, as in the following example.
Program File
Preparing:
Set Floor1 CallingUp DefaultPort = Comm3
...
CheckingDone:
If Comm1 PrintDone then Goto CompletingComm
CompletingComm:
HangUpResult = HangUp ( )
CheckingHangup:
If HangUpResult is not Success then
Print "HangUp of Comm Port Failed"
Endif
Remember that if you used DIAL to make the call on the comm port
and used PRINT to send messages through the port, you should
check the PrintDone attribute of the port before hanging up.
Example 3 You can hang up on a port from the Command window of a controller
as follows:
Command Window
HangUp (Comm3)
You must always name the comm port from the Command line.
Before you attempt to hang up from the Command line, you should
check the PrintDone attribute of the port from the Command line:
Pr Comm3 PrintDone
If PrintDone is True, then proceed to hang up.
Related DIAL
Keywords CLOSE
OPEN
READ
InitModem
WRITE
Format HOD
Remarks You cannot change the HOD. The controller automatically updates it.
Example 1 You can use the decimal form of the time to see if the time is past
5:30 a.m.
Program File
If Hod is greater than 5.50 then . . . .
Alias HOUROFDAY
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format HOUR
Example To take action every day at 5:00 a.m., you would check the hour with
the following statement:
Program File
If Hour is Equal to 5 then Goto StartUp
Related HOD
Keywords MINUTE
SECOND
TOD
Alias HR
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format Rules Here are some general rules for all formats:
• IF and THEN must always be on the same physical line.
• THEN can be followed by one statement on the same physical
line or multiple statements on the physical lines that follow it.
• In a multi-line statement, ELSE must always be on a physical line
by itself (Format 4).
• ELSE can be followed by one statement on the same physical
line or multiple statements on the physical lines that follow it
(Format 4).
• ENDIF is required to close an IF..THEN block when multiple
statements occur after THEN or when one or more statements
occur after ELSE.
Format Rules • When you use an IF statement after THEN, it must be nested
continued under THEN and end with ENDIF (see "If Statement after Then"
example).
CAUTION
! To use WHILE, FOR..NEXT, REPEAT..UNTIL or
similar looping statements with IF..THEN..ELSE,
you must use Format 2 or 4.
Example of To take a single action if the expression is true, you use Format 1,
Format 1 the single-line IF..THEN statement:
Program File
If Tod > = 1200 then Goto Noon
If the time of day is greater than 12:00 noon, then program flow
moves to the Noon line. Otherwise, the program continues with the
next statement.
Note: If you put THEN on a separate physical line from IF, a syntax
error will occur.
Example of You use format 2 to take several actions if the expression is true and
Format 2 to take no action if it is false:
Program File
If Wkd = Mon and Tod > 800 and TOD < 1600 then
Run the HeaterProg
Run the FanCheckProg
Stop the PumpProg
Endif
If the expression is false, the controller ignores the statements
following THEN and moves to the statement after ENDIF.
Example of You use Format 3 to take a single action if an expression is true and
Format 3 another single action if it is false,:
Program File
If Tod > 800 & TOD < 1700 then Run DayPrg Else Run NiteProg
Notice that IF, THEN, AND ELSE must all be on one line in this
format.
Example of You use Format 4 to take several actions if the expression is true or
Format 4 to take several others if it is false,:
Program File
If Temp < 72 and Pump.Stat is Off then
Turn ON the Fan
Close the Damper
Else
Turn Off the Fan
Open the Damper
Endif
ELSE stands on a line by itself in this format and the end of the IF..
THEN..ELSE statement must be marked by ENDIF.
Example of Notice that each IF ends with an ENDIF. The inner (indented) ENDIF
Nested Ifs goes with the inner IF and ELSE, the outer ENDIF with the outer IF
continued and ELSE.
The ELSE and ENDIF that belong to the indented IF are aligned
under that IF. Notice that the last IF ends first.
If the Wkd is Sat then If the Hour is 1 then Goto 1 Else Goto 2
Which If does the Else belong to? In this case the Else belongs to
the If the arrow points to because it belongs to the closest previous If
on the same physical line.
To make the Else belong to the first If, you must form a nested If
arrangement, as follows:
Program File
The ELSE goes with this IF
CAUTION
! Be careful when programming with IF..THEN..ELSE
statements if the number is any nonzero value.
When this occurs, the number is interpreted as
TRUE and the THEN block is executed.
Related AND
Keywords IS. . .
OR
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format INFINET#COUNT
Remarks The pound sign (#) can be either 1 (for COMM1 on a CMX 9924
series controller), or 2 for COMM2.
You cannot change the value of these system variables; the control
system software updates them automatically.
You may give the path to another CX series controller to find the total
Infinet controllers on one of its comm ports.
Example 1 After you have pressed the LEARN button for an Infinet on COMM1,
you can print the value of INFINET1COUNT on the command line as
follows:
Command Line
Print INFINET1COUNT
Example 2 To find out how many Infinet controllers are online on COMM2 of the
FLOOR6 99xx controller, you can print the value of INFINET2COUNT
on the command line as follows:
Command Line
Print Floor6 INFINET2COUNT
Related SELECT..CASE
Keywords
Format 2: InitModem ( )
Remarks Before you can dial a call over a modem through a comm port, the
modem must be correctly set up. To set the modem up correctly is to
initialize it. To correctly initialize the port every time, use InitModem
rather than setting the comm port attributes for the modem.
CAUTION
! Be careful not to use InitModem to initialize Comm3 of a
controller if you want to keep that port set up for a
terminal since Comm3 does not automatically revert to
the terminal settings if the the controller resets.
After initializing Comm3, you can revert it to its original
settings, by manually setting the FlowControl attribute
Tffsasfff
of Comm3 to NoFlowControl either before or after you
reset the controller.
If you do not change FlowControl, Comm3 remains set
at CtsRts.
While initializing the port, InitModem momentarily puts the port in Raw
mode and then returns it to its DefaultPort mode. You cannot use
PRINT or READ after InitModem. Instead, you must wait until the
comm port returns to its original DefaultMode setting and then use
DIAL or UpDate.
CAUTION
! While Raw mode is temporarily in effect, you
cannot use READ to receive data from the port or
PRINT to send data to the port. If you do use them,
READ and PRINT both return failures.
Example 1 In order to correctly initialize the port, use the InitModem keyword before
dialing a call over the modem,.
Because the actual initialization process may take a few seconds, you
should wait for a few seconds before checking the result. In this example,
the line after InitializeModem waits 10 seconds before going to the
CheckModemInit line, where it checks the result of InitModem.
Program File
Numeric DialDelay, InitResult, DialResult, HangUpResult
SettingDelay:
DialDelay = 20
Goto InitializeModem
InitializeModem:
InitResult = InitModem (Comm3)
Goto WaitForModInit
WaitForModInit:
If TS > 10 THEN Goto CheckModemInit
CheckModemInit:
If InitResult = Success then Goto StartingDial
...
CheckingDone:
If Comm1 PrintDone then Goto CompletingComm
CompletingComm:
HangUpResult = HangUp (Comm3)
CheckingHangup:
If HangUpResult is not Success then Print "Could Not Hang Up Port"
Example 2 If you are using InitModem inside a program, you can have the program
automatically initialize the DefaultPort that you set in the File
Configuration window or at the top of the program. Just give InitModem
without a comm port name, as shown on the next page.
Related DIAL
Keywords HangUp
Format IOUCommFltnumber
Remarks The number is any number or expression that gives the number of
the IOU, up to 16. If number is greater than the highest IOU number,
the controller does not recognize the word.
You may not put a space between IOUCommFlt and the number (#).
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format Greater-than-expression:
number > number
number is greater than number
number is above number
Greater-than-or-equal-to-expression:
number > = number
number is greater than or equal to number
Less-than-expression:
number < number
number is less than number
number is below number
Less-than-or-equal-to-expression:
number <= number
number is less than or equal to number
Equal-expression:
number = number
number is number
number is equal to number
number equals number
Not-equal-expression:
number < > number
number is not number
number is not equal to number
number does not equal number
List-inclusion-expression:
number is in list
number is range (see range-expression below)
number is either list
Format
List-exclusion-expression:
continued
number is not in list
number is not range (see range-expression below)
number is neither list
Range-expression:
number is between lower_number and higher_number
number is not between lower_number and higher_number
number is lower_number thru higher_number
number is not lower_number thru higher_number
Replace list with two or more numbers (as defined above) with
commas between them.
Replace range with two numbers (as defined above), each marking
one end of a range with THRU between them, or two numbers
preceded by BETWEEN with AND between them.
Example 1 To compare two values, you usually place an IS... statement between
IF and THEN in an IF..THEN statement, as illustrated in the following
examples.
Example 2 The following statements are grouped together and give the same
instructions to the controller, because TO is optional and EQUALS
can stand alone without IS:
Program File
If Zone.Temp is equal to 70 then…
If Zone.Temp is equal 70 then…
If Zone.Temp equals 70 then…
Example 3 With IS IN, IS EITHER, IS NOT IN, or IS NEITHER, the comma in the
list means OR. You can also use the word OR before the last item in
the list, for example:
Program File
If Zone.Status is in Occupied, WarmUp then…
If Zone.Status is either Occupied, WarmUp, or Reset then…
Example 4 With IS BETWEEN and IS NOT BETWEEN, you always use AND. IS
BETWEEN with AND is equivalent to IS with THRU. The following
statements are equivalent:
Program File
If Zone.Temp is between 70 and 80 then…
If Zone.Temp is 70 thru 80 then…
Note: With THRU or BETWEEN, do not put parentheses around the
two elements being compared. The following are not allowed:
If Zone.Temp is (70 thru 80) then…
If Zone.Temp is between (70 thru 80) then…
Program File
If Zone.Temp Is not between 70 and 80 then…
If Zone.Temp Is not 70 thru 80 then…
If Zone.Temp is not (RoomTmp - 5) thru (RoomTmp + 5)
If Zone.Temp is not RoomTmp - 5 thru RoomTmp + 5
Note: With THRU or BETWEEN, always put the lower number first.
The following are not allowed:
If Zone.Temp is 80 thru 70 then...
If Zone.Temp is between 80 and 70 then...
Note: Both THRU and BETWEEN are always inclusive, so the
following are both TRUE if the ZONE.TEMP is equal to 70 or 80:
If Zone.Temp is 70 thru 80 then...
If Zone.Temp is between 70 and 80 then...
Related AND
Keywords IF..THEN..ELSE
OR
WHILE
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format LCDPassword
You may only set the LCDPassword from the System Variable dialog
box on a Continuum CyberStation.
You must select the Infinet controller from the CyberStation before
you can set its password.
Products BACnet series, SCX 900 and 920, i2 series, and LCX 810 controllers
Supported (with keypads only).
Modes N/A
Available
Remarks Replace string with any text (word or words) or text expression.
Replace integer with any integer or integer expression up to the
length of the string that tells how many characters you want from the
string.
If integer is greater than the length of the string then the controller
returns the entire string.
Example 2 Suppose that the TEXT variable contains "ROOM808"; the following
statement retrieves the word ROOM by carrying out the LEFT
function:
Program File
LVAL = Left(TEXT, 4)
This statement returns "ROOM".
Alias FIRST
Products ACX series, BACnet series (except b3885, b3887), CX series, DCX
Supported 250, i2 series controllers (except i2885, i2887), and CyberStation.
Alias LEN
Products ACX series, BACnet series (except b3885, b3887), CMX series, CX
Supported series, DCX 250, i2 series controllers (except i2885, i2887), and
CyberStation.
Format 2: linename:
Format 4: integer:
Purpose Labels a particular line in the program so that program control can
later branch or move to that line with the GOTO (or the more
advanced BASED ON..GOTO) statement.
Remarks Replace linename with any single character or word that is not a
keyword, except:
• C (reserved)
• E (used for error detection)
Note: On CX series and CMX series controllers, and CyberStation
you may label a line LINE E and the program automatically goes to
that line when an error occurs. (See Example 5.)
You must begin the name with an alphabetic character. In the GOTO
statement, the label must be spelled exactly as it is in the LINE
statement; however, you may interchange upper- and lowercase.
Replace integer with a single whole number, except zero (0). LINE 0
is predefined for stopping the program, so you may not label a line
LINE 0, but you can use GOTO line 0 to stop a program.
Remarks Format 4 is the integer followed by a colon (:) on its own line. In this
continued case, the line has a line number for a name.
You can label lines to redirect program flow to any part of the
program. For instance, you could return program flow to an earlier
line, such as the first line. Or you could send program flow to a later
line to branch into a specific set of actions.
Example 1 In the following example, the first linename is “StartUp” labeled “Line
StartUp.” Follow the program flow to see how the line name directs
the control of the program.
Program File
Line StartUp
If Temp > 72 then Goto Cooling
If Temp < 70 Then Goto Heating
Line Heating
Turn On the Heat
...
Goto StartUp
Line Cooling
Turn On the Blower
...
Goto StartUp
Example 2 This example is the same as the last, only each linename is labeled
with the name followed by a colon:
Program File
StartUp:
If Temp > 72 then Goto Cooling
If Temp < 70 Then Goto Heating
Heating:
Turn On the Heat
...
Goto StartUp
Cooling:
Turn On the Blower
...
Goto StartUp
Example 3 This example shows how to use an integer (lines 1 and 2) as a line
label:
Program File
Line 1
Start Fan1
Goto 2
Line 2
If Fan1.Status is On then Goto Shutdown
Line Shutdown
If Zone1 Temperature is less than 60 then
Stop Fan1
Goto 1
Endif
Example 5 This example shows a program that has a line labeled E. The
program automatically goes to line E when an error occurs. If you do
not have a line E, the software automatically disables the program.
You might want the program to go to a special line when an error
occurs to take such actions as the following:
• Closing an open comm port (see the OPEN keyword)
• Closing an open file (see the OpenFile keyword)
The following program goes to line E and closes the comm port when
an error occurs.
Program File
Numeric Result
Line OpenPort3
Result = Open (Comm3)
Line TestingOpen
If Result = Success then Goto PrintMenus
If you have a line E, when an error occurs, line E appears in the file
status information.
Related BASEDON..GOTO
Keywords GOTO (can also use LINE with GOTO)
ROTATE
RUN
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Modes Programs
Available
Purpose Places a dot (vertex) on the DCX 250 Display Unit screen at the
horizontal and vertical dots you indicate. This dot is where a long
graphic line should bend or a polygon should begin a new side. The
dots are called “line points.” The line points do not actually appear on
the screen, but form the corners when lines or polygons print.
Returns SUCCESS or FAILURE.
Remarks All LINEPOINT statements for the same line or polygon must always
be between a BEGINPOLYLINE statement and an ENDPOLYLINE
statement. You can have up to 100 line points in a single graphic line
(polyline) or polygon.
You cannot begin a new polyline with BEGINPOLYLINE between
LINEPOINT statements. You may draw only one polyline at a time.
Replace horizontal with the number of dots (line points) from the left
of the screen that the DCX 250 Display Unit should position the dot
horizontally. Can be an integer from 1 to 320, or a name or
expression that gives one. (See Appendix D for a description of the
250 screen layout.)
Replace vertical with the number of dots (line points) from the bottom
of the screen that the DCX 250 Display Unit should position the dot
vertically. Can be an integer from 1 to 200, or a name or expression
that gives one. (See Appendix D for a description of the 250 screen
layout.)
Horizontal and vertical positions set the location of the line point.
You do not need parentheses if LINEPOINT is at the beginning of a
statement.
Example 1 You can create a graph using LINEPOINT (see Figure 7-13) by giving
the dots (line points) you want to graph in a program.
First, you must have a SETDISPLAY statement that sets the display
to NOFILL. NOFILL always gives a graphic line rather than a polygon.
250 SCREEN
Example 2 You can create a polygon (see Figure 7-14) using LINEPOINT by
giving the dots (line position) at the corners of the polygon.
First, you must have a SETDISPLAY statement that sets the display
to FILL. FILL gives a polygon rather than a graphic line.
Second, you must have a BEGINPOLYLINE statement.
Third, you enter one LINEPOINT statement for each line point.
Finally, you enter the ENDPOLYLINE statement.
Program File
SetDisplay (FILL)
BeginPolyLine
LinePoint 20, 30
LinePoint 60, 80
LinePoint 90, 50
LinePoint 20,30
EndPolyLine
250 SCREEN
Example 3 You can use an array of values to create a graph with LINEPOINT.
First, decide how far apart you want the values horizontally for easy
viewing. Then make each array element a vertical value.
For instance, to graph temperatures, you can use an array that stores
the temperatures for the vertical (vertical) values.
To space the values 20 dots apart horizontally, you can multiply the
index variable (1, 2, 3, 4, and 5) times 20 for the horizontal values,
so the values are placed at 20, 40, 60, 80, and 100 dots across the
screen.
Example 3
continued
250 SCREEN
Figure 7-15. Graph drawn with LINEPOINT using and array of values.
The graph also appears more centered on the 250 screen, as shown
on Figure 7-16.
Example 3 You can also label the graph and add scales as described under the
continued Locate keyword.
250 SCREEN
Related BEGINPOLYLINE
Keywords ENDPOLYLINE
LOCATE
Modes Programs
Available
Format LN (integer_expression)
Products ACX series, BACnet series, CX series, DCX 250, i2 series, LCX
Supported series, SCX series, TCX series controllers, and CyberStation.
Format 2: LOAD -o
Format 3: LOAD -m
Format 4: LOAD -o -m
Loads a saved file (called a “dump” file) from a disk into the controller.
The dump file is an appropriately formatted ASCII file (see Appendix
A) that you usually create using the SAVE command (see the SAVE
keyword). You can also create a dump file manually, if you want.
Format 1: Does not erase any points, files, or other items (objects)
already on the controller, but loads information alongside them.
Example 1 The following example loads a dump file onto a controller so that it
adds to the items on the controller. However, it does not replace items
already present:
Command Line window on controller
LOAD
On a terminal attached to a controller, within 60 seconds you type a
command to send the file from the communications package on the
computer. The command is determined by the communications
package used. The following is an upload command from
HyperTerminal:
Host Computer running HyperTerminal
Upload C: addpnts
Example 2 The following example loads a dump file from a disk into the controller
to replace any points, programs, or other items (objects) on the
controller with information from the dump file:
Command Line window on controller
LOAD –o
Example 3 In the following example, while the dump file or database reloads into
the controller, the controller sends messages to the Messages
window:
Command Line window on controller
LOAD –m
Example 4 In the following example, the dump file replaces any points,
programs, or other items with information from the file on the
controller. The controller also sends messages to the Messages
window on the terminal during the reload.
Example 4
Command Line window on controller
continued
LOAD –o –m
You may put the options in any order, -m first or -o first. The -m option
applies only when loading the controller from a disk via a terminal
emulation program.
Related SAVE
Keywords
Alias RELOAD
Example 1 To load the information from a workstation database into the FLOOR1
CX series controller and replace any objects (points, programs, and
others) already present on that controller, give the name of the
controller and then -o, as follows:
Command Line
LOAD Floor1 –o
Example 2 The following example loads only the information about the Temp1,
Temp2, and Temp3 points into the Floor1 controller from a
workstation:
Command Line
LOAD Floor1 Temp1, Floor1 Temp2, Floor1 Temp3 –o
Other information on the controller, such as Infinet controllers and
other points, remains intact.
Example 3 You can use LOAD from a program as well as from the command
line. For instance, to reload a controller that has been reset by some
strong, external interference, you may want to load the information
from the database when the FREEMEM system variable is greater
than a predetermined value:
Program File
Line CheckingMem
If FreeMem > 18,000 then Goto UpdateMem
Line UpdateMem
LOAD Floor4 –o
Line EndingLoad
Goto CheckingMem
Notice that the program does not require a GOTO after the LOAD
statement. The program automatically proceeds to the next line.
Example 4 Normally, when you use LOAD from the command line, the software
automatically displays a window where you can confirm the load. To
have the software display that window when you use LOAD in a
program, you must use -c with the LOAD command:
Program File
Line UpdateMems
LOAD Floor4, Floor5, Floor6, Floor7 –c –o
Example 6 :
Program File
LOAD Floor1.dmp -o
Example 7 :
Program File
LOAD PersonnelFile.dmp –x -o
The –x option instructs the LOAD command to distribute personnel
records to the controller(s). Personnel distribution usually takes
place when something about their record, such as the card
number, has changed.
Related SAVE
Keywords
Alias RELOAD
Products CyberStation
Supported
Purpose Places the next text you print on the DCX 250 Display Unit screen at
the location you indicate with left and bottom, which indicates the
number of dots from the left and from the bottom. The next text you
print appears at the location. Returns SUCCESS or FAILURE.
Remarks To place text accurately, locate it in the position where the lower left
corner of the first character should begin.
You usually follow each LOCATE statement with a PRINT statement.
Replace left with the number of character dots from the left of the
screen that the DCX 250 Display Unit should position the text
horizontally. Can be an integer from 1 to 320, or a name or
expression that gives one. (See Appendix D for a description of the
250 screen layout.)
Replace bottom with the number of character dots from the bottom of
the screen that the DCX 250 Display Unit should position the text
vertically. Can be an integer from 1 to 200, or a name or expression
that gives one. (See Appendix D for a description of the 250 screen
layout.)
You do not need parentheses if LOCATE is at the beginning of a
statement.
Example 1 Suppose you want to print text on the screen to label two buttons.
First, you draw the buttons with, for instance, DRAWRECTANGLE.
Then you locate the text with the LOCATE function and print the
button label, as follows:
Program File
SetDisplay (Blue)
DrawRectangle 50, 100, 100, 120
DrawRectangle 50, 50, 100, 80
Locate 125, 105
Print "Open Valve"
Locate 125, 85
Print "Close Valve"
Example 1 Notice that you do not need the parentheses in this case, because
continued LOCATE is at the beginning of a statement. (You can, however, use
the parentheses to make the program easier to read.)
The labels appear next to the buttons as show in Figure 7-17.
250 SCREEN
OPEN VALVE
CLOSE VALVE
Example 2 Suppose you want to put labels on a graph, such as the one
discussed in Example 3 of the LINEPOINT keyword. You use
LOCATE to first position the title of the graph, then locate the
temperature labels, as follows:
Program File
SetDisplay (Blue)
Locate 20, 150
Print "Outside Air Temp–Occupied Hours"
SetDisplay (NOFILL)
BeginPolyLine
For Index = 1 to 5
LinePoint Index *20, OutsideAir[INDEX] * 2
Next Index
Example 2 EndPolyLine
continued Locate 20, 130
Print "70"
Locate 20, 100
Print "50"
Locate 20, 70
Print "30"
Locate 35, 45
Print " 8 10 12 14 16"
DrawLine 30, 42,110, 42
DrawLine 30, 42, 30, 145
The title appears where you position the text as shown in Figure 7-18.
250 SCREEN
70
50
30
8 10 12 14 16
Related PRINT
Keywords
Modes Programs
Available
Products ACX series, BACnet series (except b3885, b3887), CX series, DCX
Supported 250, i2 series (except i2885, i2887), LCX series, SCX series, TCX
series controllers, and CyberStation.
Remarks Replace numeric_list with one or more numbers or names that stand
for numbers, separated by commas.
If any of the items in the list in Format 1 is an array or a log but does
not indicate an element number, the controller retrieves the current
value of the point and treats it like any other single item in the list.
Example 2 There is a log called AV.TEMP that holds the average temperature for
each of the last five days. You can use the MAXIMUM function to
find the maximum temperature:
Program File
WklyMax = maximum (AV.TEMP)
If AV.TEMP contains 110, 114, 112, 108, 109, MAXIMUM returns 114
and the program statement sets WKLYMAX to 114.
Example 3 You can find the maximum number of kilowatts in the array of
variables as follows:
Program File
Top = maximum (KW)
Example 4 You find the highest of several temperatures, including the current
value of TempLog, as follows:
Program File
HourlyAvg = maximum (Tmp801, Tmp802, TempLog)
In this instance, TempLog is interpreted as the current value of
TempLog.
Alias MAX
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Purpose Format 1: Finds the position (in a list) of the largest number. For
instance, returns 1 if the largest number is the first one in the list.
Format 2: Finds the index position of the largest number in the log.
Format 3: Finds the index position of the largest number in the array.
Remarks Replace numeric_list with one or more numbers or names that stand
for numbers, separated by commas.
Replace numeric_log with any defined log that contains numbers.
Replace numeric_array with any defined array that contains
numbers.
If any of the items in the list in Format 1 is an array or a log, the
controller retrieves the first item from the array or log and treats it like
any other single item in the list.
Example 1 To find the position of the largest number in a series of numbers, you
enter the series in the parentheses:
Program File
Temp1 = 60
Temp2 = 65
Temp 3 = 70
Temp 4 = 67
maxitem (Temp1, Temp2, Temp3, Temp4)
The MAXITEM statement returns 3, because the third item in the list
contains the largest number.
Example 2 To find the index position of the largest number in a log, give the log
name in parentheses:
Program File
maxitem (Temp)
Example 3 To find the index position of the largest number in an array, give the
array name in parentheses:
Program File
maxitem (KW)
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format MessageWindow
Example If you have assigned an object other than the MessageWindow as the
default port of your program, you can still send a message to the
message window using MessageWindow in a PRINT statement:
Program File
Print "Cannot open the file" to the MessageWindow
Related STATUSLINE
Keywords
Products CyberStation
Supported
Format MicroPower
Purpose A predefined variable that you set to OFF to turn off battery power to
the ACX 781 controller. Turn off the battery power after AC power
fails, so that you preserve the life of the battery and extend the length
of time the controller can retain memory on battery backup.
Remarks For advanced users only. Most often used in programs that respond
to loss of AC power.
When you set MicroPower to OFF and AC power is not present, you
shut off power to the ACX 781 controller.
After AC power goes down, the battery power takes over. Setting
MicroPower to OFF turns off battery power to the CPU at the end of
the scan that was in process before the AC power failure. As a result,
the controller does not operate at all until AC power returns.
When AC power returns to normal, the ACX 781 controller begins the
scan at the first program in the firing order list. All programs continue
on the line that they were on before you turned off the battery power
to the CPU.
To retain memory for the longest possible time, you should turn off
MicroPower as soon as possible after PowerFail becomes ON.
Example When the AC power fails on the ACX 781, the PowerFail system
variable becomes ON. You can have PowerFail trigger the following
looping program to turn off the 781 CPU if the power remains off for 2
minutes:
Program File
Line WaitForFail
If PowerFail is On then
Goto TimePowerDown
Else
Stop
Endif
Line TimePowerDown
If Tm > 2 then Goto TurnOffCPU
Line TurnOffCPU
If PowerFail is On then
Set MicroPower to Off
Else
Stop
Endif
Notice that since the PowerFail variable triggers the program
whenever the system variable changes, you must test to be sure that
PowerFail is ON, not OFF, before setting MicroPower to OFF.
Remarks Replace string with any text (word or words) or text expression.
Replace offsett with the number (or a variable that contains the
number) of the position where you want the controller to start
extracting the string of characters.
If offset is greater than the length of the string expression, the MID
returns the empty string, "".
Replace number with any number or expression. Tells how many
characters you want extracted from the text string.
Products BACnet series (except b3885, b3887), CX series, CMX series, DCX
Supported 250, i2 series controllers (except i2885, i2887), and CyberStation.
Remarks Replace numeric_list with one or more numbers or names that stand
for numbers.
If any of the items in the list in Format 1 is an array or a log but does
not indicate an element number, the controller retrieves the current
value of the point and treats it like any other single item in the list.
Example 1 The MINIMUM function finds the minimum number in the following list
of variables:
Program File
BotNumber = minimum (Zone1, Zone2, Zone3, Zone4)
The BotNumber variable is assigned the minimum value found.
Example 2 Suppose you have a log or array called AV.TEMP that holds the
average temperature for each of the last five days. You can use the
MINIMUM function to find the minimum temperature:
Program File
WklyMin = minimum (AV.TEMP)
If AV.TEMP contains 110, 114, 112, 108, 109, MINIMUM returns 108
and the program statement sets WKLYMIN to 108.
Example 3 You can find the minimum number of kilowatts in the array of
variables as follows:
Program File
Bottom = minimum (KW)
Example 4 You can find the minimum of several temperatures, including the
current value of TempLog, as follows:
Program File
HourlyAvg = minimum (Tmp801, Tmp802, TempLog)
In this instance, TempLog is interpreted as the current value of
TempLog.
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Purpose Format 1: Finds the position (in a list) of the smallest number. For
instance, returns 1 if the smallest number is the first one in the list.
Format 2: Finds the index position of the smallest number in the log.
Example 2 To find the index position of the smallest number in a log, you give
the log name in parentheses:
Program File
BotNumber = minitem (TEMP)
Example 3 To find the index position of the smallest number in an array, you give
the array name in parentheses:
Program File
BotNumber = minitem (KW)
Example 4 You find the position of the lowest of several temperatures in a list,
including the current value of TempLog, as follows:
Program File
HourlyAvg = minitem (Temp801, Tmp802, TempLog)
In this instance, TempLog is interpreted as the current value of
TempLog.
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format MINUTE
Purpose Gives the exact minute of the current hour, from 0 to 59.
Remarks The minute is the minute on the system clock, so if the time is
5:23:02, the minute is 23.
You cannot change the MINUTE. The current device (the Infinity
controller, the Infinet controller or the CyberStation) automatically
updates it.
Example Suppose you have eight programs to run every hour. To avoid
consuming scan time by running all of the programs at once, you
could run two programs in each quarter of every hour:
Program File
If Minute Equals 15 then
Run the System.Check
Run the Power.Usage
Endif
If Minute Equals 30 then
Run the Temp.Check
Run the Temp.Rept
Endif
If Minute Equals 45 then
Run the Fan.Check
Run the Damper.Check
Endif
If Minute Equals 0 then
Run The Heater.Check
Run The Co.Check
Endif
The System.Check and Power.Usage programs now run at 15
minutes after the hour every hour of every day.
Related HOD
Keywords HOUR
SECOND
TOD
Alias MIN
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Alias REMAINDER
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format ModemPower
Purpose A predefined variable you can set to OFF to turn off battery power to
the modem inside the door of the CX series controller. Turn off the
modem when AC power fails. This way you preserve the life of the
battery and extend the length of time the controller can operate on
battery backup.
Remarks For advanced users only. Most often used in programs that
respond to loss of AC power.
You can turn the modem on and off with the ModemPower keyword
as long as AC power is off.
Example When the AC power fails, the PowerFail system variable turns ON.
You can have PowerFail trigger the following looping program to turn
off the modem if the power remains off for 10 minutes.
Program File
Line WaitForFail
IF PowerFail is On then
Goto TimePowerDown
Else
Stop
Endif
Line TimePowerDown
If Tm > 10 then Goto TurnOffModem
Related PowerFail
Keywords CPUPower
DCXPower
MicroPower
Format MONTH
Purpose Gives you the current month of year, from January to December.
Remarks You cannot change the MONTH. The system automatically updates it.
When printed, the month is spelled out as January, February, and
March, and so on through December. You may, however, compare the
MONTH to:
• The numbers (1 through 12).
• The abbreviated three-letter names (first three letters).
• The entirely spelled out month
All values for MONTH are listed below:
Constant Short Name Long Name
1 JAN January
2 FEB February
3 MAR March
4 APR April
5 MAY May
6 JUN June
7 JUL July
8 AUG August
9 SEP September
10 OCT October
11 NOV November
12 DEC December
Example 1 You can use the spelled out (long) names for printing or for
comparing to an actual month:
Program File
If Month Is December then Print Month
Output
December
Example 2 You can use the short names for comparing the month:
Program File
If Month is either Jun, Jul, Aug, or Sep then….
Example 3 You can use the constants 1 through 12 for comparing the month:
Program File
If Month is 2 then….
Alias MTH
Related DAYOFMONTH
Keywords DAYOFYEAR
YEAR
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Related SET
Keywords
Alias MODULATE
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format NewAlarmCount
Purpose Indicates the number of new alarms on a CX series controller and all
of its Infinet controllers since the last time the alarms were sent to the
workstation. The controller maintains this system variable.
Example 1 You can also use the NewAlarmCount in a program to see how many
alarms have not been sent to the workstation and take appropriate
action:
Program File
If NewAlarmCount > 0 then…
Format NOFILL
Purpose Sets the graphics on the DCX 250 Display Unit screen to lines rather
than filled solids when you use it with SETDISPLAY.
Remarks The graphics on the 250 screen may be filled (FILL) or not filled
(NOFILL).
Example You set the graphics on the 250 screen to lines, as follows:
Program File
SetDisplay (NOFILL)
Related FILL
Keywords SETDISPLAY
Modes Programs
Available
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Purpose Creates and defines one or more names as local numeric variables.
You define the variables inside a program for use only in that
particular program.
Remarks Replace namelist with the name of the numeric variable you are
defining, or a series of numeric variables separated by commas.
You must define all local numeric variables at the top of your
program.
Example 1 Suppose that you are averaging the values of ten temperatures. The
points that take the outside air temperature have been defined using
menus and windows, but you define the variable that contains the
average using Numeric:
Program File
Numeric Avg.Temp
Avg.Temp = Average (Temp1, Temp2, …., Temp10)
Print Avg.Temp
Example 4 You can define several arrays of numeric variables and several single
variables in a single statement:
Program File
Numeric Fan.Sp [20], Pump.Sp, Ahu.Sp [10], Heat.Sp
Related DATETIME
Keywords STRING
Alias NUMBER
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Modes Programs
Available
Example The following program translates the number 240 into a string:
Program File
String Trans
Trans = NumToStr(240)
Print Trans 'prints string 240.
Related STRTONUM
Keywords
Products BACnet series (except b3885, b3887) , CX series, CMX series, DCX
Supported 250, i2 series controllers (except i2885, i2887), and CyberStation.
OBJECT Statement
Purpose Creates and defines one or more local variables that can each hold
the name of an item (also called an "object"). An object is any defined
item on a controller or workstation. You define the local variables
inside a program for use only in that particular program.
Example 1 You can use OBJECT to assign a local OBJECT variable name to a
single class of items in a controller:
Program File
Object VAVPoint
You can later open a series of points with OpenList.
Example 2 You can use OBJECT to assign local OBJECT variable names to
many classes of items in a controller:
Program File
Object ChillerPoint, ChillerProg, ChillerData
You can later open each list of items with OpenList
Example 3 You can set an object variable to any object and then read or set any
attributes of that object:
Program File
Object X
X = Floor4\Temp1
Print x Value
Prints the value of Temp1
Related CLOSELIST
Keywords GETOBJECT
OPENLIST
Modes Programs
Available
Format OFF
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format ON
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format -ON
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Purpose Allows you to direct information to or from a comm port, rather than
automatically sending information to the terminal screen or Message
Window. You can open a port to call on a modem or to receive a call.
Returns SUCCESS if the comm port opens without a problem.
Returns FAILURE if the comm port does not open. Once OPEN
executes, the controller automatically moves to the next labeled line.
You never need GOTO after OPEN.
Remarks The comm_port names the comm port, or path to a comm port, that
you wish to use. You may use OPEN as a function only on comm
ports.
Verify that the mode of the comm port you open is set to RAW mode.
OPEN must always be the last statement on a labeled line or on a
line by itself. The line immediately following the OPEN line must test
for SUCCESS or FAILURE; otherwise, the control system software
considers it an OPEN error.
After you complete communications on the comm port and you open
the comm port with OPEN, you must close the port with CLOSE.
Example You can open the connection to a comm port and check to see if it
was successful. Then, either read or write data to the port with a
CALL function you create:
Program File
Numeric Result
Line Opening
Result = Open (Comm1)
Line Sending
If Result = Success then
‘ Read up to 80 characters into the point Rcv_String
Read (Comm1,80,Rcv_String)
Else
Print "Open Commport Failed" to Terminal1
Endif
Example The situation shown in this example, checks to be sure OPEN was
continued successful before performing Commport operations.
Related CLOSE
Keywords PRINT
READ
Modes Programs
Available
Purpose Opens a text file so that you can retrieve (read) text from it, put text
into (write to) it, or both read from it and write into it.
Remarks Replace a file with the name of any text file. If the file does not
already exist, the control system software creates it.
mode must be either ReadOnly, WriteOnly, or ReadWrite.
ReadOnly means you can only retrieve (read) text from the file, not
put (write) any text into it.
WriteOnly means you can only add (write) text into the file, not
retrieve (read) it.
ReadWrite means you can both retrieve (read) text from the file and
put (write) text into the file.
file_variable_name must be a control system software FILE variable
name you created earlier with FILE to correspond to a text file name.
Once you use FILE to create a FILE variable, you can use the name
to then open a text file with OpenFile.
OpenFile returns either SUCCESS or FAILURE.
Example 1 First you create a FILE variable name with FILE. You can then open a
text file under that name with OpenFile, as shown in this example.
Program File
File ZoneData
Numeric Chars, OK
String 80 Dataline
Line Opening
If OpenFile ("c:\text\zone.txt", WriteOnly, ZoneData) = Failure then
Print "File Open Failed"
After you open the file and take action on it, you must close the file
with CloseFile using the name you created with FILE.
Example 2 Once you have defined the array of FILE variables, you can open
multiple text files. The following example shows opening \zone1.txt,
\zone2.txt, and \zone3.txt in a FOR..NEXT loop. The loop uses the
index variable (FILENUM) when forming the string for the text file
name. If OpenFile fails for any of the files, the control system software
breaks out of the loop (using the BREAK keyword) and carries out the
rest of the statements in the line.
Both breaking out of the loop and successfully completing the loop
send the control system software to the next statement. If the result of
OpenFile is SUCCESS, then the control system software goes to the
READING line and does not execute any more statements under
OPENING. If the result is FAILURE, the control system software skips
the Goto Reading instruction and goes to the next statement, where it
prints a message, sets FILESOPEN to the number of files
successfully opened (so it knows how many to close), then goes to
the CLOSING line.
Products CyberStation.
Supported
Modes Programs
Available
Purpose Opens a list of all the objects in the class you give on the controller
you indicate. The list is always of the particular class of objects you
give.
Remarks Replace class with the name of the class (type) of objects you want
in the list or string variable that contains the name. If you give the
actual class, it must be in quotation marks. The class name must be
spelled correctly (see list given on the next page).
Remarks The classes listed below are each spelled a particular way.
continued
AccessEvent DigitalInput Group MultistateOutput
ActivityEvent DigitalOutput GroupMember MultistateValue
ACXList DistributionBatch ImExportRef Network
AlarmEnrollment DistributionObject InfinityController NetworkDialup
AlarmEvent Door InfinityDateTime Numeric
AlarmInfo DoorList InfinityFunction ParamInfo
AnalogInput ElevatorInfo InfinityInfinetCtlr Personnel
AnalogOutput ErrorEvent InfinityInput Program
Area EventEnrollment InfinityNumeric RootClass
AreaLink EventLogControl InfinityOutput Schedule
BinaryValue EventNotification InfinityProgram SecurityLevel
ClassName EventView InfinityString SecurityLink
CommPort Filter InfinitySystemVariable ShortCut
ControllerUser Folder IOUModule String
DateTime Function ListView TemplateInfo
Device Graphics MultistateInput User
Example 1 After you have defined a local OBJECT variable called VAVPoint, you
can open the list of outputs with OpenList, as in the following
program.
Program File
Object VAVPoint
Numeric OK
Line OpenPoints
OK = OpenList ("InfinityOutput", VAVPoint, Floor1 Room2VAV)
If OK = Success then
Goto GetPoints
Else
Print "Cannot Open List"
Stop
Endif
Line GetPoints
If GetObject (VAVPoint) is not Success then Goto ClosePoints
If VAVPoint State is Disabled then Print VAVPoint Name
Line ClosePoints
OK = CloseList (VAVPoint)
If OK = Failure then Print "Cannot Close List"
Stop
Notice that the class (InfinityOutput) is in quotation marks.
Once the list is open, the program then gets each point on the Floor1
Room2VAV controller with GetObject (see GetObject keyword for
more detail). Notice that because the program is looping, you use the
STOP keyword to prevent it from repeating the actions on the
ClosePoints line.
Example 2 You can print a list of disabled programs on a controller and vary the
controller by using a local OBJECT variable to contain the controller
name. Once you have defined the OBJECT variable, you can use that
variable with OpenList.
The resulting list includes only programs on Floor2, not on any other
controller.
You can also get a list of programs from a workstation by setting the
CXFloor local OBJECT variable to the name of a workstation. If you
do not give a controller or workstation name, the control system
software gives the programs from the controller you are connected to
or workstation you are operating.
Example 3 You can open a list of the Infinet controllers on the CX controller. (In this
example, the program is looping.)
If the controller is running the program, you do not have to give the name of
the controller. If it is another controller, however, you must give the full path
to the controller.
Program File
Object infController
Numeric Count, OK
Line OpenController
OK = OpenList ("InfinityInfinetCtlr", InfController)
If OK = Success then
Goto GeTController
Else
Print "Cannot Open List"
Stop
Endif
Line GeTController
If GetObject (InfController) is not Success then Goto CloseController
If InfController CommStatus is OffLine then
Print InfController Name
Count = Count + 1
Endif
Line CloseController
OK = CloseList (InfController)
If OK = Failure then Print "Cannot Close List"
Pr Count
Stop
Notice that the class name for an Infinet controller is “InfinetCtlr,” spelled
exactly that way. Use the "Infinity" prefix in the class name, as in
"InfinityInfinetCtlr", when you run the program at the workstation level. If a
program is to be run at the controller level, then do not use the prefix.
This program checks the CommStatus of each Infinet controller on the
EnergyNet controller. If the controller is off-line, the control system software
prints the controller name and adds 1 to the Count numeric variable. When
the control system software has finished checking all the controllers, you
have a list of the Infinet controllers that are off-line and a total of the number
of controllers that are off-line.
Example 4 You can retrieve both input and output points by having a string that
you can set to either class. In this case, you use an array variable
called IOPoints with two entries; entry 1 is "Output" class, and entry 2
is "Input" class.
You then get the points from first one class, then the other by using
the array variable in the OpenList statement:
Program File
Object CurrentPoint
String IOPoints[2]
Numeric Index
Starting:
IOPoints[1] = "InfinityOutput"
IOPoints[2] = "InfinityInput"
Index = 1
Goto OpenPoints
OpenPoints:
OK = OpenList (IOPoints[Index], CurrentPoint,~
Building1 Floor1 Room2)
If OK = Success then
Goto CheckPoints
Else
Print "Cannot Open List"
Stop
Endif
CheckPoints:
If GetObject (CurrentPoint) is not Success then Goto ClosePoints
Pr CurrentPoint
ClosePoints:
OK = CloseList (CurrentPoint)
If OK = Success then
Index = Index + 1
Else
Print "Cannot Close List"
Stop
Endif
You could have an array with more entries and call it CLASSGRP. By
changing the INDEX value, you can open lists of as many classes as
you need in the same program.
Example 5 You can retrieve the name of every disabled program on every Infinet
controller on every CX controller. You can do so by using a local
OBJECT variable for the controller called ENETCTLR, another for the
Infinet controller called INETCTLR, and another for the program
called CURRENTPROG.
The way the sample looping program works is similar to how nested
IFs work in a fall thru program. The arrows indicate the opening and
closing statements “nested” within the program on the next page.
The first OpenList statement opens the list of CX controllers, the next
list of Infinet controllers, and the last of the programs. (They do not
appear indented as nested IFs do.)
The CloseList statements appear in the opposite order. Once you
have retrieved all the programs, you close the program list; then you
close the Infinet controller list, and finally you close the CX controller
list.
Notice that the first OpenList statement does not give a path. That is
because this sample program is on a CX controller, and the current
controller is the path to other controllers.
Example 5 If you want all controllers on all sites, you have to open the site list first.
continued Program File
Object EnetCtlr, InetCtlr, CurrentProg
Numeric Count
OpenEnergyNet:
If OpenList("InfinityController", EnetCtlr) = success then
Goto GetEnergyNet
Else
Print "Cannot Open EnergyNet List"
Stop
Endif
GetEnergyNet:
If GetObject(EnetCtlr) = Success then Goto OpenInfinet
Goto CloseEnergyNet
OpenInfinet:
If OpenList("InfinityInfinetCtlr", InetCtlr, EnetCtlr) = Success then
Goto GetInfinet
Else
Print "Cannot Open Infinet List: ", EnetCtlr Name
Goto GetEnergyNet
Endif
GetInfinet:
If GetObject(InetCtlr) = Success then
Goto OpenProg
Else
Goto CloseInfinet
Endif
OpenProg:
If OpenList("InfinityProgram", CurrentProg, InetCtlr) = Success then
Count = 0
Goto CheckProg
Else
Print "Cannot Open Program List: ", EnetCtlr Name, InetCtlr Name
Goto GetInfinet
Endif
Example 5 CheckProg:
continued If GetObject (CurrentProg) is not Success then Goto CloseProg
If CurrentProg State is Disabled then
Print EnetCtlr Name, InetCtlr Name, CurrentProg Name
Count = Count + 1
Endif
CloseProg:
If CloseList(CurrentProg) = Success then
Print "Total disabled progs in |* |* is |###", EnetCtlr Name,~
InetCtlr Name, Count
Else
Print "Cannot Close Program List"
Endif
Goto GetInfinet
CloseInfinet:
If CloseList(InetCtlr) is not Success then
Print "Cannot Close Infinet List: ", InetCtlr Name
Endif
Goto GetEnergyNet
CloseEnergyNet:
If CloseList(EnetCtlr) is not Success then
Print "Cannot Close EnergyNet List"
Endif
Stop
The following is an exact description of what the program does. A flow
chart for the program is shown on Figure 8-19. The control system
software opens the list of CX (Infinity) controllers on EnergyNet, and then
gets the first CX (EnetCtlr) controller.
If the first program is disabled, the control system software prints the
program name. Then, it adds 1 to the COUNT numeric variable to
start adding up how many programs are disabled.
The control system software then gets the next program on the Infinet
controller and sees if it is disabled. The process continues for all
programs on that Infinet controller.
The same process occurs for every Infinet controller that occurred for
each on the last CX controller.
Example 5
continued Open
EnergyNetList
Get
Close No EnergyNet
EnergyNet Controller ?
Yes
Open Infinet
List
Get
Infinet No Close Infinet
Controller ? List
Yes
Open
Program List
Get
No Another
Close
Program List Program ?
Yes
Process
Program
STOP
Example 6 You can retrieve a list of sites under the root by giving the Site class
an OBJECT variable name with OpenList:
Program File
Object NetName
Numeric OK
Line OpenSites
OK = OpenList ("Network", SiteName)
If OK = Success then
Goto GetSites
Else
Print "Cannot Open List"
Stop
Endif
Line GetSites
If GetObject (SiteName) is not Success then Goto CloseSites
Print SiteName Name
Line CloseSites
OK = CloseList (SiteName)
If OK = Failure then Print "Cannot Close List"
Stop
Related GetObject
Keywords Object
CloseList
Format 2: CyberStation.
Modes Programs
Available
Format 2: When used in a list of names between the last two items,
indicates the end of the series.
Remarks Replace number with any number, name that stands for a number,
formula or function that gives a number.
Replace namelist with one or more names with commas between
them.
Replace final_name with a single name at the end of a series of
names.
OR with the last name is optional.
The controller carries out all other operations (such as adding and
subtracting) before it acts on OR (or AND).
In Chapter 6 under "Order of Action" the listing compares the order
the system software acts on all operators. Because OR (and AND)
are acted on last, you can form logical statements without using too
many parentheses. See Example 4 for how to use AND and OR
together.
The exclamation mark (!) is the alias for the logical OR only.
Example 1 To take an action only if one of several conditions exists, you use OR
between the numbers. If one of them is true, the resulting action
occurs:
Program File
If the Heat is On or the Cool is On then…
Notice that in the above statement, you could substitute exclamation
mark (!) for OR.
Example 2 To put a list in an IF statement, you may use an OR between the last
two names in the list:
Program File
If the Zone is Warming, Occupied or LowTemp then…
You may not use the exclamation mark (!) for OR in a series. You
may, however, leave out OR as follows:
If the Zone is Warming, Occupied, LowTemp then...
Example 3 You can also combine the logical OR with a name list containing an
OR (with or without the comma before OR) as follows:
Program File
If the Zone is Warm, Occupied or Low or Heat is Off then…
If the Zone is Warm, Occupied, or Low or Heat is Off then…
The system software always interprets the first OR as the list OR and
the second as the logical OR. If you want to reverse the order of the
statement, use parentheses, as follows:
If (Heat is Off) or Zone is Warming, Occupied, or LowTemp then...
Related AND
Keywords IF..THEN..ELSE
IS…
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format P list
Purpose Prints the values of one or more variables, points, constants, or other
expressions representing a value (including strings of characters and
datetimes) each on a separate line. The list can contain different
types of items. Prints units with point values.
Remarks The list is one or more expressions with commas between them.
Each expression can be a number or text as defined under Format
Conventions at the beginning of this chapter. The list can also
include functions or attributes.
Prints the values to the screen on which you are currently working.
For points, system variables, and attributes, prints the name of the
point (or variable or attribute), followed by an equal sign, the value of
the point, and the units. Otherwise, only the value prints.
Also, can print to comm ports and string objects (including program
string variables).
Notice that the name of the point and the units print for each point.
Alias PR
Purpose Indicates whether or not the argument with the arg_number has
been passed into the current function. Returns TRUE (numeric 1) if
the argument is passed and FALSE (numeric 0) if it is not.
Example You can create a function that takes an argument and checks to see
if the argument is passed. The function below returns the number of
the argument that has the highest value. It returns when it finds the
first argument that is not passed. The function called MAXITEM,
predefined in the language and described earlier in this chapter, is as
follows:
Program File
Numeric Count, LastMax
LastMax = 1
For Count = 1 to 15
If not (passed(Count)) then Return (LastMax)
If Arg[Count] > LastMax then LastMax = Count
Next Count
Related ARG
Keywords
Products ACX series, BACnet series, CX series, DCX 250, i2 series, LCX
Supported series, SCX series, TCX series controllers, and CyberStation.
Modes Programs
Available
Replace file with the name and path of any * .wav prerecorded audio
sample. The file name and path must be in quotation marks.
PlayOnce plays the prerecorded audio sample one time only. The
PlayAudio keyword defaults to this value, so the audio sample plays
only once if you omit playback_mode altogether.
Example You may want to play a prerecorded audio sample from the command
line on the CyberStation. To play the audio sample in the buzzer.wav
file one time only, use PlayAudio as follows:
Command Line
PlayAudio "buzzer.wav"
Products Cyberstation
Supported
Alias +
Products ACX series, BACnet series, CX series, DCX 250, i2 series, LCX
Supported series, SCX series, TCX series controllers, and CyberStation.
Remarks After you open the file with OpenFile, a new read or write process
(READFILE or WRITEFILE) automatically starts at the top of the file
(FILEBEGIN) without using PositionFile to set it.
If you have been reading a file, the next read automatically begins
where you last finished reading, unless you set a new starting
position with PositionFile. The same applies for writing.
Returns SUCCESS or FAILURE.
file_variable_name must be a control system software FILE variable
name you created earlier with FILE to correspond to an file name.
Replace offset with the direction and number of characters from the
starting_position to start reading/writing in the file. You may indicate
to move forward with a plus sign (+) or backward with a minus sign
(–).
Starting_position tells where to begin reading or writing in the file.
Must be one of the following:
• FILEBEGIN
• FILECURRENT (where you left off last read or write)
• FILEEND.
Example 1 After you define a local FILE variable name and open the file (with
OpenFile), you can start either reading (with ReadFile) or
writing (with WriteFile) at a particular position in the file. Use
PositionFile to set the starting position.
Suppose you want to read data from a file that lists controllers that
had a temperature more than 2 degrees from setpoint for more than 2
minutes in the last 24 hours. The file contains three records and looks
like this:
Example 2 To set the position to begin writing to the end of the file, use
PositionFile with an offset of 0, as follows:
Program File
PositionFile (ZoneData, 0, FileEnd)
Example 3 After writing to somewhere within the file, you can reset the position to
start writing at the beginning of the file, by using PositionFile with
FILEBEGIN, as follows:
Program File
PositionFile (ZoneData, 0, FileBegin)
Example 4 To put a space between a series of records you are writing into a file,
set the position to start writing immediately after the last place the
control system software wrote with FILECURRENT, then add an
offset of 1, as follows:
Program File
PositionFile (ZoneData, 1, FileCurrent)
Example 5 To put a space between a series of records you are writing and
adding onto the end of a file, set the position to start writing
immediately after the end of the file with FileEnd, then add an offset
of 1, as follows:
Program File
PositionFile (ZoneData, 1, FileEnd)
Related CloseFile
Keywords FILE
OpenFile
ReadFile
WriteFile
FAILURE
SUCCESS
Products CyberStation.
Supported
Modes Programs
Available
Format POWERFAIL
Purpose Indicates whether or not the AC power has failed. For CX series
controllers it will equal “ON” if power has failed and OFF if power is
available. For all other controllers it is set equal to “ON” for one scan
when power returns. All CX series controllers, that have configured
with UPS, can continue to run on battery backup while power is down.
The only Infinet controller that can run on battery backup is the 780.
Example You can test to see if AC power is down and then turn off a
programmable system variable as follows:
Program File
If PowerFail is on then Set ModemPower to Off
Related PowerUpTime
Keywords CPUPower
ModemPower
Products ACX series, BACnet series, CX series, DCX 250, i2 series, LCX
Supported series, SCX series, TCX series controllers, and CyberStation.
Format POWERUPTIME
Purpose Gives the date and time of the last warm or cold start of the AC
power.
Remarks Most often used in programs to determine how long AC power has
been up since the last power failure.
Example You can find the number of hours that have passed since the AC
power was started:
Program File
TimeUp = DiffTime (Hour, PowerUpTime, Date)
Related POWERFAIL
Keywords
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Purpose Prints a series of characters (text strings, often called simply “strings”)
to the message window, the status line, a string object or attribute, a
local variable, a printer, a communications port, or a text file.
You may also “print” into a string point or local variable to fill it with a
string of text or numbers. In addition, on the CyberStation, you can
print into an ASCII file.
Purpose Format 5: Prints any of formats 1 through 3 above, printing the next
continued PRINT statement on the same line because semicolon means “stay
on the same line.”
Formatting You may choose the layout of the print line and indicate it using the
Characters following special symbols:
Symbol Description
Indicates the beginning of a series of characters strictly for
⏐ formatting and not to be treated as text. When followed by a
numeric constant, indicates an ASCII code follows (see below).
(A vertical bar immediately before a quotation mark.) Indicates
⏐" to print the quotation mark, rather than interpreting it as the
beginning or end of the string.
Produces the ASCII code that corresponds to the numeric
constant. For example, |7 would produce a bell or beep if
⏐numeric_ constant
printed on a terminal. |13 is the carriage return character. See
the ASCII code chart in Appendix A for more codes.
Represents one character that is numeric. The series of
# characters prints right-justified, filling with blanks any blank
characters to the left.
$### Displays either ON, -ON or OFF (as with a tristate output point).
Multiplies the point value by 100 and places a percent sign after
%
it (most useful with scale of 0 to 1, where 1 is 100%).
Represents an unlimited number of alphabetic or numeric
*
characters.
Prints a leading or trailing minus sign, if expression is a
- negative number; prints a leading or trailing plus sign if
expression is a positive number.
} Removes trailing zeros (extra decimal places).
, Prints commas every third digit left of the decimal point.
> Right justifies the number or text within the format.
< Left justifies the number or text within the format.
^ Displays a numeric expression in scientific notation.
Represents one character of any kind, alphabetic or numeric.
@ The series of characters prints left-justified, filling with blanks
any blank characters to the right.
Examples 1-21 The following examples illustrate the various PRINT formats:
67 72 77 75 / The value
of each variable in the list
2 Print TEMP1, TEMP2, TEMP3, TEMP4
prints, with a space after it.
Tuesday January 2
Print WeekDay;
/ Prints all text and spaces on
Print " ";
the same line because each
5 Print Month;
PRINT statement ends with a
Print " ";
semicolon (;).
Print DayOfMonth
/ Prints the value into the
string and changes its setting.
6 Print "HEAT.SETPT" to PointName
You can set a string point or
variable this way.
9 Print "The Fan Status is ⏐$###”, FanStatus / Prints ON, -ON, or OFF for a
digital or tristate point, left-
justifying On in the format.
The Damper Setting is
20.00 / Prints the pulsing
value of the damper in the
10 Print "The Damper Setting is ⏐##.##", Damper format. Here the damper is ON
for 20 seconds. For -ON, the
value is negative.
Murphy Johnson /
Outputs any number of
characters of any type that are
11 Print "⏐*", Murphy FullName in the FullName attribute. The *
is particularly useful when you
do not want to limit the number
of characters in a variable.
Heater Failed! / The
Print "⏐@@@@@@@@@@@@@@",~ message inside STRMSG prints
12
STRMSG to Building1 Console left justified in the 14 characters
allowed by the @ signs.
21.7 / Right justifies
13 Print "⏐>#######.##}", 21.70
and drops the trailing 0.
+88.8 / Prints leading minus
sign if the number is negative
14 Print "⏐-##.##", 88.8 and the leading plus sign if the
number is positive. Prints all
trailing zeros.
Example 22 To put data in an ASCII file, you first open it with OpenFile (see the
OpenFile keyword), then "print" into the file with the PRINT keyword, as
shown below:
Program File in CyberStation
Numeric Cnt, OK
File NewData
OpeningFile:
OK = OpenFile ("c:\tempdata.txt", WriteOnly, NewData)
If OK = Failure then Goto Ending Else Goto PrintToFile
PrintToFile:
Print "KWH Usage Cost" To NewData
For Cnt = 1 to 10
Print "|######> |####.##>", KWHUsage[Cnt], Cost[Cnt] to NewData
Next Cnt
Goto ClosingFile
Example 22 ClosingFile:
continued OK = CloseFile (NewData)
If OK = Failure then Print "Cannot close text File"
Ending:
Stop
In this example, the local FILE variable called NewData represents an ASCII
file. After the OpenFile keyword opens the ASCII file, PRINT can refer to the
file by the local FILE variable name and put data into it. In this case, the
local FILE variable is NewData, so PRINT prints the KWH usage and cost
into the ASCII file.
OutPut⎯To the File
KWUsage Cost
4567 548.04
8724 1134.12
3862 463.44
4532 543.84
3217 386.04
9421 1224.73
567 56.70
856 94.16
3763 451.56
589 70.68
Example 23 If you put a semicolon at the end of the PRINT statement, the next
PRINT statement's results appear on the same physical line inside the
file:
Program File in CyberStation
Print "January: |####> |####.##> ", KWUsage, Cost; To NewData
Print "February: |####> |####.##> ", KWUsage, Cost To NewData
The resulting output appears as follows:
OutPut—To the File
January: 4567 548.04 February: 589 70.68
Related CHR
Keywords P
TAB
FILE
OpenFile
Alias RND
Remarks The READ function must be the last statement in a line or on a line by
itself. Once READ executes, the controller automatically goes to the
next labeled line.
You must use OPEN to open the port before attempting to read the
input. Once the communications are complete, you must use CLOSE
to close the port.
You may open the comm port with OPEN in one program; then, read
input from the port with READ in another program.
Replace comm_port with any communications port or path to one
from which you want to read information.
Replace number_chars with the number of characters you expect
the function to read from the port. Any number or expression that
gives a number, up to 132.
Replace string_point with a string point that can contain the number
of characters the function is reading. This string is where the
characters read are stored. It can be up to 132 characters.
Note: string_point must be a string point (external to the program),
and not a string variable (local to the program).
Replace timeout (optional) with the length of time, in increments of 10
ms, if you want the controller to continue trying to read when it
detects no characters. If the controller does not read any characters
before the timeout period is over, it stops trying and goes to the next
line. If you do not set a timeout period, it is automatically 10 minutes.
Setting timeout to zero forces the controller to wait indefinitely or until
it reads characters. (See also the TIMEDOUT attribute in Appendix
B.)
Remarks Replace end_char (optional) with a single character that indicates the
continued end of the text being read. Indicated by an ASCII code (inside
quotation marks to make it a string), string point, or local string
variable. If you give more than one character, the control system
software uses only the first character.
Note: The control system software stops reading when either it has
read the number of characters in number_chars, the amount of time
in timeout has elapsed, or it has read the end_char. You can give all
three pieces of information and whichever occurs first ends the
reading process. For instance, if READ reads the end character
before it reads the number of characters, it stops based on the end
character.
Example 1 You can read input from a modem on Comm3 into a string called
ModemData as follows (you must also close the port afterwards):
Program File
Opening:
OpenResult = Open(Comm3)
Testing:
If OpenResult = Success then
Goto Reading
Else
Goto Failing
Endif
Reading:
Result = Read(Comm3, 132, ModemData, 100)
Printing:
If Comm3 TimedOut then Goto Closing
If Result = Success then
Print ModemData to InputFile
Else
Goto Closing
Endif
The timeout of 100 is 100 increments of 10 ms each, for a total of
1000 ms or 1 second.
Example 2 You can give a carriage return as the character that indicates the end
of the text to be read in a READ statement. Specify the carriage
return using the ASCII code for it, "|13". You must place the ASCII
code inside quotation marks to make it a string. (See "Formatting
Characters" under the PRINT keyword for a discussion of
the⏐symbol.)
Program File
Opening:
OpenResult = Open(Comm3)
Testing:
If OpenResult = Success then
Goto Reading
Else
Goto Failing
Endif
Reading:
Result = Read(Comm3, 132, ModemData, "|13")
Printing:
If Comm3 TimedOut then Goto Closing
If Result = Success then
Print ModemData to InputFile
Else
Goto Closing
Endif
Related CLOSE
Keywords OPEN
Modes Programs
Available
Purpose Retrieves data from (reads) a text file you opened earlier with
OpenFile. Retrieves the number of characters you indicate in the
chars_to_read argument.
Remarks In another case, you might have a comma between pieces of data
continued and then you can give the comma (in quotation marks) as the
end_character (see Example 3).
Once you use FILE to define a FILE variable and you open a file with
OpenFile, you can then read the text file with ReadFile.
Example 1 In this example, you first create a FILE variable called ZoneData with
FILE and then open a file under ZoneData with OpenFile. Then, read
from that text file with ReadFile.
Here, ReadFile reads the file opened under ZoneData and stores the
text it reads in DataLine. It reads 80 characters and stores them in the
DataLine string. After READING the file, the program prints the text
from DataLine to the screen.
ReadFile also stores the actual number of characters read in the local
numeric variable Chars.
Program File
File ZoneData
String 80 DataLine
Numeric Chars, OK
Line Opening
Set OK = OpenFile ("c:\text\zone.txt", ReadOnly, ZoneData)
If OK = Failure then
Print "File Open Failed"
Stop
Else
Goto Reading
Endif
Example 2 In this example, you first create a FILE variable called ZoneData with
FILE and you open a file under ZoneData with OpenFile. You then
read from that text file with ReadFile.
Here, ReadFile reads the file opened under ZoneData and stores the
text it reads in DataLine.
ReadFile reads until it reaches the carriage return in the file
(designated by the ASCII code |13 with quotation marks around it). It
then stores the actual number of characters retrieved in the local
numeric variable Chars. You still must give a number of characters to
read. (See "Formatting Characters" under the PRINT keyword for a
discussion of the⏐symbol.)
This program functions similar to the last example.
Example 3 This example first creates a FILE variable named ZoneData with FILE
and opens a file under ZoneData with OpenFile. Then it reads from
that text file with ReadFile.
Here, ReadFile reads the file opened under ZoneData and stores the
text it reads in DataLine.
The file to read contains data separated by commas, as follows;
Floor1, Room1, 75, 72, Floor1, Room2, 74, 72, Floor1, Room3,
Example 3 It reads until it reaches the comma (you designate the comma with
continues quotation marks around it). The program then stores the actual
number of characters retrieved in the local numeric variable Chars.
Even though you give an ending character, you must still give a
number of characters to read, in this case, 16.
Program File
File ZoneData
String 16 DataLine
Numeric Chars, OK
Line Opening
Set OK = OpenFile ("c:\text\zone.txt", ReadOnly, ZoneData)
If OK = Failure then
Print "File Open Failed"
Stop
Else
Goto Reading
Endif
Line Reading
OK = ReadFile (ZoneData, DataLine, 16, Chars, ",")
If OK = Failure then
Print "File Read Failed"
Goto Closing
Endif
If OK = Success then Goto Printing Else Goto Closing
Line Printing
Print DataLine
OK = PositionFile (ZoneData, 2, FileCurrent)
If OK = Failure then
Print "Positioning for Read Failed"
Goto Closing
Endif
Goto Reading
Line Closing
OK = CloseFile (ZoneData)
Stop
Example 3 This program functions similar to the way the last example did;
continued however, after each time the program reads the file and goes to the
Printing line, it sets the file to start reading two characters past where
it stopped. The two characters are the comma and the space after the
comma.
For more on how to set where to begin reading, see the PositionFile
keyword.
Related FILE
Keywords CloseFile
OpenFile
PositionFile
WriteFile
Products CyberStation
Supported
Modes Programs
Available
Remarks Replace Object_Property with the object name, including a full path
name, followed by a property name. The object Identifier and
Property Identifier are combined as one argument.
Replace Index with an array index. This is optional. It only applies to
an array-type BACnet property. The index is ignored whenever it is
not applicable.
The returned value is the object property value that has been read.
Example 2 Use ReadProperty to get the description of an analog point and place
it into a string Point.
StringPoint = ReadProperty(Net1\B4\AV1 Description)
Example 3 Use ReadProperty to get the value of an analog point using index 3.
Numerical Value ReadProperty(BACnetDevices\B4\B3\AV1, 3)
Format ReaderPower
Purpose Indicates whether or not any access card reader on an ACX series
controller has lost power.
You cannot set ReaderPower. You can print it from the command line
or use it in a program.
Example 1 To see if any card reader on an ACX series controller has lost power,
first connect to the controller, then print the ReaderPower system
variable from the command line as follows:
Command Line
Pr ReaderPower
The control system responds as follows if the reader has lost power:
True
Example 2 If you want to take a particular action for every time a card reader on
an ACX series controller loses power, then you would use
ReaderPower in a program as follows:
Command Line
If LobbyController ReaderPower is True then Run LobbyEmergency
Example Use Relinquish to relinquish the last command issued with priority 5
Relinquish(NET1\B4\AV, 5)
This statement places a NULL in the 5th entry.
Related WriteProperty
Keyworks ReadProperty
Format REPEAT
statement
statement
…
UNTIL number
Purpose Carries out the statements in the loop until the number is true.
Remarks Replace statement with any complete instruction that tells the
program what to do next or what action to take.
Replace number with any number or expression, including a date
and time or name that stand for one.
The statements within the loop always execute at least once before
the expression is evaluated.
CAUTION
! The scan action limits the number of statements that can execute
on one line to 5000. Be careful of exceeding the limit when using
REPEAT..UNTIL
Example If you want to print all the values in an array, you could do the following:
Program File
Numeric Count
Count = 1
Repeat
Print OutsideAir[Count]
Count = Count + 1
Until Count = OutsideAir Size
Related Break
Keyworks Continue
Products ACX series, BACnet series, CX series, DCX 250, i2 series, LCX
Supported series, SCX series, TCX series controllers, and CyberStation.
Modes Programs
Available
Example 1 You can use RETURN without an expression to return to the calling
program without passing parameters. You might do that with a
function that contains a series of actions to be carried out, as in the
SHUTDOWN function shown below:
Function File
Turn Off the Heat
Turn Off the Fan
Run Pump, Cooling
Return
In this case, RETURN returns you to the program that called the
SHUTDOWN function; it also returns a numeric 0 because you
supplied no arguments on the RETURN statement.
Example 1 The statement that calls SHUTDOWN in the calling program looks
continued like this:
Program File
ShutDown( )
Example 3 To create a function that returns the contents of the numeric variable
that calculates the circumference of a circle.
Program File
Arg[1] Diameter
Numeric Circumf
Circumf = 3.14159 * Diameter
Return (Circumf)
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Modes Programs
Available
Remarks Replace string with any text (word or words) or text expression.
If integer is greater than the length of the string then the controller
returns the entire string.
Alias LAST
Products BACnet series, CMX series, CX series, DCX 250, i2 series controllers
Supported (except i2885, i2887, i3885, i3887), and Cyberstation.
Replace linename with any line label created with the LINE
statement. (See the LINE keyword.) Must be in the program you
name. The label must be spelled here just as it is defined, except you
may interchange upper- and lowercase. The line label may also be
an integer.
Example 1 If you have a series of programs you want to start every Monday
morning, you can put the following into a MondayStartup program:
Program File
If Wkd = Monday then
Rotate 1 Blower, Pump, Heating
Rotate Lights to Beginning
Endif
Example 2 After the Heating program has been activated, it takes in the
temperature and rotates back to the beginning of the testing loop. To
loop back, you can rotate the program from within itself:
Program File
Rotate Heating to 1
Related LINE
Keywords RUN
STOP
Alias ROT
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Purpose Rounds number to the nearest integer and returns that value.
-4 -3 -2 -1 0 1 2 3 4
Products BACnet series, CMX series, CX series, DCX 250, i2 series controllers
Supported (except i2885, i2887, i3885, i3887), and Cyberstation.
Format 2: Sets the output or numeric point (or points) you specify to
the top of the scale defined for it (or ON). You can use this statement
in a program to start up a piece of equipment, or at the command line
to directly turn on a piece of equipment. Usually used with output
points.
Format 3: Sets a local variable inside a program to ON. Only use this
statement inside a program.
Format 4: When running a program, function, or report, displays the
results of all PRINT statements in the Message window of the
workstation.
Format 5: When running a program, function, or report, displays the
results of all PRINT statements in the Status Line of the workstation,
one statement at a time.
Format 6: When running a program, function, or report, sends the
results of all PRINT statements to a printer rather than displaying
them on the default port for that file.
Format 7: When running a program, function, or report, prints the
results of all PRINT statements into an ASCII file (you can give a full
path name if you would like). If the file already contains text, the
statement writes over (like taping over) the old text.
Remarks Replace file_list with any program, function, report, or list of them
(separated by commas).
Replace printer with a defined printer. You must enclose the name of
the printer in quotation marks.
Example 2 You can use RUN on the command line to start one or more pieces of
equipment:
Command Line
Run the Heater and the Fan
Example 4 From a Cyberstation, you can use Run to print a report on a shared
network printer named "LabPrinter" located on a server named
"EngServer":
Program File
Run DailyReport to "\\EngServer\LabPrinter"
Example 5 You can have all PRINT statements in ChillerProg print in the
Message window on your workstation, as follows:
Program File
Run ChillerProg to MessageWindow
Example 6 You can have a PRINT statement inside the Avg.Temp program print
a point value to the status line on your workstation, as follows:
Program File
Run Avg.Temp to StatusLine
Example 7 You can use RUN to save the results of running the humidity report in
a file named humid.Rpt:
Program File
Run HumidReport to "humid.Rpt"
This statement writes over any text that may already be in the
humid.Rpt file. If the humid.Rpt file does not exist, the CyberStation
automatically creates it.
Example 8 You can add the humidity report results to the end of a file named
Humid.Rpt without writing over the information already in the file
(such as from the previous version of the report) by adding WITH
APPEND to the RUN statement:
Program File
Run HumidReport to "Humid.RPT" with Append
Related LINE
Keywords ROTATE
STOP
Purpose Saves programs, points, or other items on the controller that you have
created. The controller saves these items in a file, called a dump file,
on a disk connected to the computer on the network. The computer
must be running a communications package with an ANSI terminal
emulator. You can later reload the file to put the information into the
controller.
Format 5: Saves all items from the CX controller you are on and all
Infinet controllers connected to it. Saves them with a “dictionary”
listing their names and types.
Purpose Format 6: Saves all items from all CX controllers and Infinet
continued controllers on the entire EnergyNet and all Infinets. Saves them with
a “dictionary”. This format combines Format 4 and Format 5.
Format 8: Saves the items you indicate and, while saving, sends
messages to the Messages window of the CX controller.
Replace list with one or more names of files, points, or other items on
the controller to be saved.
Replace typelist with one or more names of the type of file, point, or
other item on the controller you wish to save. The type of an item is
an input or output point, program or data file, or similar type.
Example 1 You can save all items on the entire controller by using ALL:
Command Window on Controller
Save ALL
Example 2 You can save particular items on the controller by specifying their
names in a list. In this example the items are points.
Command Line
Save VAV1.Fan, Room1.Temp, Room2.Temp
Example 3 You can save all items of a certain type on the connected controller,
such as all program files, by entering the type or a list of types:
Command Line
Save Program
This command line saves all files that are programs.
Command Line
Save Input
This command line saves all points that are inputs.
Command Line
Save Input, Output
This command line saves all points that are inputs and outputs.
Example 4 You can save all items from every controller on the entire EnergyNet
network, and store their types in a dictionary, by entering:
Command Line
Save EnergyNet
This command line saves all items with their types.
Example 5 You can save all items on the connected CX controller and all
controllers on Infinet, storing their types in a dictionary, by entering:
Command Line
Save Infinet
This command line saves all items with their types.
Example 6 You can save all items on the EnergyNet and on all controllers
on Infinet, storing their types in a dictionary, by entering:
Command Line
Save Site
This command line saves all items on all controllers with their types.
Example 7 You can save a dictionary of all items on the connected controller
and their types by entering:
Command Line
Save ALL -d
This command line saves a dictionary of names and types of all items
on the connected controller. An example of a dictionary of a Floor1
EnergyNet controller follows:
Dictionary : Floor1 : 1
’TYPE : NAME : HANDLE : DEFAULTMODE : BAUD
CommPort : Infinet1 : 6780 : Infinet :
Baud19200
CommPort : LBusNet : 6781 : Lbus :
Baud19200
CommPort : Term1 : 6782 : Terminal :
Baud9600
TYPE : NAME : HANDLE
Input : OutsideAirTemp : 7020
Output : OutsideAirDamper : 7030
User : dave : 7001
Program : AirVolumeCtrl : 7037
Example 8 While you are saving all items on the connected controller, you can
send messages about any errors that occur to a message window
while saving:
Command Line
Save ALL -m
Example 9 You can both save a dictionary and send messages to a message
window:
Command Line
Save Input, Output -d -m
Be sure not to use a comma between the -d and -m options.
Example 10 You can save a list that contains both particular items and item types:
Command Line
Save Chiller, Fan, Input, Output, Numeric
Example 11 You can save all of EnergyNet and send error messages to a
message window:
Command Line
Save EnergyNet -m
Related LOAD
Keywords
Alias DUMP
Purpose Format 1: Saves the object, site, controller, or Infinet controller to the
ASCII file you indicate. That file becomes a dump file.
Format 2: Saves only the “dictionary” of the objects you indicate. The
dictionary lists their names and their types.
Format 6: Checks to be sure any points that are being taken in from
another controller or sent out to another controller are valid when
saving objects to the database or to the dump file.
Replace controller with the name of the controller from which the
objects are to be saved (see Example 1).
Replace site with the name of the site where the controller is located
(see Example 1).
Remarks Replace file_string with a path to and name of the ASCII dump file
continued used to create and store the data. When you give the name, include a
.dmp extension. The file name must be in quotation marks. You can
also give a string point or local string variable that contains the name
of the file.
The dictionary ensures that when you load a controller later, the unit
knows about all objects. For instance if a program refers to a point on
another controller, the program’s controller knows about that point
through the dictionary.
If you use multiple options, be sure that you do not separate them
with commas.
You can use SAVE from the command line or in a program. If you use
it in a program, you must use SAVE on a line by itself. You do not
have to indicate that the program should then go to the next line,
because it automatically proceeds to the next line after completing the
save.
See Appendix C for a complete description of the contents of a dump
file.
Example 1 You can create an ASCII dump file called FLOOR1.DMP that contains
all objects on a controller called FLOOR1 from a site called
BUILDING1 as follows:
Command Line
SAVE \Building1 Floor1 TO "c:\floor1.dmp"
You must give the disk location (c:) and the full path to the dump file.
The dump file automatically includes all objects on the FLOOR1
controller.
Example 2 To create a dump file that contains only the dictionary of the FLOOR1
controller, you would use the -d option as follows:
Command Line
Save \Building1 Floor1 to "c:\floor1.dmp" -d
This command line creates a file of only the dictionary.
Example 3 Include the –b option to create a dump file of the Floor1 controller and
all its Infinet controllers as shown in the following command:
Command Line
Save \Building1 Floor1 to "c:\floor1.dmp" -b
This command line puts all of the data into the floor1.dmp file. The
dump file automatically includes all objects that exist on the controller
and on its Infinet controllers.
Example 4 To create a dump file of a controller that does not include all its
objects, you would include the -n option, as follows:
Command Line
Save \Building1 Floor1 to "c:\floor1.dmp" -n
Example 5 Since you want to overwrite any old data with the new data, you
would include the -o option to update an existing dump file for the
BoilerPanel as follows:
Command Line
Save \Building1 BoilerPanel to "c:\boiler.dmp" -o
Example 6 To create a dump file of a program called HEATING and have the
CyberStation verify that any points HEATING refers to on another
controller are valid, use the -v option as follows:
Command Line
Save \Building1 Floor2 Heating to "c:\heat.dmp" -v
Example 7 To create a dump file of a report you would give the name of the
report, as follows:
Command Line
Save \Building2 TempRept to "c:\temps.dmp"
Example 8 To update a dump file of the FLOOR1 controller, do not include any of
its objects except its Infinet controllers and be sure that you overwrite
any existing data in the dump file. You can do so by using several
options, as follows:
Command Line
Save \Building1 Floor1 to "c:\floor1.dmp" -b -n -o
Be sure not to use a comma between multiple options.
Example 9 You can also use SAVE within a program to create an automatic
backup of a controller in an ASCII dump file. The following program
would update the dump file for the FLOOR1 controller, including all of
its Infinet controllers, every month on the first of the month at 11:00
p.m.:
Program File
TestingDateTime:
If DayOfMonth Is 1 and TimeOfDay is > 23:00 then Goto SavingCntr
SavingCntr:
Save \Building1 Floor1 to "c:\floor1.dmp" -b -o
It is recommended to save the controller to the database before
creating the dump file.
Related LOAD
Keywords
Alias DUMP
Products CyberStation.
Supported
Format SCAN
Purpose Updates regularly and indicates the length in seconds of the last
interpreter scan interval. Accuracy is +/–. 01 second on the CX
series controllers and +/–. 025 second on the Infinet controllers.
Remarks You cannot change the value of this variable. The controller
automatically updates it.
Example To find the average number of seconds per scan, you would run the
following program once every scan after all other programs have
been run:
Program File
Numeric Tot.Sca.SCS, Scan.Count, Scan.Avg
Set Tot.Scan.SCS, Scan.Count, Scan.Avg = 0
Line Totaling
Tot.Scan.SCS = Tot.Scan.SCS + Scan
Scan.Count = Scan.Count + 1
If Tod = 2359 then
Scan.Avg = Tot.Scan.SCS/Scan.Count
Print "The average scan for ", Wkd, " is ", Scan.Avg, "sec"
Set Scan.Avg = 0
Set Scan.Count = 0
Set Tot.Scan.SCS = 0
Endif
For each scan, the controller adds the length of the scan (in seconds)
to the total seconds for the day. Also for each scan, the controller
adds 1 to the scan counter.
At the end of the day (2359, or 11:59 p.m.), the controller divides the
scan total by the number of scans to obtain the average length of the
scans that day. It then prints the average for the day.
Example The numeric variables used to calculate the average number of scans
continued per day are all set to zero at the end of each day, so that they start at
zero the next day.
Alias SC
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Remarks Replace string with any text (word or words) or text expression.
Replace search_string with any text (word or words) that you want to
search for in the string.
Format SECOND
Purpose Gives the exact number of seconds of the current minute, from 0
to 59.
Example If you want to take action every time 50 seconds of the minute have
gone by, you enter the following program statement:
Program File
If Second is greater than 50 then…
Related HOD
Keywords HOUR
MINUTE
TOD
Alias SEC
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Products CyberStation
Supported
Modes Programs
Available
Purpose Allows the user to write an email and send it out directly from within a
controller to one or more recipients.
Remarks Each argument for the SendEmail function must be of type string or a
string expression. All the arguments are optional. However, the
to_string, cc_string and bcc_string arguments cannot all be empty.
This means that there must be at least one recipient. Also, if there are
multiple recipients in any of these strings, then email addresses
should be separated with commas or semicolons.
Argument Definition
To A string containing the email address of the recipient(s).
Subject A string containing the subject of the email.
A string containing the body of the email. An array name is
Message accepted as an argument. Each array entry represents a line in
a multi-line message.
Cc A string containing the copy to the email address(es).
Bcc A string containing the blind copy to the email address(es).
Signature A string containing the signature.
The function call must be on a labeled line by itself. After calling the
SendEmail function, the program automatically moves to the next
labeled line. The line immediately following the SendEmail line must
test for the returned value; otherwise, the control system software
considers that a SendEmail error.
CAUTION
! If the size of the email message is greater than 2k when it is sent
from the controller, it degrades the performance of the scanner. Be
careful to limit the size of your message to ensure the most
effective scanner performance.
Modes Programs
Available
Remarks Replace namelist with any defined name or list of names. The name
or names can be any of these:
• Point (any type).
• Local variable; either numeric, string, or datetime.
The type of name must match the type of number. Replace number
with any number or expression, including a string or date and time, or
a name that stands for either of those.
Example 1 At any time in a program, you may want to set the value of a variable
or array of variables. You use SET with the word TO:
Program File
Set AreaValue to Height Times Width
You can also use ADJUST, CHANGE, or MODIFY with TO. With
ADJUST and CHANGE, the TO is required:
Adjust Valve to Open
Change Space.SP to 72
Modify Space.SP to 72
You cannot use the equals sign with ADJUST or CHANGE, but you
can use it with MODIFY.
Example 2 You can set a variable using SET and an equals sign as in the
example below:
Program File
Set KWAVG = Average (KW)
Instead of SET, you can use LET with the equals sign, as follows:
Let DWAVG = Average (KW)
You cannot use the word TO with LET. Neither the word SET nor the
word LET is required with the equals sign, so you can set the same
variable as follows:
KWAVG = Average (KW)
Example 4 You can set several points and variables to a particular value:
Program File
Set KWAVG, OATAVG, HWAVG, CHWAVG = 0
Example 5 You can set disabled points only from the command line. (To set
disabled points in a testing function, you must run the function from
the command line.) The example disables some input points, then
sets them to test values:
Command Line
Disable OAT, HWT, CHWT
Set OAT = 40
Set HWT = 120
Set CHWT = 50
Related MOVE
Keywords
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Purpose Sets the DCX 250 Display Unit screen to a color (blue or white) or
sets the display to draw a polygon or series of lines (polylines).
Returns SUCCESS or FAILURE.
Remarks Set the display before you begin drawing. The display remains as
you set it until you set it again.
You must set the display to FILL to draw a polygon rather than
drawing lines with LINEPOINT. You must set it to NOFILL to draw
lines with LINEPOINT. (See LINEPOINT.)
The DCX 250 screen settings you can alter with SETDISPLAY are as
follows:
Colors:
• BLUE
• WHITE
Drawing:
• FILL
• NOFILL
Before you begin drawing a polyline, you must set the display to
NOFILL to ensure you do not draw a polygon instead.
Remarks Before you begin drawing a polygon, you must set the display to FILL
continued to ensure you do not draw a polyline instead.
Related BEGINPOLYLINE
Keywords DRAWRECTANGLE
DRAWLINE
Modes Programs
Available
Purpose Runs one or more programs named by the string or strings. Or opens
one or more files, each named as a string, by running their
corresponding application(s).
Remarks The string_list can be any single string expression or list of string
expressions, comma separated, containing application, or file names.
It can also be one or more string expressions that give a program
name.
The string or strings must contain programs with the .exe suffix;
however, for applications you may omit the .exe suffix (if it is part of
the application name).
Note: If the path to the command you are using or the program you
are running is not in your config.sys file, autoexec.bat file, or current
directory, you must give the full path when you give the command.
The full path always includes the disk (or partition) on which the
program is stored.
Example 2 Suppose you want to run a program that is on the C disk drive of the
workstation. If the program name is stored in a string called
FileNameString, you can run it as follows:
Command Line
Shell "c:\";FileNameString
A program employing this command line as a statement could
execute a different program on disk drive C each time it runs.
Example 5 You can open a file without specifying the application name.
Shell “C:\Document1.doc”
Shell “C:\Report1.txt”
Shell “C:\WebPage1.htm”
You do not need to know the actual application name in order to open
the given file. The workstation software uses the application that is
associated the type of file you want to open.
For example, for an HTML web page, your default web browser
application is automatically invoked.
Products CyberStation
Supported
Remarks Replace objectlist with any single object or a list of objects (with
commas between them) defined in the control system software.
Objects include sites, controllers, workstations, Infinet controllers,
points, programs, functions, reports, data files, panels, and so on.
The objects may have been defined on either a CX series controller
or a CyberStation.
Reports and panels both open in Run mode. All files other than
reports open and display their Andover Continuum Plain English
statements.
Sites and controllers open to the window in which you defined them.
(Using SHOW gives the same result as selecting File, then Open from
the Menu bar.)
Replace logview_list with a LogView that you have saved for the
Alarm Log, Event Log, Error Log, or Activity Log. May not be more
than one LogView for the same log.
You can open more than one LogView at a time, as long as they are
not both for the same log; for instance, you cannot open two different
LogViews of the Activity Log.
Products CyberStation.
Supported
Replace string with a text string containing the full file path of the
HTML file. This also requires that an HTML browser be installed on
the CyberStation.
Example 3 <TR>
<TD align=middle bgColor=#c0c0c0><FONT color=#000080
continued
size=4><STRONG>Name</STRONG></FONT></TD>
<TD align=middle bgColor=#c0c0c0><FONT color=#000080
size=4><STRONG>Value</STRONG></FONT></TD>
<TD align=middle bgColor=#c0c0c0><FONT color=#000080
size=4><STRONG>Description</STRONG></FONT></TD>
<TR>
<TD>{|list|} </TD></TR>
<TR>
<TD><FONT size=2><STRONG>{|Name|}</STRONG></FONT></TD>
<TD align=right><FONT size=2><STRONG>{|Value|}</STRONG></FONT></TD>
<TD align=right><FONT size=2><STRONG>{|Description|}</STRONG></FONT></TD>
<TR>
<TD>{|endlist|} </TD></TR></TABLE>
<P align=center></STRONG>
<A title=Schneider-Electric href ="http://www.Schneider-Electric.com" target=BBC name="View
Schneider-Electric" >Schneider-Electric Website</A>
</P
<P> </P>
<P> </P>
</BODY>
</HTML>
The template based on the source HTML above appears as follows:
The template shows a title ("Output Points"), followed by the current date.
Below that is the list of points, including names, values and descriptions, and
finally a reference to a website. Note the delimiters {| and |} around the
Continuum tags such as list, endlist, object name (e.g. Date), and attribute
names (e.g. Name, Value and Description)
Related SHOW
Keywords SHELL
Products CyberStation.
Supported
Alias SINE
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers (except
i2885,i2887,i3885,i3887), and CyberStation.
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Remarks Replace numeric_list with one or more numbers or names that stand
for numbers, separated by commas.
Items in the list must all be either numbers or variables that contain
numbers.
If any of the items in the list in Format 1 is an array or a log but does
not indicate an element number, the controller retrieves the current
value of the point and treats it like any other single item in the list.
Example 2 Since you know a certain temperature varies, you have been storing
readings in an array called VarTmp. You then use the
StandardDeviation function on that array, as follows:
Program File
Variation = StandardDeviation (VarTmp)
Example 3 You have been logging temperatures in a log for several hours. You
can find the standard deviation of them as follows:
Program File
Deviance = StandardDeviation (TempLog)
Example 4 You can find the standard deviation of several temperatures in a list,
including the current value of TempLog, as follows:
Program File
AvgDev = StandardDeviation (Tmp1, Tmp2, TempLog)
In this instance, TempLog is interpreted as the current value of
TempLog.
Alias SD
Products BACnet series, CMX series, CX series, DCX 250, i2 series controllers
Supported (except i2885,i2887,i3885,i3887), and CyberStation.
Format STATUSnumber
Purpose Turns on the corresponding status light on the front door of the CX
9200 series controller if you set it to ON and turns off the status light if
you set it to OFF. Label the numbered status light on the controller
with the corresponding event, program, or similar item the light
indicates.
Remarks Replace number with number or expression that gives the number of
the status light on the front door of the CX 9201 controller. The
number or expression can be up to 8. If number is greater than the
highest status light number, the controller does not recognize the
word.
The status lights on the CX 9201 controller are numbered 1 through
8.
You may not put a space between STATUS and the number.
You cannot pulse a status light ON for a particular number of
seconds—it must be ON or OFF. The light remains ON or OFF until
you change it in a program or from the command line.
Example Suppose you labeled the fourth status light on the CX 9201 controller
“Chiller Alarm Active,” so you could set it when the alarm occurs. After
the alarm occurs, to set the light, enter this statement in your
program:
Program File
IF ChillerAlarm4 is On then Set STATUS4 to On
Products CX series
Supported
Purpose Format 1: At the command line level, halts the executing program (or
programs) you specify at current line.
Format 2: Sets the point (or points) to bottom of its defined scale. It
then turns the equipment off, controlling the equipment through the
point. You can use this statement in a program to turn off a piece of
equipment, or at the command line to directly turn off a piece of
equipment.
Replace point_list with any defined output point or list of points. The
statement is not designed for other types of points, but you can stop
an input or numeric point.
Example 2 You can use STOP on the command line to stop one or more pieces
of equipment:
Command Line
Stop the Heater and the Fan
Related ROTATE
Keywords RUN
Alias CLOSE
SHUT
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Purpose Creates and defines one or more names as local string variables.
You can define the variables inside a program for use only in that
particular program. You can specify the length of the string of
characters with the string_length.
Note: STRING also defines fields inside a data file. See the STRING
data file statement for format and usage of STRING in data files.
Replace namelist with the name of the string (text) variable you are
defining, or a series of string variables separated by commas.
You must define all local string variables at the top of your program.
Example 1 To set a string variable, you must first define it using STRING. To
define a single string variable of the default length, enter this program
line:
Program File
String FileName
Example 2 To have a program read information from a file containing text, create
a series of string variables, like those below, to contain each piece of
text information. You can create them all in the same program line:
Program File
String 20 LName, LogOn, PWord, Room, Terminal
The length of each string is 20. To give them different lengths, you
must define (declare) each one separately.
Example 3 To create a string array of variables, you must first define the array.
The string called Pump below is an eight-character string with 20
variables in the array (Pump [1], Pump [2], Pump [3], and so on).
Program File
String 8 Pump[20]
Pump[6] = "HeatPump"
Example 4 You can create several arrays of string variables and single string
variables all in one program line:
Program File
String Pump[6], Blower[8], HeaterNM, FanName
Related DATETIME
Keywords NUMERIC
STRINGFILL
Products ACX series, BACnet series (except b3885, b3887), CX series, DCX
Supported 250, i2 series (except i2885, i2887) controllers, and CyberStation.
Modes Programs
Available
Remarks Replace number with any number or expression. Gives the length of
the string.
Example 1 Suppose you want to print a series of 60 asterisks across the top of a
report. You would use STRINGFILL to print them by giving it the
number 60 for the number of asterisks, and the number 42 which is
the ASCII code for the asterisk, as follows:
Program File
Print stringfill (60, 42)
Example 2 You can draw dashed horizontal lines in a report using STRINGFILL
by giving it the number of spaces you want the line to print across
(60) and the ASCII code for a dash (45):
Program File
Print stringfill (60, 45)
Example 3 Suppose you want to design a graph to show the peak kilowatt
demand for each day in the last week. You can create a bar graph by
filling the appropriate number of spaces with, for instance, asterisks.
The following program sets up such a graph.
Inside the FOR..NEXT loop, the program first prints the short name of
the weekday, based on the number for the day (1 for SUN) using a
customized function called ST. Next, the program prints a plus sign
after the name.
STRINGFILL then uses two values to print the kilowatt demand for
that day:
• Kilowatt demand for the day from the KWD array (KWD [1]
= Sunday's kilowatt demand, KWD [2] = Monday's kilowatt
demand, and KWD [3] = Tuesday's kilowatt demand, and
so on.)
• ASCII code for the asterisk (42).
To see how STRINGFILL uses these two values, take a look at
Sunday in the graph the program produces, shown below.
Program File Output
Peak KW Demand for Week
SUN + * * * * * *
MON + * * * * * * * * * *
TUE + * * * * * * * *
WED + * * * * * * * * *
THU + * * * * * * *
FRI + * * * * * * * *
SAT + * * *
Example 3
continued +----+----+----+----+----+
0 500 1000 1500 2000 2500
First, the program retrieves Sunday's kilowatt demand from the KWD
array. Sunday's kilowatt demand is 600 Kw. The program divides the
demand by 100, giving 6. So STRINGFILL prints six asterisks for
Sunday.
The program then retrieves Monday's kilowatt demand from the KWD
array. Monday's kilowatt demand is 1000 Kw. The program divides
the demand by 100, giving 10. So STRINGFILL prints 10 asterisks for
Monday.
The program continues to carry out the same process for each day of
the week. When it finishes printing Saturday's kilowatt demand, it
prints the scale for the graph, displaying 0 to 2500 Kw.
Related STRING
Keywords
Products BACnet series, CMX series, CX series, DCX 250, i2 series controllers
Supported (except i2885, i2887, i3885, i3887), and CyberStation.
Format STRTODATE(date_time)
Purpose Returns a date and time that corresponds to the particular date and
time you specify in the date_time. The controller has a unique
number for each moment in time it can understand.
Remarks The date_time is any actual date and time in a string (surrounded by
quotation marks) or the name of a string that has been set to a valid
date/time string.
To receive the date and time from STRTODATE, you must enter both
the date and the time in one continuous input line. If you prefer, you
may position the time before the date on that line.
You may set up the date in any reasonably interpretable format—
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 these punctuation characters.
If you prefer to put the day first, you can, as long as the day is
obviously a day. Two ways that a day cannot be misinterpreted as a
month are:
• Spell the month as a word so that the day is the only other
number so low.
• Use numbers for both month and day only if the day is greater
than 12, since any day between 1 and 12 could be interpreted as
a month.
The month can be:
JAN[UARY] JUL[Y]
FEB[RUARY] AUG[UST]
MAR[CH] SEP[TEMBER]
APR[IL] OCT[OBER]
MAY NOV[EMBER]
JUN[E] DEC[EMBER]
Remarks YEAR
continued
You may enter the year as a two- or four-digit year after 1988.
WEEKDAY
Since the controller already knows the day of the week that
corresponds to each date, you don't need the day. You can,
however, place the day of the week after the date; it must be either
the three-letter abbreviation or the completely spelled-out name of the
day.
TIME
You enter the time as the one- or two-digit hour and one- or two-digit
minute separated by a colon. You can type another colon and follow
it with seconds if you would like.
You can enter the time in 24-hour time or use regular time with AM or
PM after it. The controller translates that time into the 24-hour clock.
For instance, you can enter 3:00 PM and the controller automatically
translates it to 15:00:00.
Alias STRTOTIME
Products BACnet series, CMX series, CX series, DCX 250, i2 series controllers
Supported (except i2885, i2887, i3885, i3887), and CyberStation.
Format STRTONUM(string)
Remarks The string is any number in ASCII form (in quotation marks) or string
expression that stands for a number in text form. If string is not a
valid numeral or series of numerals, STRTONUM fails. If STRTONUM
fails, the program either goes to LINE E (see LINE keyword) or
disables.
Once a number is in a numeric variable, it can be used in
mathematical expressions and operations.
Example If you receive string input from the keyboard, but you want it to be
numeric so you can add it to another number, use STRTONUM. The
following program adds the string (in quotation marks) that contains
78.5 to the number 92.8:
Program File
Numeric Trans
Trans = StrToNum("78.5") + 92.8
Print Trans
Output
171.3
Alias VAL
Products BACnet series, CMX series, CX series, DCX 250, i2 series controllers
Supported (except i2885, i2887, i3885, i3887), and CyberStation.
Format SUCCESS
Related FAILURE
Keywords
Format 2: Returns the sum of the items in the array you name.
Format 3: Returns the sum of the items in the log you name.
Remarks Replace numeric_list with one or more numbers or names that stand
for numbers, separated by commas.
Items in the list must all be either numbers or variables that contain
numbers.
Example 1 To sum several timers, you place them directly in the SUM function
statement. You list them in parentheses after SUM, as follows:
Program File
Total.Timers = Sum (Timer1, Timer2, Timer3, Timer4)
Example 2 You have been storing calculated values in an array called PartTime.
You then use the sum on that array, as follows:
Program File
Total Time = Sum (PartTime)
Example 3 You have been logging temperatures in a log for several hours. To
find the sum of them, you find the sum of that log, as follows:
Program File
HourlyTot = Sum (TempLog)
Example 4 You find the sum of several temperatures in a list, including the
current value of TempLog, as follows:
Program File
HourlyAvg = Sum (Tmp801, Tmp802, TempLog)
In this instance, TempLog is interpreted as the current value of
TempLog.
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format SystemStatus
Purpose Indicates the current access control mode of the ACX and CX series
controllers.
You cannot set the SystemStatus. The control system software sets it
for you automatically. You can print SystemStatus from the command
line or use it in a program.
You must connect to the access controller before you can print or use
the SystemStatus. Or you can access SystemStatus using the full
path to it.
Example 2 If you want to take a particular action each time the Door1 700 series
controller has lost communication with the database, you can type the
following in a program:
Command Line
If Door1 SystemStatus = NoComm or Door1 SystemStatus =
NoDataBase then
Run InterimProcedure
Endif
Format TAB(number)
Related PRINT
Keywords
Products BACnet series, CMX series, CX series, DCX 250, i2 series controllers
Supported (except i2885, i2887, i3885, i3887), and CyberStation.
Modes Programs
Available
Alias TANGENT
Products BACnet series, CMX series, CX series, DCX 250, i2 series controllers
Supported (except i2885, i2887, i3885, i3887), and CyberStation.
Format TD
Purpose Contains the number of days (Time in Days) that have elapsed since
the program has been on the current line. The total is stored as an
IEEE floating point number.
Example In order to have a lead pump run for 3 days and then turn on the lag
pump, you would check to see if the pump has been running for 3
days after you activate it:
Program File
Line FirstPump
Turn On LeadPump
If Td = 3 then Goto SwitchPump
Line SwitchPump
If LeadPump = Pump1 then
Set LeadPump = Pump2
Else
Set LeadPump = Pump1
Endif
The controller measures 3 days starting the instant that the program
is on the line making the request for elapsed time.
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Modes Programs
Available
Format TH
Purpose Contains the number of hours (Time in Hours) that have elapsed
since the program has been on the current line. The total is stored as
an IEEE floating point number.
Example To have the lead fan run 1 hour and then run the lag fan, check to
see if the fan has been running for 1 hour after you activate it:
Program File
Line FirstFan
Turn On LeadFan
If Th = 1 then Goto SwitchFan
Line SwitchFan
If LeadFan = Fan1 then
Set LeadFan = Fan2
Else
Set LeadFan = Fan1
Endif
The controller measures 1 hour starting the instant that the program is
on the line making the request for elapsed time.
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Modes Programs
Available
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Purpose Retrieves the piece of time (hour, minute, second) or the piece of the
date (weekday, month, day of the month, year, day of the year) from
a variable or point.
Related DATE
Keywords DATETIME
HOUR
MINUTE
SECOND
HOD
TOD
MONTH
YEAR
DAYOFMONTH
DAYOFYEAR
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Alias MULTIPLIED BY
MULT
*
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format TM
Purpose Contains the number of minutes (Time in Minutes) that have elapsed
since the program has been on the current line. The total is stored as
an IEEE floating point number.
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Modes Programs
Available
Format TOD
Purpose Gives the time of the day, from 12:00 a.m. (midnight) to 11:59 p.m.
Also allows you to compare the time of day to 0 (midnight) to 2359,
where 2359 is the equivalent of 23:59 on the 24-hour clock.
Remarks The time of day is the time from the controller clock. You cannot
change TOD. The controller automatically updates it.
Example 1 To check to see if the time of day is past 5:00 a.m., enter one of the
following:
Program File
If Tod is greater than 5:00 am then…
If you do not give a.m. or p.m., the controller assumes you mean a.m.
You must include the colon with “am” or “pm.” Never use periods
after the A or M, or P or M.
Example 2 When you print out TOD, as in the following example, you always
receive the decimal representation of the time of day:
Program File
Print Tod
The time appears as follows:
20.000
(that means 8:00:00 pm)
Related HOD
Keywords HOUR
MINUTE
Alias TIMEOFDAY
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format TOUCHEDCELL
Purpose Gives the number from 1 to 64 of the first block (cell) that an operator
touched on the DCX 250 Display Unit screen during the last scan. If
the operator touches more than one cell, the lowest (top leftmost) cell
number is the value.
Remarks The cells on the 250 screen are as shown on Figure 8-22.
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
Figure 8-22. The DCX 250 Display Unit screen touch cells
The operator must press the cell for at least 100 ms. If the operator
presses the cell continuously, the TOUCHEDCELL value updates
every second.
For instance, on the graphic shown in Figure 8-23, the first button is
on CELL 19, the second on CELL 35, and the third on CELL 51.
Room1 Fan
Status
Room2 Fan
Status
Room3 Fan
Status
Example 2 You determine whether or not an operator has pressed any button by
determining that TOUCHEDCELL has any value other than zero.
Program File
If TOUCHEDCELL then Run GraphDisplay
Modes Programs
Available
Purpose Drops the fractional part of number and returns the integer.
Remarks The number is any number or expression. See the ROUND keyword
for a comparison of all rounding functions
Alias TRUNC
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format TS
Example To allow for a 90-second valve stroke time, see if 90 seconds have
elapsed since you opened the valve:
Program File
Line WaitForValve
Turn On Valve
If Ts >= 90 then Goto StartHWPump
Line StartHWPump
Turn On HWPump
The controller measures 90 seconds starting the instant that the
program is on the line making the request for elapsed time.
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Modes Programs
Available
Purpose Sets the name or names to the top of the defined range for the point if
ON and to bottom of the range if OFF.
Remarks The point_list is one or more defined output or numeric points; the
statement is not designed for other types of points. All output points
used with TURN must have a range with its top and bottom defined.
Example 1 Suppose you want to turn on the fan and the pump. You can turn
both on in one program statement:
Program File
Turn On then Fan and the Pump
Example 2 You can place the word ON or OFF after the name of the point:
Program File
Turn the Pump Off
Example 3 You can also place ON or OFF before the name of the point:
Program File
Turn Off the Pump
Related SET
Keywords
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format UniquePin
Purpose Indicates whether or not each person who has access must have a
unique personal identification number (PIN).
Remarks You cannot set the UniquePIN system variable, but you can print or
access it from the command line or use it in a program. Its value is
always TRUE or FALSE.
You must connect to the applicable controller before you can access
UniquePIN from the command line. You can also access UniquePIN
using the full path.
Example 1 To find out whether or not the personal identification numbers (PINs)
on the CX controller are each unique, you can print UniquePIN from
the command line as follows:
Command Line
Pr AccessController UniquePIN
The response will be either TRUE or FALSE.
Products ACX series controllers, CX series controllers (except 9500), and CMX
Supported series controllers.
CAUTION
! Update momentarily changes the port to RAW mode,
while it is dialing. However, while the port is in Raw mode,
you cannot send it READ or PRINT statements. READ
and PRINT both return FAILURE and they drop any
characters you are attempting to send down the port.
Remarks If the first character in the phone number string is not an ‘A’ or ‘a’, the
continued update command will issue the standard “ATDT” Command to the
modem and then the phone number to be dialed.
The phone number string can also contain valid AT Commands such
as
“ATD,T,, 978-470-0555”.
If the first character in the phone number is an ‘A’ or ‘a’, the UpDate
keyword assumes that the phone number string contains valid AT
commands prior to the phone number to command the modem to
dial.
This feature is useful for 3rd party modems or Cellular Modems that
require something other than “ATDT” to command dialing.
Example You can use UpDate to update alarms and events. The following
program is an example of using UpDate to update alarms and events
at an interval. It uses a FallThru program to force the controller to
"Push" its updates after a given time interval.
AltUpdate:
UpdateStatus = Update ("acc:acc", "236", comm3, 4)
‘ Using alternate AT Command
‘ Issue the ATD command, then pause, issue the T command
and
‘ pause again…
‘UpdateStatus = Update ("acc:acc", "ATD,T,, 236"', comm3, 4)
CheckAltUpdate:
If UpdateStatus = Success then Goto EndProg
FailedAttempt = FailedAttempt + 1
If FailedAttempt < 4 then Goto PushUdates
EndProg:
Stop
Example For example, if the controller calls the workstation and the workstation
continued is off line (busy), then the controller waits 4 minutes until the line is
dropped. If the workstation comes on-line within the 4 minutes, then
the UpDate will take effect.
Related InitModem
Keywords
Purpose Begins updating an extended log for the point, group of points, or
controller you give it. If you are not sure what an extended log is, refer
to the Continuum CyberStation Configurator's Guide for further
information.
Remarks Replace object with the name or full path and name of a point that is
set up as an extended log, a group (where some group members are
extended logs), or a controller (with some points that are extended
logs). When you give a controller, you must give the full path to the
controller. Can also be a local OBJECT variable.
You update the extended log when you expect the log is full and
ready to store values long-term, in the extended log. Since you do not
know this information for every log you have set up, you can let the
software retrieve the information from the database.
Remarks (You can, however, set the value of the datetime variable yourself, if
continued you prefer.)
You can run UpdateExtLog on only one extended log at a time per
workstation. If you attempt to update more than one extended log at a
time, the software considers it an error and displays that error in the
Error Log of the database.
The maximum number of entries allowed in an extended log is the
number of entries you would have if you logged the point value every
half-hour for one year—up to 17,520 entries. This number remains
the same, regardless of the interval. So, if you log the point every 15
minutes (twice as often), you can store up to 6 month’s (half as long a
period) of extended log entries for that point.
Example 1 Suppose you want to update an extended log called TEMP1 on the
FLOOR1 controller. You would use the UpdateExtLog statement as
shown in the following program:
Program File
Numeric Result
Datetime UpdateTimer
Updating:
Result = UpdateExtLog (Building3 Floor1 Temp1, UpdateTimer)
Checking:
If Result = Success then
Goto WaitUntilLogTime
Else
Print "Could not update extended log for Floor1 Temp1"
Stop
Endif
WaitUntilLogTime:
If Time > = UpdateTimer then
Goto Updating
Else
Goto WaitUntilLogTime
Endif
Example 1 This statement tells the software to update the TEMP1. First, the
continued statement retrieves the correct UpdateTimer value from the extended
log setup information. Then, when the current time is 60 seconds
greater than the UpdateTimer, the software retrieves values from the
regular log and stores them in the extended log on the workstation.
This way, old values are stored. The statement updates the log once,
and sets the UpdateTimer local DATETIME variable to the next time
the log should update.
Example 2 Suppose you want to update a group of extended logs that are all
members of a group called TempPoints. You can use the
UpdateExtLog statement as shown in the following example:
Program File
Datetime UpdateTimer
Updating:
Result = UpdateExtLog (TempPoints, UpdateTimer)
Checking:
If Result = Success then
Goto WaitUntilLogTime
Else
Print "Could not update extended logs in TempPoints group"
Stop
Endif
WaitUntilLogTime:
If Time > = UpdateTimer then
Goto Updating
Else
Goto WaitUntilLogTime
Endif
This statement tells the software to update all of the extended logs
in the TempPoints group. First, the statement retrieves the correct
Example 2 UpdateTimer value from the extended log setup information. Then,
continued when the current time is 60 seconds greater than the UpdateTimer,
the software retrieves values from the regular log and stores them in
the extended log on the workstation. This way, the software stores
the old log values. The statement updates each log once, and sets
the UpdateTimer local DATETIME variable to the next time the group
of extended logs should update.
In this case, the group is under the root; however, if the group is not
under the root, you must give the full path to the group.
Example 3 If you want to update all of the extended logs on the Floor4 controller,
use the UpdateExtLog statement as shown in the following example:
Program File
Datetime UpdateTimer
Updating:
Result = UpdateExtLog (Building3 Floor4, UpdateTimer)
Checking:
If Result = Success then
Goto WaitUntilLogTime
Else
Print "Could not update extended logs in TempPoints group"
Stop
Endif
WaitUntilLogTime:
If Time > = UpdateTimer then
Goto Updating
Else
Goto WaitUntilLogTime
Endif
This statement tells the software to update all of the extended logs
in the Floor4 controller at the Building3 site. Remember that you must
give the full path to the controller.
Example 3 First, the statement retrieves the correct UpdateTimer value from the
continued extended log setup information. Then, when the current time is 60
seconds greater than the UpdateTimer, the software retrieves values
from the regular log and stores them in the extended log on the
workstation. This way, the software stores the old log values. The
statement updates each log once, and sets the UpdateTimer local
DATETIME variable to the next time the extended logs on the
controller should update.
Example 4 If you want to update a single extended log from the Command line,
you can enter a simplified UpdateExtLog statement, with no datetime,
as follows:
Command Line
UpdateExtLog (Building3 Floor4 Temp1)
Example 5 If you want to update a group of extended logs from the Command
line, you can enter a simplified UpdateExtLog statement, with no
datetime, as follows:
Command Line
UpdateExtLog (Building3 TempsGroup)
Example 6 If you want to update all the extended logs on a single controller from
the Command line, you can enter a simplified UpdateExtLog
statement, with no datetime, as follows:
Command Line
UpdateExtLog (Building3 Floor4)
Example 7 To update only the input points on a controller, you can open a list of
input points using OpenList (see OpenList keyword) and then get
each point in the list. By testing the ExtLogSize attribute of each
point, you can determine whether or not the point is an extended log.
If it is an extended log, you can then update it as you did in the earlier
examples.
Example 7 Below is a fallthru program that opens a list of points on the Floor4
continued controller and updates each extended log in the list. In this case, you
should not use a datetime point or variable with the UpdateExtLog
statement:
Program File
Object AnExtLog
Numeric OK, Result
OpeningLogs:
OK = OpenList ("Input", AnExtLog, Building3 Floor4)
Testing:
If OK = Success then Goto GettingLog Else Goto ClosingLogs
GettingLog:
If GetObject (AnExtLog) is not Success then
Goto ClosingLogs
Else
If AnExtLog ExtLogSize > 0 then
Goto Updating
Else
Goto GettingLog
Endif
Endif
Updating:
Result = UpdateExtLog (Building3 Floor4)
Checking:
If Result = Success then
Goto GettingLog
Else
Print "Could not update extended logs"
Goto ClosingLogs
Endif
ClosingLogs:
OK = CloseList (AnExtLog)
Goto Ending
Ending:
If Ok = Failure then Print "Cannot Close List"
Stop
Example 7 This statement tells the software to update all of the extended logs
continued in the Floor4 controller at the Building3 site. Remember, you must
give the full path to the controller.
Related DeleteExtLog
Keywords
Products CyberStation
Supported
Format VERSION
Remarks You cannot change the value of VERSION. The control system
software updates it automatically when you update your control
system software.
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Format WEEKDAY
Example 1 You can spell out names for printing or for comparing to an actual
day:
Program File
If Weekday is Saturday then Print Weekday
Output
Saturday
Example 2 You can use the short name or the constants 1 through 7 for
comparing the weekday in an IF statement:
Program File
If Weekday > Sun or Weekday < 7 then…
Alias WKD
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Purpose Carries out the instructions in the statements within the loop over and
over again as long as the given number is true.
Remarks Replace statement with any complete instruction that tells the
program what to do next or what action to take.
One event within the loop must occur to satisfy the number.
CAUTION
! The scan action limits the number of statements
that can execute on one line to 5000. Be careful
of exceeding the limit when using WHILE.
Related IS…
Keywords BREAK
CONTINUE
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Modes Programs
Available
Format WHITE
Purpose Sets the graphics on the DCX 250 Display Unit screen to white when
you use it with SETDISPLAY.
Example You set the color of the graphics on the DCX 250 Display Unit, as
follows:
Program File
Set Display (WHITE)
Related BLUE
Keywords SETDISPLAY
Modes Programs
Available
Purpose Puts data into (writes to) a text file you opened earlier with
OPENFILE.
Example 1 Suppose you want to write a record to a text file. After you define the
FILE variable name and open the file, you can write to it with
WriteFile.
Example 1 In the example below, the WriteFile statement gives the FILE variable
continued name, the name of the string that contains the record (RecordLine),
the number of characters in the string (80), and a numeric variable to
receive the actual number of characters written (Chars).
If the entire process (OpenFile, WriteFile, and CloseFile) is
successful, the program stops at the end of the Closing line. If any
failures occur, the control system software runs the Failing line.
Once you have opened the file and taken action on it, you must close
the file with CloseFile using the name you created with FILE.
Program File
File ZoneData
String 80 RecordLine
Numeric Chars, OK
Line Opening
Set OK = OpenFile ("c:\text\zone.txt", WriteOnly, ZoneData)
If OK = Failure then Goto Failing Else Goto Writing
Line Writing
RecordLine = GetRecord() 'custom function to build record
OK = WriteFile(ZoneData, RecordLine, 80, Chars)
If OK = Failure then Goto Failing Else Goto Closing
Line Closing
OK = CloseFile(ZoneData)
If OK = Failure then Goto Failing
Print "File operation succeeded"
Stop
Line Failing
Print "File operation failed"
Example 2 To read multiple records from one text file and write them to another,
use ReadFile, then WriteFile. Because you have two files, you would
create two FILE variable names. Call the file that the control system
software should retrieve data from, ZoneData, and call the one it
should put data into, SetPTFile.
Next, test for ReadFile = EOF because you want the control system
software to read records until it reaches the end of the file. The
control system software should read 16 characters or until a carriage
return indicates the end of the record. (You can also use PositionFile
to set the position to begin the action⎯ first for reading, then for
writing.)
Example 2 For each record (16 characters long), you want WriteFile to put the
continued record in the new file, called SetPTFile, as follows:
Program File
WriteFile (SetPTFile, RecordLine, 16, CharsWritten)
Below is a complete program that copies the text from one file to
another:
Program File
File ZoneData, SetPTFile
String 80 DataLine, RecordLine, Result
Numeric CharsRead, CharsWritten, OK
Line Opening
CharsRead = 0
If OpenFile ("c:\text\zone.txt", ReadOnly, ZoneData) = Failure then
Result = "Could not open zone.txt file"
Goto Failing
Endif
If OpenFile("c:\text\stpt.txt", WriteOnly, SetPTFile) = Failure then
Result = "Could not open stpt.txt file"
Goto Failing Else Goto Copying
Endif
Goto Copying
Line Copying
OK = ReadFile (ZoneData, DataLine, 16, CharsRead, "|13")
If OK = Failure then
Result = "Could not read file"
Goto Failing
Else
If OK = EOF then
Result = "Could not read file"
Goto Closing
Endif
Endif
Related FILE
Keywords CLOSEFILE
OPENFILE
READFILE
POSITIONFILE
FAILURE
SUCCESS
Products CyberStation
Supported
Modes Programs
Available
Remarks Replace Object_property with the object name, including a full path
name, followed by a property name. The Object Identifier and
Property Identifier are combined as one argument.
Replace Value with the actual value you want the property set to. This
is optional. If it is not present, then the next argument, Priority, must
be present to perform a Relinquish command (see Relinquish key
word).
Example 3 Use WriteProperty to set a point log entry to 100, using index 2.
WriteProperty(NET1\CX1\AV1, 100, , 2) ‘Note that the priority
‘argument is not passed.
Related ReadProperty
Keywords Relinquish
Format YEAR
Remarks You cannot change the YEAR. The controller automatically updates
it.
Related DAYOFMONTH
Keywords DAYOFYEAR
YEAR
Alias YR
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2
Supported series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Most keyboards have a limited set of characters. There are no characters to control such
actions as feeding the paper, turning on a beep, scrolling the screen, and so on. For
these actions, you use a set of codes called the American Standard Code for Information.
Examples You might use the ASCII code for a character in the StringFill
function. You must give the StringFill function the string length to fill,
and the code of the character with which you want to fill the string.
For example, to print a string of 10 characters where each character
is an asterisk:
’42 is the ASCII code for the asterisk (*)
PRINT StringFill(10, 42)
Examples More printer control statements may be possible for your printer. See
continued the manufacturer's documentation.
Interchange (ASCII). You use these codes in a PRINT statement to
control your printer or screen.
ASCII Code The ASCII Codes are listed in the following table:
Table
ASCII Code
Code (in Decimal) Character or Action
Table
continued 18 DC2
19 DC3
20 DC4
21 NAK
22 SYN
23 ETB
24 CAN
25 EM
26 SUB
27 ESC
28 FS
29 GS
30 RS
31 US
32 Space.
33 !
34 "
35 #
36 $
37 %
38 &
39 ’ (apostrophe)
40 (
41 )
42 *
43 +
44 , (comma)
ASCII Code
Code (in Decimal) Character or Action
Table
continued 45 –
46 . (period)
47 /
48 0
49 1
50 2
51 3
52 4
53 5
54 6
55 7
56 8
57 9
58 :
59 ;
60 <
61 =
62 >
63 ?
64 @
65 A
66 B
67 C
68 D
69 E
60
70 F
71 G
ASCII Code
Code (in Decimal) Character or Action
Table
continued 72 H
73 I
74 J
75 K
76 L
77 M
78 N
79 O
80 P
81 Q
82 R
83 S
84 T
85 U
86 V
87 W
88 X
89 Y
90 Z
91 [
92 \
93 ]
94 ^
95 -
96 ‘
97 a
98 b
ASCII Code
Table Code (in Decimal) Character or Action
continued 126 ~
127 DEL
Reserved words are those words used as system constants, keywords, system functions,
and system variables that are reserved as part of Andover Continuum’s Plain English
programming language. Being familiar with these words helps avoid naming errors.
This appendix lists all Andover Continuum system reserved words. A tabular listing of
Continuum system constants begins on the next page. Following this table is a second
table containing an alphabetical listing of all other reserved words including Plain English
keywords, system functions, and system variables.
Make sure you do not use any of these words as a line label or program variable in any of
your Plain English programs.
Note: Before you import older programs to your Andover Continuum system, check to
see if they contain any of these reserved words used as line labels or program
variables. Remove or replace any that do with appropriate substitute words.
System Constants
A_Variable AccessModeNoDatabase
ABA1 AccessModeNormal
ABA2 ACCExpression
Abnormal ACCFlashEmpty
AbortRestore ACCFlashFailure
AC_Flag ACCFlashValid
AC_Output ACCPneumatic
AC256P ACCTemp(DEGC)
AC256Site ACCTemp(DEGF)
AC4P4 Accumulator
AC4plus432 ACCWarmStartOnly
AC8P ACCWarmToCool
ACC_Airflow ACFloatType
ACC_Both Ack
ACC_Dynamic Ack_Alarms
ACC_InputCurrent AckAfterRTN
ACC_Keypad AckAll
ACC_Pneumatic AckAndRTN
ACC_Pressure Acked
ACC_Static AcknowledgeAlarm
ACCBackingUp AcknowledgeAlarms
ACCBackupDisabld AckOnly
ACCBackupDone AckOnlyThisOne
ACCBackupEnable AckOrRTN
ACCBackupInactve Acks
ACCBackupNeeded AckUntilTime
ACCBackupNow ACP
ACCCoolStartOnly Active
Access_archiver Active-alarms-per-object
Access-equipment-fault-report Active-alarms-under-a-controller
AccessEvent Active-alarms-under-a-field-controller
Access-events-per-area Active-alarms-under-a-network
Access-events-per-door Active-unACKed-alarms-per-controller
Access-events-per-person Activity_archiver
Access-events-under-a-controller ActivityEvent
AccessModeNoCommunication Activity-events-per-activity-type
Table of A
System Activity-events-per-controller Alm6
Constants Activity-events-per-controller-with- Alm7
continued children Alm8
Activity-events-per-object AlmNotification
Activity-events-per-user Amperes
Activity-events-per-workstation Amperes-per-meter
ActUnack Amperes-per-square-meter
ACXDatabaseFault Ampere-square-meters
ACXDatabaseFaultCleared AnalogInput
ADAExitRequestTrouble AnalogOutput
ADAExitRequestTroubleCleared AnalogValue
ADAInputTrouble Apr
ADAInputTroubleCleared April
Add-areas-to-personnel Area
Add-column(s)-to-list-class AreaBased
AddListElement Areas-accessed-by-the-selected-person
Add-object(s)-to-Report-memberlist Area-use-by-person
Add-recipient-to-notification Armed
Add-triggers-to-point ASCIIDump
Admin ASCIIReload
Administrate AtomicReadFile
Alarm AtomicWriteFile
Alarm_archiver AudioDatatype
AlarmEnrollment AudioOnToFault
AlarmEvent AudioOnToNormal
Alarms-for-an-event-object-with-alarm- AudioOnToOffNormal
enrollment Aug
Alarms-for-an-event-object-with-event- August
notification Authenticate
Alarm-transitions-per-object AuthenticationFailed
Allowed Automatic
AllPaths AutomaticLifeSafety
Alm0 Automatic-release-disabled
Alm1 Automation
Alm2 AutoSet
Alm3 Available
Alm4 Average
Alm5 Average-of-object-value
Averaging
Table of B
System
B_Abnormal B_Test
Constants B_Active B_TestActive B_TestAlarm
continued B_Alarm B_TestFault
B_Armed B_TestFaultAlarm
B_AutoReleaseDis B_TestSupervisry
B_Blocked B_Unmanned
B_Default B_Unsilence
B_Delayed B_UnsilenceAud
B_Disabled B_UnsilenceVis
B_Disarmed b3608
B_Disconnected b3616
B_DuressState b3624
B_EmergencyPower b3800
B_Enabled b3804
B_Fast b3810
B_Fault b3814
B_FaultAlarm b3850
B_FaultPreAlarm b3851
B_GeneralAlarm b3853
B_Holdup b3865
B_LocalAlarm b3866
B_Manned b3867
B_None b3885
B_NotReady b3886
B_Off b3887
B_On b3920
B_PreAlarm b4920
B_Prearmed Backup-BACnet-Device
B_Quiet BackupToFlash
B_Reset Backup-to-flash-including-the-children
B_ResetAlarm Backup-to-flash-the-objects
B_ResetFault Bars
B_Silence Baud1200
B_SilenceAudible Baud19200
B_SilenceVisual Baud19-2K
B_Slow Baud2400
B_Supervisory Baud300
B_Tamper Baud38400
B_TamperAlarm Baud38-4K
Baud4800
Table of B-C C
System
Baud76800 CardMode
Constants Baud76-8K Centimeters
continued Baud9600 CentimetersOfMercury
bCX4000 CentimetersOfWater
bCX4020 Change-Automatic-archiving-parameter
bCX4040 Change-Continuum-explorer-option
bCX4060 Change-in-GUI-field
bCX9600 ChangeOfBitstring
bCX9640 ChangeOfFailure
BeepOnToFault ChangeOfState
BeepOnToNormal ChangeOfValue
BeepOnToOffNormal Change-security-key-in-default-security-
Binary page
BinaryInput Change-security-key-on-a-Class
BinaryOutput Change-the-main-menu-page
BinaryValue Change-the-option-on-main-menu-page
Bit ChangeValues
Bitstring Channel-override-events-per-door
BlinkOnAlarm Char
Blocked CharacterSetNotSupported
Blue CharType
BondSensorTrouble Check-in-PE-program
BondSensorTroubleCleared Check-out-PE-program
BondSensorViolation CK34
BondSensorViolationCleared ClassDefault
BooleanType ClearDisplay
Btus Clockwise
BtusPerHour Closed
BtusPerPoundDryAir ClusteredBar
BufferOverflow Coldstart
Buffer-purged COM1
BufferReady COM2
CabinetTamperDoorClosed COM3
CabinetTamperDoorOpen Command
Calendar Command_Line
Cancel-distribution-operation CommandFailure
Cancel-schedule Commport
Candelas Completed-deleting-object-from-Access-
Candelas-per-square-meter Control-DB
CannotDelete Completed-deleting-objects-from-Access-
CannotRename Control-DB
Table of C C-D
System
Completed-refreshing-objects-to-Access- Currency1
Constants Control-DB Currency10
continued Completed-refreshing-object-to-Access- Currency2
Control-DB Currency3
Config Currency4
ConfigurationError Currency5
ConfigurationInProgress Currency6
Configure Currency7
ConfirmedCOVNotification Currency8
ConfirmedEventNotification Currency9
ConfirmedPrivateTransfer Current
ConfirmedTextMessage CurrentValue
Connected CustomCard
Connecting CustomMagStripe
Constant CustomWiegand
Container CX9000
Controller-use-by-person CyclesPerHour
ControllerUser CyclesPerMinute
Copy Data
CopyFromTemplate DatabaseSynchronization
Copy-object DataBits5
Counter DataBits6
CounterClockwise DataBits7
Create-attempt-for-an-object DataBits8
Create-link-between-2-objects DateAndTimeType
CreateObject DateDataType
Create-object DateTime
Create-object-from-DBSync-activity Days
Create-object-from-template DbSync
Create-shortcut Dec
Create-template-from-the-object December
CriticalEquipmentControl Default
CriticalEquipmentMessage DefaultTime
CtsRts Deg-Phase
CubicFeet DegreeDaysCelsius
CubicFeetPerMinute DegreeDaysFahrenheit
CubicFeetPerSecond DegreesAngular
CubicMeters DegreesCelsius
CubicMetersPerHour DegreesCelsiusPerHour
Cubic-meters-per-minute DegreesCelsiusPerMinute
CubicMetersPerSecond
Table of D D-E
System
DegreesFahrenheit DisplayVideo
Constants DegreesFahrenheitPerHour DistNotUsed
continued DegreesFahrenheitPerMinute DistributeAddAreasToPersonnel
DegreesKelvin DistributeAreaDeleteToAllACXS
Degrees-Kelvin-per-hour DistributeAreaMemberDeleteToAllACXS
Degrees-Kelvin-per-minute DistributeAreaMembersToAllACXS
DegreesPhase DistributeAttributeSet
Delayed DistributeEnableDisableAreaLink
Delete DistributeOnePersonToACX
Delete-activity-log DistributeOnePersonToAllACXS
Delete-area-from-all-controllers DistributePersonDeleteToAllACXS
Delete-arealink-from-all-controllers DistributePersonsToACX
Delete-extendedlogs DistributeResetPreload
Delete-link-between-2-objects Distribute-the-personnel-to-controller
DeleteObject Done
Delete-object Door
Delete-object-from-Access-Control-DB Door_Ajar
Delete-object-from-DBSync-activity DoorAjarCleared
Delete-objects-from-Access-Control-DB DoorChannelOverrideAndDoorLocked
Delete-the-Personnel-from-controller DoorChannelOverrideAndDoorUnlocked
Delta-degrees-Fahrenheit DoorChannelOverrideCleared
Delta-degrees-Kelvin DoorExitRequestTrouble
Denied DoorExitRequestTroubleCleared
Dereferenced DoorLockedBySchedule
Device DoorSwitchTrouble
DeviceAndBelow DoorSwitchTroubleCleared
DeviceBusy DoorUnlockedBySchedule
DeviceCommunicationControl Door-use-by-person
DeviceOnly Double
Digital DoubleType
Direct DownloadInProgress
Disable-area-links DownloadRequired
Disabled Download-schedule
Disable-object Duress_state
Disable-user-logging-flag DynamicArray
Disarmed DynamicCreationNotSupported
Disconnected Email
Disconnecting EmailAck
DisplayAlarmView EmailOnOffNormal
DisplayPanel EmailToFault
EmailToNormal
Table of E F
System Emergency-power Failed
Constants Enable-area-links Failed-login-attempts-per-user
continued Enable-Automatic-archiving Failed-login-attempts-per-workstation
Enabled Failure
EnableDisable FallThru
Enable-object False
Enable-user-logging-flag Farads
EndBackup Fast
EndRestore Fault
EntryKeypadTamper Fault-alarm
EntryReaderFault Fault-pre-alarm
EntryReaderFaultCleared Feb
Enumeration February
Eof Feet
Equal FeetPerHour
ErrorEvent FeetPerMinute
Error-events-per-controller FeetPerSecond
Error-events-per-controller-with-children Female
Error-events-per-object File
Error-events-per-user FileAccessDenied
Error-events-per-workstation FileBegin
Ethernet802_2 FileCurrent
Ethernet802_3 FileDatatype
EthernetII FileEnd
EthernetSNAP Fill
Even Find-BACnet-devices
EventEnrollment FixedArray
EventNotification Flashes-an-IOU-module
EventView Flash-IOU-modules-from-controller
EvtNotification FloatingLimit
Execute-Learn FloatType
Execute-learn-on-an-IOU-module FolderAndBelow
Execute-object FolderOnly
Execute-Teach FormCancel
Executive_Privilege Forward
ExitKeypadTamper Fri
ExitReaderFault Friday
ExitReaderFaultCleared
ExitRequestDenied_Lockdown
Export-security-keys-to-file
ExpressionAlarm
ExtendedLog
ExtLog_archiver
Table of G–H–I I
System G31 i2850
Constants General-alarm i2851
continued GeneralMode i2853
Generic-action i2865
GetAlarmSummary i2866
GetEnrollmentSummary i2867
GetEventInformation GlobalScope i2885
Grams-per-minute i2886
Grams-per-second i2887
Graphics i2888
GraphicsDisplayType I2889
GreaterThan i2920
GreaterThanOrEqual IAm
Group Idle
GUI IHave
Halt Image
Halted ImperialGallons
Hectopascals ImperialGallonsPerMinute
Henrys Import-object-from-dump-file
HIDCorp1000_35 Import-security-keys-from-file
HighAlarm Inactive
HighLimit InAlarm
HighLimitEnable Inches
HiLimit InchesOfMercury
HiResCurrent InchesOfWater
HiResVoltage IncompatibleSecurityLevels
History Incomplete
Holdup InconsistentParameters
Holiday InconsistentSelectionCriterion
Horizontal Infinet
Horsepower Infinity_37
Hours InfinityController
Hundredths-seconds InfinityData
i2608 InfinityDateTime
i2616 InfinityFunction
i2624 InfinityInfinetCtlr
i2800 InfinityInput
i2804 InfinityNumeric
i2810 InfinityOutput
i2814 InfinityProgram
Table of L L-M
System
Lbus Lumens
Constants LessThan Luxes
continued LessThanOrEqual Level_0 through Male
Level_255 Manned
LifeSafetyMessage Manual
LifeSafetyOperation ManualAreaAssign
LifeSafetyPoint ManualLifeSafety
LifeSafetyZone ManualOperator
Lighting Mar
List March
ListView Mark-personnel(s)-card-as-lost
Maximum
Liters May
LitersPerHour Mega-btus
LitersPerMinute Megahertz
LitersPerSecond Megajoules
Load Megajoules-per-degree-Kelvin
LoadFailed Megajoules-per-kilogram-dry-air
Loading MegajoulesPerSquareFoot
Local-alarm MegajoulesPerSquareMeter
LocalScope MegavoltAmperes
Locked MegavoltAmperesReactive
Lock-unlock-events-per-door Megavolts
Log Megawatt-hours
LogAverage Megawatts
Log-disabled Megohms
Login-attempts-per-user Meters
LogInstantaneous Meters-per-hour
LogMaximum Meters-per-minute
LogMinimum MetersPerSecond
Logoff-from-workstation Meters-per-second-per-second
LogView MilesPerHour
LON Milliamperes
LongIntType Milliamps
Loop Millibars
Looping Millimeters
LowAlarm MillimetersOfMercury
LowLimit Millimeters-per-minute
LowLimitenable Millimeters-per-second
Table of M M-N
System Milliohms Multiple
Constants Milliseconds MultiPlot
continued Millivolts MultiStateFault
Milliwatts MultistateInput
Minimum MultistateOutput
MinimumOnOff MultistateValue
Minmax MVA
Min-max-of-object-value MVAR
Minutes NCParallel
MissingRequiredParameter NCSeries
Modify-Global-preference NCSerPar
Momentary_Unlock NetBeui
MomentaryUnlocked NetBios
Mon NETWARE
Monday Network
Months NETWORK_CMDLINE
MonthToDate NetworkDialup
MonthToNow NetworkWide
Most-accessed-areas New
Most-accessed-controllers Newton
Most-accessed-doors Newton-meters
Most-active-alarmed-objects Newton-seconds
Most-active-persons Newtons-per-meter
Most-active-persons-entering-selected- NoAccess
area(s) NoComm
Most-active-persons-entering-selected- NoDataBase
door(s) NoFaultDetected
Most-alarm(s)-acking-user Nofill
Most-alarm(s)-acking-workstation NoFlowControl
Most-alarm(s)-logging-workstation NonCollection
Most-alarm(s)-silencing-user None
Most-alarm(s)-silencing-workstation NonOperational
Most-common-activities NoObjectsOfSpecifiedType
Most-common-errors NoOutput
Most-offline-controller NoPad
Most-offline-field-controller NOParallel
Most-offline-IOU Normal
Move NormalMessage
Move-object NoSegmentation
MSTP NoSensor
Table of P P–Q-R
System Permanent_Unlock PrintToNormal
Constants Permanent_UnlockCleared PrintToOffNormal
continued PerMinute Priority10
PerSecond Priority11
Personnel Priority12
Persons-accessed-the-selected-area Priority13
Pie Priority14
PinChange Priority15
PINMode Priority16
PINOnly Priority3
PIUTool-End Priority4
PIUTool-Import-End Priority7
PIUTool-Import-Start Priority9
PIUTool-Search-end Probe
PIUTool-Search-Start ProbeOff
PIUTool-Start ProbeOnDemand
PlayContinuous ProcessError
PlayOnce Program
Polar ProgrammingLevel
Port_OutOfServices Prompt
PoundsForcePerSquareInch Property
PoundsMass PropertyIsNotAList
PoundsMassPerHour PsiPerDegreeFahrenheit
PoundsMassPerMinute PTP
Pounds-Mass-Per-Second PTPConnecting
PowerFactor PTPDisconnected
PPP Pulse-Converter
Pre-alarm Pwr-Factor
Prearmed Quiet
PreemptedByHigherPriorityTask Radians
PrimaryEMail Radians-per-second
PrimaryForward Raw
PrimaryLog ReadAccessDenied
PrimaryPaging ReaderDoor
PrimaryPrint ReadOnly
Print ReadProperty
PrintAck ReadPropertyConditional
Printer ReadPropertyMultiple
PrintReport ReadRange
PrintToFault ReadWrite Ready
Table of R R-S
System Real RTD1000TempF
Constants RealTime RTD1000TempF2W
continued RefreshDatabase RTDTemp(DEGC)
Refreshed-Extended-Log RTDTemp(DEGF)
Refresh-object-from-template RTDTempC2W
Refresh-objects-to-Access-Control-DB RTDTempF2W
Refresh-object-to-Access-Control-DB RTNOnly
ReinitializeDevice RTNs-for-an-event-object-with-alarm-
Reload-object-to-controller enrollment
RemoteScope RTNs-for-an-event-object-with-event-
Remove-areas-from-personnel notification
Remove-column(s)-from-list-class RtnUnack
RemovedEnumValue Run
RemoveFromStatusWhenAcked Running
RemoveListElement Sat
Remove-object(s)-from-Report- Saturday
memberlist Save
Remove-recipient-from-notification Save-object
Remove-triggers-from-point Save-object-to-database
Rename-object Save-object-to-database(sendtoDatabase)
RepeatEmail Save-object-to-dump-file
RepeatLog Save-schedule-auto-send-datetime
RepeatPaging Save-schedule-configuration
RepeatPrint Save-schedule-events
RequestKey Schedule
RequestToExit ScheduleDownload
RequiresCommission ScheduleMode
Reset Seconds
Reset-alarm Security
Reset-controller-from-editor SecurityLevel
Reset-fault SecurityNotSupported
Resources SegmentationNotSupported
Restart SegmentedBoth
Restore-BACnet-Device SegmentedReceive
ReturnToNormal SegmentedTransmit
Reverse Send-time-synch
RevolutionsPerMinute Sep
Rotate-object-to-another-label September
RTD1000TempC ServiceRequestDenied
RTD1000TempC2W Services
Table of S S-T
System Set-attribute Start-Relinquish-BACnet-Command
Constants Set-attribute-in-buffered-mode StartRestore
continued Set-Date-systemvariable Start-the-object
ShortcutCreate Stop-Automatic-archiving
ShortcutsAsShortcuts StopBit1
ShortedLoop StopBit1.5
ShortIntType Stop-the-object
ShowDisplayValue StopBit2
ShowMessage String
ShowSpaceTemp StringDataType
ShowTimeValue Structure
Shutdown-Automatic-archiving-app SubscribeCOV
Shut-down-Continuum-on-a-workstation SubscribeCOVProperty
Siemens Success
Siemens-per-meter Sun
Silence Sunday
Silence-audible Supervised
Silence-visual SvFloat
Singular SX8000
Site_Config System
Site_ConfigB Table
SiteConfiguration Tamper
SiteMode Tamper-alarm
Slow TankNet
Smallint TankProbe
Snapshot-of-object-value TCP
Snapshot-of-Trend-Log-buffer-contents TCP_IP
SoftAck TCPIP
SpecifiedByRules Temperature
SpecifiedByUser TemplateCreate
SpecifiedElapsedTime TemplateRefresh
SpecifiedTime Teslas
SQLDateTime Test
Square-centimeters Test-active
SquareFeet Test-alarm
Square-inches Test-fault
SquareMeters Test-fault-alarm
Square-meters-per-Newton Text
Squ-Feet TextType
Squ-Meters ThermoCoupBTempC
StartBackup ThermoCoupBTempF
Start-Continuum-on-a-workstation
Table of T T-U
System ThermoCoupETempC UnArmed
Constants ThermoCoupETempF Unassigned
continued ThermoCoupJTempC UnauthorizedOpenDoor
ThermoCoupJTempF UnauthorizedOpenDoorCleared
ThermoCoupKTempC Unavailable
ThermoCoupKTempF UncomfirmedEventNotification
ThermoCoupRTempC UncomfirmedPrivateTransfer
ThermoCoupRTempF UncomfirmedTextMessage
ThermoCoupSTempC UnconfirmedCOVNotification
ThermoCoupSTempF UndefinedEnumeration
ThermoCoupTTempC UnderRange
ThermoCoupTTempF Union
Therms Unknown
Thu UnknownDevice
Thursday UnknownObject
TimeDataType UnknownProperty
TimedUnlock UnknownVTClass
Timeout UnknownVTSession
TimeStampType Unload
TimeSynchronization Unloaded
Tinyint Unlocked
Today Unmanned
ToFault UnrecognizedService
TonHours UnreliableOther
ToNormal Unset
Tons UnsignedCharType
Tons-per-hour UnsignedLongType
TonsRefrigeration UnsignedShortType
ToOffNormal Unsilence
TooManyArguments Unsilence-audible
Trend Unsilence-visual
TrendLog UnsupportedObjectType
TriState Update-controller-from-DBSync-activity
Trouble Update-extendedlogs
True Update-object-from-DBSync-activity
Truncate-Log-table Update-the-OS-on-a-controller
TS_DateTime Urgent
TS_SequenceNumber UrgentMessage
TS_Time User-invalid-attempt
Tue UsGallons
Tuesday UsGallonsPerMinute
UDP UtcTimeSynchronization
UDP_AND_TCP
Table of The following table lists additional Plain English reserved words
Additional consisting of system variables, system functions, and keywords listed
Reserved in alphabetical order.
Words
Note: As a programmer, you may not use any of these words as a line
label or program variable.
The table below lists all of the objects available in the Plain English language for the
controllers and CyberStation workstations. Starting on the next page, the attributes for
each of these class objects are listed in tabular form.
BACnet controller properties vs. Plain English names are covered in Appendix E
AccessEvent The following list provides you with the attributes and meanings for an
Attributes AccessEvent object.
Table
Attribute Description
AreaID Area involved in access event
CardNumber Card Number
CardType Card Type
Description Description of Object
DeviceID Net Controller reporting the event
DoorID Door reporting the event
EventMessage Either the mode of operation for valid access or the
reason for invalid access
EventType Type of event - valid access, etc.
ID SQL Object ID - Not meaningful to the user
LoggingWorkstaID Workstation that received the event
NonABACardNumber Non ABA Card number
PersonID Person involved in the event
SiteCode Site code of the card in the event
TimeOfLog Time that workstation logged event to database
TimeStamp Time that event took place
ZoneCode Zone code of the card involved in the event
ActivityEvent The following list provides you with the attributes and meanings for an
Attributes ActivityEvent object.
Table
Attribute Description
ActionCode System used number to refer to activity type
Caller Code Not meaningful to the user
Description Description of Object
EventObjectID The object asscociated with the activity
EventObjectName The object asscociated with the activity
ID SQL Object ID - Not meaningful to the user
NodeName The name of the device from which the activity took place
Operator Text The text entered by the person signing off on the activity
OTUser The user name of the person signing off on the activity
TimeStamp The time the activity took place
UserID The full path to the user
UserName The name of the user
ACXList The following list provides you with the attributes and meanings for an
Attributes ACXList object.
Table
Attribute Description
AreaID Not meaningful to the user
AreaUsage Not meaningful to the user
DeviceID Not meaningful to the user
NetworkID Not meaningful to the user
ALarmEnrollment The following list provides you with the attributes and meanings for an
Attributes Table AlarmEnrollment object.
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
Alarmenable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
AlarmType Not meaningful to the user
Alias Alias of the Object
AudioFileFault Path and name of wav file to play on fault
AudioFileNormal Path and name of wav file to play on RTN
AudioFileOffNormal Path and name of wav file to play on Alarm
BaseLink Meaningless to the user
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
EventNotificationID Lists Event Notification associated with Basic Alarms (WS
points only)
EventType Type of alarm - out of range, high limit, expression, etc.
FollowUpRule Not meaningful to the user
Graphics Not meaningful to the user
ALarmEvent The following list provides you with the attributes and meanings for an
Attributes AlarmEvent object.
Table
Attribute Description
AckbyUser User who acknowledges the alarm
AckbyWorkstation Workstation from which alarm was acknowledged
Active Set to true if the alarm has not satisfied all of its return criteria
EventNotificationID Lists Event Notification associated with Basic Alarms (WS
points only)
EventObjectID Object that went into alarm
EventObjectValue Value of object
EventType Alarm Type
FromState The previous state of the alarm event (Alarm, Return To
Normal)
ID SQL Object ID - Not meaningful to the Uuer
InitDeviceID Name of the device owning the object
LoggingWkstaID The name of the workstation that logs the alarm to the database
MasterAlmID Name of the alarm enrollment
MessageText Text message for alarm
OperatorActions Actions typed in manually by the operator
OPeratorText Text that is typed in by the person acknowledging the alarm, if
that option is in place
SilencedbyUser Use who silenced the alarm
SilencedbyWorkstation Workstation from which the alarm was silenced
Silenced Time Time at which the alarm was silenced
TimeofAck Time at which the alarm was acknowledged
TimeofLog Time at which the alarm was logged to the database
TimeStamp Time at which the alarm took place
ToState Current state of the alarm event
AlarmInfo The following list provides you with the attributes and meanings for an
Attributes AlarmInfo object.
Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
AlarmLink1…AlarmLink8 Not meaningful to user
ParentObject The full path to the object
ReferencePoint1… Alarm Referenece Point
ReferencePoint4
ReportID Not meaningful to the user
AnalogInput The following list provides you with the attributes and meanings for an
Attributes AnalogInput object.
Table
Attribute Description
AckedTransitions Not meaningful to the user - currently not supported
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarmgraphicpage Not currently implemented
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Not meaningful to the user
Channel Terminal number into which this object is wired
ClassSortID Not meaningful to the user
Conversion Equation with which the elec. value should be converted into
engineering units
CreatedBy Name of user who created object
CreateTime Time of object creation
DeadBand Amount that the value must differ from low or hi limit in Basic
Alarm (WS points only)
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DeviceType Not meaningful to the user
DigitalFilter Allows for digital filtering to be applied automatically to the
input
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
ElecScaleBot The bottom electrical value that corresponds to the bottom
value in Engineering Units
AnalogOutput The following list provides you with the attributes and meanings for an
Attributes AnalogOutput object.
Table
Attribute Description
AckedTransitions Not meaningful to the user - Currently not supported
AckTranstoFault Binary bitmap that corresponds to the alarm number that has made
a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has made
a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has made
a transition from normal to Alarm
Alarmgraphicpage Not Currently Implemented
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
Channel Terminal number into which this object is wired
Conversion Equation with which the elec. value should be converted into
engineering units
CreatedBy Name of user who created object
CreateTime Time of object creation
DeadBand Amount that the value must differ from low or hi limit in Basic
Alarm (WS points only)
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DeviceType Not meaningful to the user
DigitalFilter Allows for digital filtering to be applied automatically to the
output
DistPending Indicates that distribution is pending for this object
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
Area Attributes The following list provides you with the attributes and meanings for
Table an Area object.
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Not meaningful to the user
CreatedBy Name of user who created object
CreateTime Time of object creation
DeletePending Indicates if there is a delete action pending for this area
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Not meaningful to the user
EditLock Indicates if object has been locked to additional Edits
FollowUpRule Not meaningful to the user
Graphics Not meaningful to the user
IconID Not Meaningful to the User
ID SQL Object ID - Not meaningful to the user
IncludeObject Not meaningful to the user
KnownOccupCount Number of occupants currently in an area
LastChangeBy Name of the user making the last change
LockedBy Not Currently Implemented
AreaLink The following list provides you with the attributes and meanings for an
Attributes AreaLink object.
Table
Attribute Description
AreaID Name and path of the area
DeletePending Indicates if there is a delete action pending for this link
DistPending Indicates there is a distribution pending for this object
DistTime Time of last successful distribution
ID Not meaningful to the user
PersonID Name of the person involved in this link
PreLoad Determines if link is to be loaded to the controller or if
validation is to take place at the server level
SchedID Name of schedule associated with this link
State Indicates if an object has been enabled or disabled
TimeEntered Time of last entry into the area
BinaryInput The following list provides you with the attributes and meanings for a
Attributes Table BinaryInput object.
Attribute Description
AckedTransitions Not meaningful to user - Currently not supported
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
ActiveText Text to be displayed when object is in active state.
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
ChangeofStateCount Number of times discrete object has changed state.
ChangeOfStateTime Time of last change of state.
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DeviceType Not Meaningful to the User
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
ElapsedActiveTime Amount of time discrete point has been in active state
ElecValue Object's actual electrical value
EventEnable Lists which of the 3 basic alarms are enabled - Alarm, RTN,
Fault (WS points only)
EventNotificationID Lists Event Notification associated with Basic Alarms (WS
points only)
BinaryOutput The following list provides you with the attributes and meanings for a
Attributes Table BinaryOutput object.
Attribute Description
AckedTransitions Not meaningful to user - Currently not supported
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
ActiveText Text to be displayed when object is in active state.
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
ChangeofStateCount Number of times discrete object has changed state.
ChangeOfStateTime Time of last change of state.
ChangeofStateCount Number of times discrete object has changed state.
ChangeOfStateTime Time of last change of state.
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DeviceType Not Meaningful to the User
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
ElapsedActiveTime Amount of time descrete poin t has been in the active state
ElecValue Object's actual electrical value
BinaryValue The following list provides you with the attributes and meanings for
Attributes Table a BinaryValue object.
Attribute Description
AckedTransitions Not meaningful to user - Currently not supported
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
ActiveText Text to be displayed when object is in active state.
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
ChangeofStateCount Number of times discrete object has changed state.
ChangeofStateTime Time of last change of state.
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not meaningful to user
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
ElapsedActiveTime Amount of time point has been in the active state
EventEnable Lists which of the 3 basic alarms are enabled - Alarm, RTN,
Fault (WS points only)
EventNotificationID Lists Event Notification associated with Basic Alarms (WS
points only)
EventState Lists current basic alarm State - Alarm, RTN, Fault (WS
points only)
Calander The following list provides you with the attributes and meanings for a
Attributes Calander object.
Table
Attribute Description
Description Description of object
Value A Boolean value that indicates if the current date is contained
in the Calendar object
DateList Not maningful to the user
CalendarEntryName Not meaningful to the user
ClassName The following list provides you with the attributes and meanings for a
Attributes ClassName object.
Table
Attribute Description
ObjectTypeID Not meaningful to the user
ObjectTypeName Not meaningful to the user
CommPort The following list provides you with the attributes and meanings for a
Attributes Table CommPort object.
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
CommStatus Not Meaningful to the user for this object - always reads online
CreatedBy Name of user who created object
CreateTime Time of object creation
CTS Clear To Send
CurrCommDir Not Meaningful to the User
CurrentUser When configured as a user port, indictates the current user of
that port
CXD Carrier Detect
DataLength Length in bits that data will be sent and received
DefaultBaud Default baud rate
DefaultMode The mode that the port will revert to when closed.
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DialPrefix String to be sent to the built - in Continuum modem before
dialing the number on a dial command
DialSuffix String to be sent to the built - in Continuum modem after
dialing the number on a dial command
DirectConnect Indicates that the port will be hard wired to a terminal device
DistPending Indicates that distribution is pending for this object
ControllerUser The following list provides you with the attributes and meanings for
Attributes Table a ControllerUser object.
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Not meaningful to user
ClassSortID Not meaningful to user
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
FullName Full Name of User
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
IncludeObject Not Meaningful to the User
LastChangeBy Name of the user making the last change
LockedBy Not Currently Implemented
LockingWorkstation Not currently implemented
DateTime The following list provides you with the attributes and meanings for
Attributes Table a DateTime object.
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
CreatedBy Name of user who created object
CreateTime Time of object creation
DateValue Date portion of the date time object
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
EventEnable Lists which of the 3 basic alarms are enabled - Alarm, RTN,
Fault (WS points only)
EventNotificationID Lists Event Notification associated with Basic Alarms (WS
points only)
EventState Lists current basic alarm State - Alarm, RTN, Fault (WS points
only)
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
HighLimit High Limit to be used in Basic Alarm (WS points only)
Device The following list provides you with the attributes and meanings for
Attributes Table a Device object.
Attribute Description
AccessEventViewer Maximum number of entries allowed in the access viewer for
MaxEntries this workstation
AcknowledgeEmail Default location of this type of format file
FormatFile
AcknowledgePager Default location of this type of format file
FormatFile
AcknowledgePrinter Default location of this type of format file
FormatFile
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmCount Number of alarms currently in alarm viewer
AlarmEmailFormat Default location of this type of format file
File
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
AlarmPagerFormat Default location of this type of format file
File
AlarmPrinterFormat Default location of this type of format file
File
AlarmPrinterPath Full path to the printer for alarm printing
AlarmViewerMax Maximum number of entries allowed in the alarm viewer for
Entries this workstation
Alias Alias of the object
APDUSegTimeout Time in milliseconds between retransmission of an APDU
(Application Protocol Data Unit) segment
DistributionBatch The following list provides you with the attributes and meanings for a
Attributes Table DistributionBatch object.
Attribute Description
DelayOffset Not Meaningful to the User
DelayTime Not Meaningful to the User
DelayType Not Meaningful to the User
ID Not Meaningful to the User
ReferenceCount Not Meaningful to the User
StartTime Not Meaningful to the User
UserID Not Meaningful to the User
WrkStatID Not Meaningful to the User
DistributionObject The following list provides you with the attributes and meanings for a
Attributes Table DistributionObject object.
Attribute Description
BatchID Not Meaningful to the User
ClassFilter Not Meaningful to the User
CreateTime Time that the distribution activity was created
DistOpts Distribution Options
DistTime Time for next scheduled distribution of this object
EditTime Time of last editing of distribution "job"
EditUser The user who invoked the distribution
ExtraData1 Not Meaningful to the User
ExtraData2 Not Meaningful to the User
ExtraID1 Not Meaningful to the User
ExtraID2 Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
NotifyOpts Byte Code - Not Meaningful to the User
Operation Type of distribution (schedule download, etc.)
OperationOpts Not Meaningful to the User
SourceID Object requiring distribution
Status Status of the distribution (pending, failed, etc.)
StringParam XDriver configuration value
TargetID Not Meaningful to the User
UserID User intitiating distribution
WrkStatID Workstation accomplishing distribution
Door Object The following list provides you with the attributes and meanings for a
Attributes Table Door object.
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
ADAChannel Terminal number into which this object is wired
ADADoorAjarTime Time required for door to be considered ajar
ADAOutputTime Time duration of relay activation on door open command
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmChannel Terminal number into which this object is wired
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
ArmCode Not Implemented at this time
ArmMode Not Implemented at this time
BaseLink Meaningless to the user
BondChannel Terminal number into which this object is wired
BondFailure true/false depending on status of bond sensor supervised input
BondSensor Value of bond sensor input
BondType Wiring type - NOSeries, etc.
CardFormats Format of the access cards to be used
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
DoorList The following list provides you with the attributes and meanings for a
Attributes Table DoorList object.
Attribute Description
AreaID Name and path of area
DeviceID name and path of controller
DoorID Name and path of door
ID SQL Object ID - Not Meaningful to the User
NetworkID Name of Network
ElevatorInfo The following list provides you with the attributes and meanings for a
Attributes Table ElevatorInfo object.
Attribute Description
AreaID Not Implemented at this time
DoorID Not Implemented at this time
ID Not Implemented at this time
InputChannel Not Implemented at this time
InputIOU Not Implemented at this time
OutputChannel Not Implemented at this time
OutputIOU Not Implemented at this time
State Not Implemented at this time
ErrorEvent The following list provides you with the attributes and meanings for a
Attributes Table ErrorEvent object.
Attribute Description
Description Description of Object
ErrorCode Code to correspond to error - Not meaningful to User
EventObjectID Name of object involved in error condition
ID SQL Object ID - Not Meaningful to the User
TimeStamp Time of error
UserID User initiating error
WrkStatID Workstation from which error condition occurred.
EventEnrollment The following list provides you with the attributes and meanings for a
Attributes Table EventEnrollment object.
Attribute Description
AckedTransitions Not meaningful to user - Currently not supported
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
AlarmReference Alarm name
AlarmType Type of alarm
Alias Alias of the object
BaseLink Meaningless to the user
CreatedBy Name of user who created object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
EventEnable Lists which of the 3 basic alarms are enabled - Alarm, RTN,
Fault (WS points only)
EventNotificationID Lists Event Notification associated with Basic Alarms (WS
points only)
EventState Lists current basic alarm State - Alarm, RTN, Fault (WS points
only)
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
IncludeObject Not Meaningful to the User
EventLogControl The following list provides you with the attributes and meanings for a
Attributes Table EventLogControl object.
Attribute Description
ArchiveFrequency Not Meaningful to the User
ArchiveName Not Meaningful to the User
ArchivePath Not Meaningful to the User
ArchiveStartTime Not Meaningful to the User
ArchiveStatus Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
LastArchived Not Meaningful to the User
LogClassID Not Meaningful to the User
MaxAge Not Meaningful to the User
MaxRecords Not Meaningful to the User
PrimaryArchiver Not Meaningful to the User
SecondaryArchiver Not Meaningful to the User
TruncateOnly Not Meaningful to the User
EventNotification The following list provides you with the attributes and meanings for a
Attributes Table EventNotification object.
Attribute Description
AcknowledgementRu Determines if acknowledgement is for all instances or only
les selected
AckRequired Not currently implemented
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
AlarmFont Font to be used when displaying alarm message
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
AlarmOptions Various items that are to be done when alarm occurs
Alias Alias of the object
AudioFileFault Path and name of wav file to play on fault
AudioFileNormal Path and name of wav file to play on RTN
AudioFileOffNormal Path and name of wav file to play on Alarm
BackGroundCOlor Background color to be used when displaying the alarm
message
BaseLink Meaningless to the user
CreatedBy Name of user who created object
CreateTime Time of object creation
DeactivateCriteria Determination of what makes the alarm removed from the
alarm viewer
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EventView The following list provides you with the attributes and meanings for a
Attributes Table EventView object.
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
EventMaximum Maximum number of events permitted in view
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
IncludeObject Not Meaningful to the User
LastChangeBy Name of the user making the last change
LockedBy Not Currently Implemented
LockingWorkstation Not Currently Implemented
Name Name of the object
File Attributes The following list provides you with the attributes and meanings for a
Table File object.
Attribute Description
AccessMethod File Access supported for this file object – Stream Access or
Record Access
Archive The file object has been saved for historical or backup purposes
Description Description of Object
FileData File data in the File object
FileSequenceNum File object’s sequence number in the File List
FileType Intended use of this file( ex: Configuration)
IsConfigurationFile File is a Configuration file or not
LastChange Last Changed date time for that File object
ModificationDate File object modified date
Name Name of the object
ReadOnly The File data can be changed through the use of a BACnet
AtomicWriteFile service
RecordCount Size of the File data in records
Size Size of the File data
Type The type of the object
Filter Attributes The following list provides you with the attributes and meanings for a
Table Filter object.
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
Duration Meaningless to the user
EditLock Indicates if object has been locked to additional Edits
EndDateTime Meaningless to the user
EndTime Meaningless to the user
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
IncludeObject Not Meaningful to the User
LastChangeBy Name of the user making the last change
LockedBy Not Currently Implemented
Folder The following list provides you with the attributes and meanings for a
Attributes Table Folder object.
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
ContainerCreateRule Not currently implemented
CreatedBy Name of user who created object
CreateTime Time of object creation
DefaultDevice Default device on which to create any object that is created in
this folder
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
FolderType Not Meaningful to the User.
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
IncludeObject Not Meaningful to the User
LastChangeBy Name of the user making the last change
Function The following list provides you with the attributes and meanings for a
Attributes Table Function object.
Attribute Description
Binary bitmap that corresponds to the alarm number that has
AckTranstoFault made a transition from normal to Fault
Binary bitmap that corresponds to the alarm number that has
AckTranstoNorm made a transition back to Normal
Binary bitmap that corresponds to the alarm number that has
AckTranstoOffNorm made a transition from normal to Alarm
Equals "on" if alarm attached in this position is in alarm else
Alarm1…Alarm8 equals "off"
Binary bitmap that corresponds to which of the eight alarm
AlarmEnable positions are enabled
Reflect fault status of any alarm link attached - not currently
AlarmFaults implemented
Bitmap of which alarms are active (as with alarmvalue) - not
AlarmFlags currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
ArgumentList Not viewable by user
BaseLink Not Meaningful to the User
ByteCode Not readable by user
CommandLine Indicates if function can be called from the command line
CreatedBy Name of user who created object
CreateTime Time of object creation
CurrentObject Not viewable by user
DbgStatus Not Meaningful to the User
Description Description of Object
DescriptionOfHalt Not Meaningful to the User
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
ErrorCode Type of error that occurred
FileAccess Not Meaningful to the User
FileSize Number of bytes in function
FileSize Number of bytes in function
Graphics The following list provides you with the attributes and meanings for a
Attributes Table Graphics object.
Attribute Description
Not Meaningful to Binary bitmap that corresponds to the alarm number that has
the User made a transition from normal to Fault
Binary bitmap that corresponds to the alarm number that has
AckTranstoNorm made a transition back to Normal
Binary bitmap that corresponds to the alarm number that has
AckTranstoOffNorm made a transition from normal to Alarm
Equals "on" if alarm attached in this position is in alarm else
Alarm1…Alarm8 equals "off"
Binary bitmap that corresponds to which of the eight alarm
AlarmEnable positions are enabled
Reflect fault status of any alarm link attached - not currently
AlarmFaults implemented
Bitmap of which alarms are active (as with alarmvalue) - not
AlarmFlags currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
GraphicsFileName Name of graphic (PIN) file
HighLimit High Limit to be used in Basic Alarm (WS points only)
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
IncludeObject Not Meaningful to the User
LastChangeBy Name of the user making the last change
LockedBy Not Currently Implemented
LockingWorkstation Not Currently Implemented
Group The following list provides you with the attributes and meanings for a
Attributes Group object.
Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
CreatedBy Name of user who created object
CreateTime Time of object creation
DefaultView View to be presented when group firs opened - member list,
history or graph
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
FollowUpRule Not Meaningful to the User
Format Format to be used in displaying object value
Graphics Not Meaningful to the User
GroupFlags Not Meaningful to the User
HistoryInterval Time between rows in history view
HistoryPage Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
GroupMember The following list provides you with the attributes and meanings for a
Attributes GroupMember object.
Table
Attribute Description
ClassID Not Meaningful to the User
GroupMemberBos Bottom Scale for the member
GroupMemberColor Color of Pen for the member
GroupMemberController Not Meaningful to the User
GroupMemberFlag Not Meaningful to the User
GroupMemberOwned Name and path of the member
GroupMemberOwner Name and path of the owning group
GroupMemberSite Not Meaningful to the User
GroupMemberTos Top of Scale for the member
HistoryInterval Time interval between entries in history view
ID SQL Object ID - Not Meaningful to the User
PadType Type of interpolation to be used
ScalesStep Number of steps in scale
ClassID Not Meaningful to the User
ImExportRef The following list provides you with the attributes and meanings for an
Attributes ImExportRef object.
Table
Attribute Description
AlarmFlag Not Meaningful to the User
ExportMast1…
ExportMast8 Not Meaningful to the User
Handle Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
ImportFlag Not Meaningful to the User
InfExportMast Not Meaningful to the User
NetAddress Not Meaningful to the User
Site Not Meaningful to the User
InfinityController The following list provides you with the attributes and meanings for an
Attributes Table InfinityController object.
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
CommStatus Communication status of controller
CommStatus Communication status of controller
ControllerOptions Read only listing of options available in controller
CreatedBy Name of user who created object
CreateTime Time of object creation
DefaultFolder Folder into which all new objects will be placed when created.
DefaultRouter IP address of default router
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
EthernetID MAC address of controller
FolderType Not Meaningful to the User.
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
InfinityDateTime The following list provides you with the attributes and meanings for an
Attributes Table InfinityDateTime object.
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
Channel Terminal number into which this object is wired
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
Export Indicates that the object value has been tagged for export.
ExtLogInterval Log Interval to be used with extended logs.
ExtLogSize Number of elements to be stored in the extended log for this
object.
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
IncludeObject Not Meaningful to the User
IODirection Directional configuration for specific IO module points.
InfinityFunction The following list provides you with the attributes and meanings for an
Attributes InfinityFunction object.
Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
ByteCode Byte code of function - Not viewable by user
CommandLine Indicates if function can be called from command line
CreatedBy Name of user who created object
CreateTime Time of object creation
DbgStatus Not Meaningful to the User
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
FileSize Bytes in file
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
InfinityInfinetCtrl The following list provides you with the attributes and meanings for an
Attributes Table InfinityInfinetCtrl object.
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
CommStatus Communication status of controller
CreatedBy Name of user who created object
CreateTime Time of object creation
DefaultFolder Folder into which all new objects will be placed when created.
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
FolderType Not Meaningful to the User.
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
Handle Numerical identifier
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
IncludeObject Not Meaningful to the User
InfinetError Type of error occuring on Infinet device
InfinityInput The following list provides you with the attributes and meanings for an
Attributes InfinityInnput object.
Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
AlarmVlaue Binary bitmap that corresponds to the alarms that may be active
on this point
Alias Alias of the object
BaseLink Meaningless to the user
Button1…Button6 References the buttons on a smart sensor - Attribute is only
meaningful for smart sensor inputs
Channel Terminal number into which this object is wired
Conversion Equation with which the elec. value should be converted into
engineering units
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DigitalFilter Indicates if automatic digital filtering will be implemented
DisplayMsg Used in the programming of the smart sensor input
DisplaySelect Used in the programming of the smart sensor input
DisplayValue Used in the programming of the smart sensor input
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
InfinityNumeric The following list provides you with the attributes and meanings for an
Attributes InfinityNumeric object.
Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
AlarmVlaue Binary bitmap that corresponds to the alarms that may be active
on this point
Alias Alias of the object
BaseLink Meaningless to the user
Channel Terminal number into which this object is wired
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
Export Indicates that the object value has been tagged for export.
ExtLogInterval Log Interval to be used with extended logs.
Number of elements to be stored in the extended log for this
ExtLogSize object.
FollowUpRule Not Meaningful to the User
Format Format to be used in displaying object value
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
InfinityOutput The following list provides you with the attributes and meanings for an
Attributes InfinityOutput object.
Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
AlarmVlaue Binary bitmap that corresponds to the alarms that may be active
on this point
Alias Alias of the object
BaseLink Meaningless to the user
Channel Terminal number into which this object is wired
Conversion Equation with which the elec. value should be converted into
engineering units
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
ElecScaleBot The bottom electrical value that corresponds to the bottom value
in Engineering Units
ElecScaleTop The top electrical value that corresponds to the top value in
Engineering Units
ElecType Object's electrical type (voltage, current, digital, etc.)
ElecValue Object's actual electrical value
InfinityProgram The following list provides you with the attributes and meanings for an
Attributes InfinityProgram object.
Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
AutoStart Indicates that the program will start immediately upon compiling
to the controller
BaseLink Meaningless to the user
CommandLine Indicates that the program can be started directly from the
command line
CreatedBy Name of user who created object
CreateTime Time of object creation
CurrentLine Holds the name of the line that is currently being processed
DefaultPort The port to which any communication or print instructions will
be issued unless a different port is explicitly declared
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
ErrorCode Numerical representation of a runtime error
ExecTimeOut Not Meaningful to the User
FileAccess Not Meaningful to the User
FileSize Size of the file in bytes
InfinityString The following list provides you with the attributes and meanings for an
Attributes InfinityString object.
Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
Channel Terminal number into which this object is wired
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
Export Indicates that the object value has been tagged for export.
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
IncludeObject Not Meaningful to the User
IODirection Directional configuration for specific IO module points.
IOU IOU number of object
LastChangeBy Name of the user making the last change
InfinitySystem The following list provides you with the attributes and meanings for
Variable an InfinitySystemVariable object.
Attributes Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
Export Indicates that the object value has been tagged for export.
ExtLogInterval Log Interval to be used with extended logs.
ExtLogSize Number of elements to be stored in the extended log for this
object.
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
IncludeObject Not Meaningful to the User
LastChangeBy Name of the user making the last change
LastExtLogTime Time stamp of the most recent entry in an object's extended log
IOUModule The following list provides you with the attributes and meanings for an
Attributes IOUModule object.
Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
CommStatus Communication status of module
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
IncludeObject Not Meaningful to the User
IOU IOU number of object
LastChangeBy Name of the user making the last change
This is a command that invokes a learn. No data is stored.
Learn NOT PE settable
LockedBy Not Currently Implemented
ListView The following list provides you with the attributes and meanings for a
Attributes ListView object.
Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
CreatedBy Name of user who created object
CreateTime Time of object creation
DBQualifier Database qualifying condition to limit entries in view
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
Filter Time range by which to filter view
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
HighlightBKColor Background color of highlighted rows
HighlightFGColor Foreground color of highlighted rows
HighlightQualifier Reason to highlight row
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
IncludeObject Not Meaningful to the User
Loop The following list provides you with the attributes and meanings for a
Attributes Loop object.
Table
Attribute Description
AckedTransitions This string records the last alarms that were acked, in order.
Action Determines whether the Loop is Direct or Reverse acting.
Bias The amount added to the output of the PID algorithm before it’s
written to Value of the Loop.
ControlledVariableUnits The units for the controlled variable reference.
ControlledVariableValue This is the value of the ControlledVariableReference.
COVIncrement This is the maximum change of value of the loop that is allowed
before the loop issues an alarm.
Description The description of the Loop object.
DerivativeConstant The derivative portion of the PID algorithm.
DerivativeConstantUnits The units for the Derivative constant.
ErrorLimit This is the size that the error can grow before the Loop issues an
alarm.
EventEnable These flags determine whether the Loop should alarm on Alarm,
Return To Normal and Fault.
EventNotificationClassId This is the object identifier of the notification class that is used to
determine the recipients of an alarm.
EventState This is the state the Loop is in with regard to intrinsic alarming.
IntegralConstant The integral portion of the PID algorithm.
IntegralConstantUnits The units of the integral constant.
MaximumOutput The maximum possible value of the Loop.
MinimumOutput The minimum possible value for the Loop.
NotifyType The type of notification that is sent..
OutOfService True when the Loop is out of service. The Value can only be
written when the Loop is out of service.
OutputUnits The output units for the Loop.
Priority The priority of the Loop (1 is highest, 16 is lowest).
ProportionalConstant The proportional parameter of the PID algorithm.
ProportionalConstantUnits The units for the proportional constant.
Reliability This status line details whether the Loop is working reliably or
not.
Setpoint This is either the value of the SetpoinntReference, or the value
that the Loop uses as its setpoint if the SetpointReference is not
set.
StatusFlags A series of flags that detail the status of the Loop.
TimeDelay The amount of time that the Loop waits until it issues an alarm…
UpdateInterval The time in milliseconds that the PID algorithm sleeps before it
updates its output value.
Value This is the value that the Loop is writing to the
ManipulatedVariableReference.
MultiStateInput The following list provides you with the attributes and meanings for a
Attributes MultiStateInput object.
Table
Attribute Description
AckedTransitions Not meaningful to user - Currently not supported
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
Channel Terminal number into which this object is wired
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DeviceType Not Meaningful to the User
DigitalFilter Indicate if digital filtering is to be used.
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
ElecType Object's electrical type (voltage, current, digital, etc.)
ElecValue Object's actual electrical value
EventEnable Lists which of the 3 basic alarms are enabled - Alarm, RTN,
Fault (WS points only)
EventNotificationID Lists Event Notification associated with Basic Alarms (WS
points only)
MultiStateOutput The following list provides you with the attributes and meanings for a
Attributes Table MultiStateOutput object.
Attribute Description
AckedTransitions Not meaningful to user - Currently not supported
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
Channel Terminal number into which this object is wired
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DeviceType Not Meaningful to the User
DigitalFilter Indicate if digital filtering is to be used.
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
ElecType Object's electrical type (voltage, current, digital, etc.)
ElecValue Object's actual electrical value
EventEnable Lists which of the 3 basic alarms are enabled - Alarm, RTN,
Fault (WS points only)
EventNotificationID Lists Event Notification associated with Basic Alarms (WS
points only)
MultiStateValue The following list provides you with the attributes and meanings for a
Attributes MultiStateValue object.
Table
Attribute Description
AckedTransitions Not meaningful to user - Currently not supported
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarmgraphicpage Not currently implemented
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
EventEnable Lists which of the 3 basic alarms are enabled - Alarm, RTN,
Fault (WS points only)
EventNotificationID Lists Event Notification associated with Basic Alarms (WS
points only)
EventState Lists current basic alarm State - Alarm, RTN, Fault (WS points
only)
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
Network The following list provides you with the attributes and meanings for a
Attributes Network object.
Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
AlarmReferencePointf If remote site, this point will be examined for change (when
orUpdates connected) and alarm updates occur when point changes
AlarmUpdateIntvl Set period of time after which a remote site will have its alarms
updated
Alias Alias of the object
BaseLink Meaningless to the user
CarrierWait Number of seconds to wait for a carrier indication
CommID Not meaningful to user
ConnectScript Script to be processed when connection is required
ConnectWaitTime Amount of time to wait, in seconds, before connection is
established
CreatedBy Name of user who created object
CreateTime Time of object creation
DefaultFolder Folder into which all new objects will be placed when created.
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DialWait Number of seconds to wait before a dial instruction is to be
processed
DisableUpdate Indicates if automatic updating has been halted by the user
NetworkDialUp The following list provides you with the attributes and meanings for a
Attributes NetworkDialUp object.
Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
ActiveAlarmSync Indicates if all alarm infromation will be extracted on dial up
ActiveEventSync Indicates if all event infromation will be extracted on dial up
Alarmgraphicpage Not currently implemented
AlarmPollInterval Amount of time in minutes that will pass between dial ups to poll
for alarms
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DisconnectIdleTime The amount of time with no activity that will result in a
disconnect
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
EventPollInterval Amount of time in minutes that will pass between dial ups to poll
for events
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
Numeric The following list provides you with the attributes and meanings for a
Attributes Numeric object.
Table
Attribute Description
AckedTransitions Not meaningful to user - Currently not supported
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarmgraphicpage Not currently implemented
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
CreatedBy Name of user who created object
CreateTime Time of object creation
DeadBand Amount that the value must differ from low or hi limit in Basic
Alarm (WS points only)
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
EventEnable Lists which of the 3 basic alarms are enabled - Alarm, RTN,
Fault (WS points only)
EventNotificationID Lists Event Notification associated with Basic Alarms (WS
points only)
EventState Lists current basic alarm State - Alarm, RTN, Fault (WS points
only)
FollowUpRule Not Meaningful to the User
Format Format to be used in displaying object value
Graphics Not Meaningful to the User
ParamInfo The following list provides you with the attributes and meanings for a
Attributes ParamInfo object.
Table
Attribute Description
ID SQL Object ID - Not Meaningful to the User
Param1…Param6 XDriver configuration value
Identifies the comport number that the Xdriver is on. NOT PE
Port settable.
ID SQL Object ID - Not Meaningful to the User
Personnel The following list provides you with the attributes and meanings for a
Attributes Personnel object.
Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has made a
transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has made a
transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has made a
transition from normal to Alarm
ActivationDate Date that person's access card is to become active
ADA Using ADA configuration
Address Address
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm positions are
enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not currently
implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of object
AllowEntEntRgr Allows entry in spite of passback restrictions
BaseLink Meaningless to the user
Blood Field to be used for storage of this or any other individual feature.
CardNumber Card number of access card
CardType Type of card format (Weigand, Infinity37, etc.)
City Field to be used for storage of this or any other individual feature.
Displayed and settable within the Personnel Editor. Not intended to be
ClearanceLevel used within Plain English.
Country Field to be used for storage of this or any other individual feature.
CreatedBy Name of user who created object
CreateTime Time of object creation
CustomControl1 Custom attribute
CustomControl2 Custom attribute
CustomControl3 Custom attribute
Accessible in the Personnel Object Editor, and is also accessible through
DefaultClearanceLevel Plain English.
DateOfBirth Field to be used for storage of this or any other individual feature.
DeletPending Indicates that delete action is pending for this object
Department Field to be used for storage of this or any other individual feature.
Program The following list provides you with the attributes and meanings for a
Attributes Program object.
Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
ByteCode Not viewable by user
CommandLine Indicates that program can be run from the command line
CreatedBy Name of user who created object
CreateTime Time of object creation
CurrentLine Line that is currently being processed
CurrentObject Not Meaningful to the User
DbgStatus Not Meaningful to the User
Description Description of Object
DescriptionOfHalt Not Meaningful to the User
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
ErrorCode Type of error that occurred
FileAccess Not Meaningful to the User
FileSize Number of bytes in function
FlowType Not Meaningful to the User
FollowUpRule Not Meaningful to the User
Report The following list provides you with the attributes and meanings for a
Attributes Report object.
Table
Attribute Description
ChartSubType ChartSubType for Report like XML or HTML.
ChartType ChartType for Report like Bar, Pie or Polar etc
ColumnList Columns that should be included in the report.
DataSource DataSource for Report
Description Description
Email Address Email Address
Email the Report Email the Report Output
Output
File Path File Path to save the file report
FirstMemberList First Memberlist of the report. The report is generated for these
object
IsFixedScale IsFixedScale true or false?
Is Report LogFilter Is Report LogFilter turned on or off if turn on specify the log
filter else specify time range
Number of plots One plot for all or one plot per member
OrderBy Column order in Report
PathId PathId for browsing members
ReportEndDate The end date and time of the report time interval
ReportFilter The time range of the report will be specified through this filter
ReportFootnote The footnote of the report
ReportFormat Report Format
ReportHeading The heading of the report
ReportMax The maximum value set in a report
Report Output to File Report output to File
ReportStartDate The start date and time of the report time interval
ReportSubheading The subheading of the report
ReportType Report Type
ReportXCaption The X caption of the report
ReportYCaption The Y caption of the report
ScaleFrom Scale starts from this number.
Scale To Scale ends to this number
SecondMemberList Second Memberlist of the report.
UseFullPath Use full path is the report output
Z Caption The Z caption of the report
RootClass The following list provides you with the attributes and meanings for a
Attributes RootClass object.
Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarmgraphicpage Not currently implemented
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
CreatedBy Name of user who created object
CreateTime Time of object creation
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
IncludeObject Not Meaningful to the User
LastChangeBy Name of the user making the last change
LockedBy Not Currently Implemented
LockingWorkstation Not Currently Implemented
Name Name of the object
NetworkNumber Not Meaningful to the User
Owner Owner of the Object.
Properties Not Meaningful to the User
Schedule The following list provides you with the attributes and meanings for a
Attributes Schedule object.
Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of object
AutoSendFlag Inidcates that schedule is to be downloaded automatically
AutoSendTime Time at which schedule is to be downloaded
BaseLink Not Meaningful to the User
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
Download Indicates that schedule should be sent to the controller
EditLock Indicates if object has been locked to additional Edits
Time when the schedule’s value is next scheduled to change
FollowingTransitionTime after the time indicated by Next_Transition
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
IncludeObject Not Meaningful to the User
LastChangeBy Name of the user making the last change
SecurityLevel The following list provides you with the attributes and meanings for a
Attributes SecurityLevel object.
Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarmgraphicpage Not currently implemented
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
IncludeObject Not Meaningful to the User
LastChangeBy Name of the user making the last change
LockedBy Not Currently Implemented
LockingWorkstation Not Currently Implemented
Name Name of the object
NetworkNumber Not Meaningful to the User
SecurityLink The following list provides you with the attributes and meanings for a
Attributes SecurityLink object.
Table
Attribute Description
Action Related to maintenance of security bitmap - Not meaningful to
the User
ID Related to maintenance of security bitmap - Not meaningful to
the User
Locks1…Locks4 Related to maintenance of security bitmap - Not meaningful to
the User
SecLevelObject Related to maintenance of security bitmap - Not meaningful to
the User
SecurityLinkClass Related to maintenance of security bitmap - Not meaningful to
the User
ShortCut The following list provides you with the attributes and meanings for a
Attributes ShortCut object.
Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarmgraphicpage Not currently implemented
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Not meaningful to user
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
IncludeObject Not Meaningful to the User
LastChangeBy Name of the user making the last change
LockedBy Not Currently Implemented
LockingWorkstation Not Currently Implemented
Name Name of the object
NetworkNumber Not Meaningful to the User
Owner Owner of the Object.
String The following list provides you with the attributes and meanings for a
Attributes String object.
Table
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarmgraphicpage Not currently implemented
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Meaningless to the user
BaseLink Meaningless to the user
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
IncludeObject Not Meaningful to the User
LastChangeBy Name of the user making the last change
LockedBy Not Currently Implemented
LockingWorkstation Not Currently Implemented
LogIntervalSecs Number of seconds between entries in an automatic log
LogType Type of automatic log - instantaneous, average, etc.
TemplateInfo The following list provides you with the attributes and meanings for a
Attributes TemplateInfo object.
Table
Attribute Description
TemplateAlias Alias that will be used when creating objects from this template
object - meaningful only for templates
TemplateName Name that will be used when creating objects from this template
object - meaningful only for templates
TemplateObj Name of the template
TrendLog The following list provides you with the attributes and meanings for a
Attributes TrendLog object.
Table
Attribute Description
AckedTransitions Represents acknowledgements received for the notification
events. (For intrinsic reporting.)
BufferSize Specifies the maximum number of records the buffer may
hold. If this is writable, it cannot be written when LogEnable
is true (must disable logging before changing the buffer size).
COVResubscriptionInterval Specifies the amount of time between COV resubscriptions,
provided that COV is being used. If this property is not
present, COV subscription should not be attempted.
Description Standard description field.
EventEnable If intrinsic reporting is used, this attribute value must contain
the TO-NORMAL flag in order to receive notifications.
EventNotificationClassId If intrinsic reporting is supported, this indicates the
Notification Class object that will be used for notifications.
EventState The Trend Log’s active event state. If the object supports
intrinsic reporting, this can be either NORMAL or FAULT. If
the object does not support intrinsic reporting, this will be
NORMAL.
LastNotifyRecord Represents the SequenceNumber of the most recently
collected record whose collection triggered a notification.
(For intrinsic reporting.)
LogEnable Indicates and controls whether logging is enabled.
LogInterval Specifies the periodic interval in hundredths of seconds for
which the referenced property is to be logged. If this is zero,
COV will be used instead of polling.
NotificationThreshold If intrinsic reporting is used, this specifies the number of
records collected before a new notification is generated.
NotifyType Specifies if the notifications should be Events or Alarms. (For
intrinsic reporting.)
RecordCount Represents the number of records currently in the log buffer.
RecordsSinceNotification Represents the number of records collected since the previous
notification (if intrinsic reporting is used/supported).
StartTime Specifies the start time for logging- can contain wildcard
characters, which means the start time is not specified.
StopTime Specifies the stop time for logging- can contain wildcard
characters, which means the stop time is not specified.
StopWhenFull If this property is true, logging will stop when the buffer fills
up.
TotalRecordCount Represents the total number of records collected by the Trend
Log object since creation. It will wrap back to 1 after reaching
its maximum value of 2^32 – 1.
User Attributes The following list provides you with the attributes and meanings for a
Table User object.
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1…Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
Alias Alias of the object
BaseLink Not meaningful to user
CardNumber Not currently implemented
CommandPriority Not currently implemented
CreatedBy Name of user who created object
CreateTime Time of object creation
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Indicates that distribution is pending for this object
EditLock Indicates if object has been locked to additional Edits
EmpNumber Field to be used as storage for this or other information
ExpirationDate Not currently implemented
FollowUpRule Not Meaningful to the User
FullName Field to be used as storage for this or other information
Graphics Not Meaningful to the User
HomePhone Field to be used as storage for this or other information
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
Number of minutes of inactivity after which this user will be
InactivityTimer logged off
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
1 320
Predrawn You can program the 250-display unit to display predrawn graphic
Control controls (see below) that respond to an operator touching the screen.
Graphics The control graphic represents a single point or point attribute.
There are 13 pre-designed graphic controls you can select with the
CONTROL keyword.
Title
1 Title 2 Title 3
6 Title
4 Title 5 Title
7 Title
8 Title 9 Title
####.##
###.##
10 Title 11 Title
####.##
12 Title 13 Title
###•##•#### ##:##:##
Title
2 Title Title
1 Title 3 4
Preliminary Before you place the control, always be sure to carry out these steps:
Steps
y Connect to the 250 through the Connect menu.
y Open a file and set its FlowType attribute to FallThru.
y Begin the program by using the CLEARSCREEN keyword to
erase any graphic or text already on the screen.
y Turn on the background light with the BackLight keyword. If you
do not turn on the background light, the control never appears.
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.
Basic Prior to placing a control graphic on the 250 screen you will need to
Considerations know the following information about the control:
y Style Number
y Location
y Whether or not the operator should be able to change the point
value using the control.
y Name and path to the point or attribute
Additional In addition to the above required features of the control, the following
Considerations optional considerations may apply:
y A title
y Frame style
y Direction (sliders only)
y Top and bottom of scale
y Tick marks (knobs and gauges)
y Number of settings the control can be set to (called steps)
y Format (for the numbers on the tick marks)
The CONTROL You use the CONTROL keyword to place a pre-drawn graphic control
Keyword on the 250 display unit screen. It is a function keyword and its
arguments provide all the details covered in the above two
paragraphs to develop and activate any one of the 13 styles of
controls.
The CONTROL keyword format is as follows:
The Arguments The arguments applicable to the CONTROL function are listed below.
AirFlow
50
100
150
200
250
Format The format of the CONTROL function keyword statement showing its
arguments is illustrated below.
Top and
When TRUE, Operator Bottom Format
Control Style Can Change Setting of Scale
CONTROL 7, 50, 50, 280, 180, TRUE, ROOM6 AirFlow, "AirFlow", 4,, 50, 250, 5, 8, "###"
Controller Tick
and Point Frame Style Marks
Location Steps
on Screen Name
Comma Means
Skipping Argument
Argument The left, bottom, right, and top values position the frame so its lower
Descriptions 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).
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.
The extra comma after the 4 indicates you are leaving out an
argument—the direction that does not apply to gauges. The gauge
always turns clockwise.
The 50 is the bottom of the scale and the 250 is the top.
Argument If you did not specify a bottom and top of scale, the control would
Descriptions automatically be a digital gauge. The bottom of scale would become
continued Off and the top of scale On.
"###" defines the numbers format and indicates that up to three digits
can appear in the numbers around the gauge scale.
Steps and Tick If you did not specify a number of steps, you would never see the
Marks 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).
To specify a particular number of steps, set 5 as the number of tick
marks and 8 as 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.
The unnumbered steps (settings) would be 75, 125, 175, and 225.
You can set the needle to one of those values.
Positioning the Notice that the gauge control has two arrows. You press these arrows
Control to raise or lower the setting of the point or attribute.
The arrows must be the size of at least two cells (see Figure D-1),
rather than one. You should position this control so that the two
arrows are each on top of separate cells. This rule applies as long as
you want the operator to have the option of setting the control. If you
set the user_point argument to False, the arrows do not appear.
Switches and When you specify the left, bottom, right, and top, the software
Knobs Cannot automatically sizes the control to fit into the area you designate
be Resized 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.
Gauge Controls While rectangular shaped controls (such as Control Styles 1 and 2)
Retain Their stretch to fit tall/wide areas and shrink to fit short/narrow areas, gauge
Shape controls such as Control Styles 7 and 8 retain their shape.
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 below, the gauge control is then vertically centered within
the space you have defined (crosshatches (+) show the locations of
the left-bottom and right-top).
Gauge Controls On the other hand, if you designate a short wide area for a circular
Retain Their control, its height fits the area and its width becomes proportional to
Shape the height. The control is then horizontally centered within the space
you have defined.
In either case, the gauge retains its semicircular shape.
Minimum Any control style that you can resize never displays unless it is at
Control Size least the size of one cell on the 250 screen—approximately 0.5 inch
square. What are cells? The 250 screen has an underlying grid of 64
squares (see Figure D-1), approximately 0.6 x 0.5-inch. The blocks
are called “cells” or “touch cells.”
The software 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 vertically positioned.
(To be sure about the minimum size for any particular control, refer to
"Graphic Control Style Specifications" beginning on the next page).
If the Control If the control cannot display in the space you give, the software
Doesn't Appear 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 of the area you designated
Title
Details y 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.
y frame—Do not specify. Automatically placed around control.
y direction—Not applicable.
y bot_scale—Optional. Automatically set to OFF or one of the two
values of a digital attribute, such as DISABLED for STATE.
y top_scale—Optional. Automatically set to ON or one of the two
values of a digital attribute, such as ENABLED for STATE.
y tickmarks—Not applicable.
y steps—Not applicable.
y format—Not applicable.
Title
Details y 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.
y frame—Do not specify. Automatically placed around control.
y direction—Not applicable.
y bot_scale—Optional. Automatically set to OFF or one of the two
values of a digital attribute, such as DISABLED for STATE.
y top_scale—Optional. Automatically set to ON or one of the two
values of a digital attribute, such as ENABLED for STATE.
y tickmarks—Not applicable.
y steps—Not applicable.
y format—Not applicable.
Title
Title
Title
Type Knob
Title
Title
Title
###.##
Title
####.##
Title
####.##
Title
Title
Title
###•##•#### ##:##:##
Following the first table are multiple tables that are arranged by BACnet Object Type. The
tables map each BACnet object’s properties to the equivalent Plain English name. You
would use the Plain English name in a Plain English program.
Any properties not listed in the following tables are properties that are not supported in
Plain English. The “READ/WRITE” column indicates whether these properties can be
changed (W) or just read (R) by Plain English.
The Restrictions column indicates any Andover Continuum specific restriction on the
property. Our restrictions do not necessarily coincide with those of a third party device.
BACnet PICS:
As the Andover Continuum BACnet product line expands, some of the information
contained in the tables that follow may change. For up-to-date information on properties
supported and any restrictions placed on their use, refer to the Continuum Product
Implementation Conformance Statement (PICS) for the particular controller you are
using. These may be obtained through your dealer or through the Schneider Electric
website.
Program Program
Schedule Schedule
Calendar Calendar
Device Device
File File
Loop Loop
TrendLog TrendLog
BINARY INPUT
BACnet Plain English READ/WRITE Restrictions
Property Name R/W
Description Description W Limited to 32 characters
Event_State EventState R Always Normal
Object_Name Name R
Object_Type Type R
Out_Of_Service OutOfService W Cannot be set false if channel not
configured
Polarity Polarity W
Present_Value Value W
MULTISTATE INPUT
BACnet Plain English READ/WRITE Restrictions
Property Name R/W
Description Description W Limited to 32 characters
Event_State EventState R Always Normal
Number_Of_States NumberOfStates R 3
Object_Name Name R
Object_Type Type R
Out_Of_Service State W Cannot be set false if channel not
configured
Present_Value Value W
BINARY OUTPUT
BACnet Plain English READ/WRITE Restrictions
Property Name R/W
Description Description W Limited to 32 characters
Event_State EventState R Always Normal
Object_Name Name R
Object_Type Type R
Out_Of_Service OutOfService W Cannot be set false if channel not
configured
Polarity Polarity W
Present_Value Value W
Relinquish_Default RelinquishDefault W
MULTISTATE OUTPUT
BACnet Plain English READ/WRITE Restrictions
Property Name R/W
Description Description W Limited to 32 characters
Event_State EventState R Always Normal
Number_Of_States NumberOfStates R 3
Object_Name Name R
Object_Type Type R
Out_Of_Service OutOfService W Cannot be set false if channel not
configured
Present_Value Value W
Relinquish_Default RelinquishDefault W 1..3
ANALOG VALUE
BACnet Plain English READ/WRITE Restrictions
Property Name R/W
COV Increment COVIncrement W
Description Description W Limited to 32 characters
Event_State EventState R Always Normal
Object_Name Name R
Object_Type Type R
Out_Of_Service OutOfService W
Present_Value Value W
Relinquish_Default RelinquishDefault W
Units Units W
BINARY VALUE
BACnet Plain English READ/WRITE Restrictions
Property Name R/W
Description Description W Limited to 32 characters
Event_State EventState R Always Normal
Object_Name Name R
Object_Type Type R
Out_Of_Service OutOfService W
Present_Value Value W
Relinquish_Default RelinquishDefault W
MULTISTATE VALUE
BACnet Plain English READ/WRITE Restrictions
Property Name R/W
Description Description W Limited to 32 characters
Event_State EventState R Always Normal
Number_Of_States NumberOfStates R 255*
Object_Name Name R
Object_Type Type R
Out_Of_Service OutOfService W
Present_Value Value W
Relinquish_Default RelinquishDefault W 0..255
SCHEDULE
BACnet Plain English READ/WRITE Restrictions
Property Name R/W
Description Description W Limited to 32 characters
Object_Name Name R
Object_Type Type R
Present_Value Value R
Priority_For_Writing Priority W Defaults to, but is not
restricted to, a value of 10.
CALANDER
BACnet Plain English READ/WRITE
Restrictions
Property Name R/W
Description Description W Limited to 32 characters
Object_Name Name R
Object_Type Type R
Present_Value Value R
NOTIFICATION CLASS
BACnet Plain English READ/WRITE Restrictions
Property Name R/W
Description Description W Limited to 32 characters
Object_Name Name R
Object_Type Type R
FILE
BACnet Plain English READ/WRITE Restrictions
Property Name R/W
Object_Name Name R
Object_Type Type R
Description Description W
File_type FileType R
File_Size Size R
Archive Archive R
Read_Only ReadOnly R
File_Access_Method AccessMethod R
Bias Bias W
Controlled_Variable_Units ControlledVariableUnits W
Controlled_Variable_Value ControlledVariableValue R
Derivative_Constant DerivativeConstant W
Derivative_Constant_Units DerivativeConstantUnits W
Description Description W
Event_State EventState R
Integral_Constant IntegralConstant W
Integral_Constant_Units IntegralConstantUnits W
Maximum_Output MaximumOutput W
Minimum_Output MinimumOutput W
Object_Name Name R
Out_Of_Service OutOfService W
Output_Units OutputUnits W
Present_Value Value W
Priority_For_Writing Priority W
Proportional_Constant ProportionalConstant W
Proportional_Constant_Units ProportionalConstantUnits W
Reliability Reliability R
Setpoint Setpoint W
Update_Interval UpdateInterval W
COV_Resubscription_Interval COVResubscriptionInterval R
Description Description W
Event_State EventState R
Log_Enable LogEnable W
Log_Interval LogInterval W
Object_Name Name R
Object_Type Type R
Stop_When_Full StopWhenFull W
Total_Record_Count TotalRecordCount R
This appendix describes how you can write your own Plain English alarm
functions. It also describes the Plain English PopAlarm and AckAlarm functions.
USER – DEFINED ALARM FUNCTIONS
Purpose As an option, you may write your own Plain English “alarm” functions
that run at workstations when one of the following conditions occurs:
An alarm occurs
An alarm is acknowledged
A return-to-normal condition occurs
For example, you would use the user-defined Plain English alarm
functions with an alarm video-monitoring system, to play video clips
when alarms occur.
In the event that all available video controllers are busy playing video
clips, a video control needs to be freed. Meanwhile, if alarms occur
while all video controls are busy, their corresponding user-defined
alarm function calls are stacked (placed in a buffer) and processed, or
“popped,” at a later time. For more information regarding “popping,”
refer to the Plain English PopAlarm function later in this appendix.
If the buffer is empty, then the calls are immediate. If the buffer is not
empty, the calls in the buffer are processed first. Any incoming calls
are buffered.
Each alarm function that you write must correspond to one of the three
conditions listed above. Therefore, in the registry you must define the
following keys for all three types of Plain English user-defined alarm
functions:
HKEY_LOCAL_MACHINE\Software\Andover
Controls\Settings
Argument Description
Arg1 Network Alias Name (a 16-byte string)
Arg2 Controller Alias Name (a 16-byte string)
Function: AlmProcess
Arg 1 AlmNetwork
Arg 2 AlmController
Arg 3 AlmInfinet
Arg 4 AlmObjName
Arg 5 AlmObjAlias
Arg 6 AlmObjDesc
Arg 7 AlmObjValue
Arg 8 AlmState
Arg 9 AlmPanel
Arg 10 AlmMessage
Arg 11 AlmEnrollment
Arg 12 AlmEvent
Arg 13 Alm Priority
If AlmInfinet = “ “ then ~
ObjPath = AlmNetwork; “\” ; AlmController ; “\” ; ~
AlmObjAlias
Else
Shell
“c:\Proga~1\ContinuumUtilities\AlarmRecorder.exe”; ~
“15, 15,” ; ObjId ; “,” ; AlmMessageStr
If AlarmVideo is On then
Shell “c:\Program~1\ContinuumUtilities\VideoMon.exe
“ ; ~ ObjId ; “,” ; AlmMessageStr
Endif
Return Success
Format PopAlarm ( )
Remarks Typically, in the event all available video controls are busy playing
video clips, a guard needs to free a video control. If alarms occur
while all video controls are busy, their corresponding user-defined
alarm function calls are stacked. The PopAlarm function allows you
to process or “pop” each of these stacked alarms at a later time.
Simply Type:
PopAlarm
In the script edit field provided in the Plain English Script tab of the
Active Button Object dialog and Active Animated Button dialog,
simply type:
PopAlarm
Save the graphic and switch to Run mode, or open your graphic at a
later time. In Run mode, simply click the button and the PopAlarm
function is called.
Remarks
Argument Description
Arg1 Timestamp (a 16-byte string)
Arg2 Network Alias Name (a 16-byte string)
Arg3 Controller Alias Name (a 16-byte string)
Arg4 Infinet Controller Alias Name (a 16-byte string)
Arg5 Object Name (a string)
Arg6 AlarmEnrollment Alias (a 16-byte string)
Arg7 State (a 3-byte string: ALM, RTN, or ACK)
Arg8 Acked By User (a 64-byte string)
Arg9 User Actions Text (a 64-byte string)
Arg10 Operator Text (a 255-byte string)
Arg11 Logging Workstation (a string)
In the table above, Arg1 through Arg6 identify the alarm, based on the
Plain English alarm function. Arg7 through Arg11 provide
acknowledgment information.
Alarm Function
This appendix described the area lock down feature, ForceLock, which you can use in
Plain English program statements to lock down areas and doors. It also describes how to
define your own functions to lock down areas and doors. For more information on using
area lockdown in CyberStation, please see the CyberStation online help.
ForceLock
Format ForceLock
Purpose Allows you to lock down (i.e. ForceLock) Areas and Doors
Example 1 To lock down an Area, for example the Engineering_Lab, write the
following Plain English statement:
Example 2 To LockDown a Door, for example Door1, write the following Plain
English statement:
However, if the Area is not in lock down and the user sets Door1’s
ForceLock to “true”, then Door1 will lock down.
Purpose Issues a command to lock down a list of one or more Areas or Doors.
Numeric i
For i = 2 to 15
If passed(i) then Arg[i] ForceLock = ForceLockValue
Next i
Return Success
Example 4 To remove the ForceLock for Area1 thru Area5, call the
LockDownAreas function as follows: