Continuum Plain English Reference
Continuum Plain English Reference
Reference
© 2004, Andover Controls Corporation
All Rights Reserved
Chapter 1 Fundamentals
At a Glance..............................................................................................................................1-1
Overview..................................................................................................................1-1
Introduction .............................................................................................................................1-2
The Plain English Language......................................................................................1-2
Continuum Products .................................................................................................1-2
Continuum System Architecture...............................................................................................1-3
Simple Continuum System ........................................................................................1-3
Moderate Continuum System ....................................................................................1-3
Network Controllers .................................................................................................1-4
Infinet Controllers.....................................................................................................1-5
MS/TP Controllers....................................................................................................1-5
I/O Modules .............................................................................................................1-5
Workstations.............................................................................................................1-5
CyberStation Software ..............................................................................................1-6
Database...................................................................................................................1-6
Infinet.......................................................................................................................1-6
LBUS .......................................................................................................................1-6
MS/TP......................................................................................................................1-6
Objects and Classes..................................................................................................................1-7
Introduction ..............................................................................................................1-7
Objects .....................................................................................................................1-7
Classes .....................................................................................................................1-7
BACnet Objects vs. Continuum Objects ....................................................................1-7
Attributes.................................................................................................................................1-8
Definition .................................................................................................................1-8
How to View Attributes ............................................................................................1-8
Basic Attribute Listing..............................................................................................1-9
Accessibility.............................................................................................................1-9
Object Ownership ..................................................................................................................1-10
Hierarchical View of System Objects ...................................................................... 1-10
Network Paths ........................................................................................................ 1-11
Naming Conventions..............................................................................................................1-12
Object Names ......................................................................................................... 1-12
Object Naming Convention..................................................................................... 1-12
Aliase Names.......................................................................................................... 1-13
Alias Naming Convention ....................................................................................... 1-13
Fundamentals
At a Glance
Overview This chapter provides some basic introductory concepts covering the
architecture of the Continuum building automation system that are essential
to developing good programs in the Plain English Language. Since
Continuum is an object-oriented system, the concept of objects, classes and
their hierarchical arrangement within a physical network is explained.
Object attributes and their association to objects are described and the
chapter ends with a discussion of the naming convention used for
identifying objects in the system.
The Plain The Plain English language (PE) was developed by Andover Controls to
English provide our customers with the ability to customize their building
Language 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 limited to
minimal programming experience.
Depending upon the complexity of the site architecture, a system can range
from a single controller with or without a workstation to a large
configuration consisting of a network of multiple workstations, a database
server, and numerous controllers.
Ethernet IP Network
NetController b4920
Ethernet IP Network
PC Windows
Workstations
running
CyberStation
SQL
Database
Server
Infinity
CX 9xxx NetController
Controller IOU Modules
b4920 LBUS
BACnet
Router
IOU Modules
b3xxx Local field wiring
Local field Infinet
Infinet
wiring
BACnet BACnet Local field
MS/TP Controllers Local field
wiring
RS-485 wiring
Local field
wiring Infinet
Infinet
b3xxx Controller
Controllers
Infinet These controllers include combinations of inputs and outputs for the
Controllers monitoring and control of local sensors and devices. There is a wide variety
of Infinet controllers. Each device is designed for a specific purpose:
• ACX series⎯Access Control
• DCX 250⎯Display Control
• LCX800 series⎯Local Control
• LCX89X series⎯Lighting Control
• SCX series⎯System Control
• TCX series⎯Terminal Control (HVAC, VAV, smoke detection)
• i2 series (also referred to as Infinet II)⎯Updates and replaces many of
the older Infinet controllers. The i2 series controllers have flash memory
for firmware and object storage.
Infinet controllers are connected to network controllers via the Infinet
network.
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 CX99xx NetController. Available I/O
modules include input, output, mixed I/O, and display configurations.
Database The Database stores all the vital information pertaining to the building
automation control system. The database engine is either Microsoft SQL
server or MSDE.
Infinet The 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 Andover Controls
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 and third-party
BACnet devices to the b4920 Router.
Objects Objects are the basic building blocks of Andover's Continuum control
systems. All the items that makeup the system, both the hardware and the
software are identified as objects. Each item appearing on a Continuum
workstation screen represents an object. For example, objects contained
within the controller class include:
• CommPort
• Input
• Output
• User
• Groups
Graphical icons, displayed in the Continuum Explorer, represent both
hardware objects and software objects.
How to View The attributes for any object in Continuum can be viewed by double clicking
Attributes on the object icon in Continuum Explorer's viewing pane. The General page
of the object editor displays some attributes for the selected object. An
example of such a page is shown below:
The attributes that appear on the object's General page will vary depending
on the selected object.
Basic Attribute The following table provides a summary of the attributes appearing in the
Listing previous example General page.
Attribute Description
Description A description of the object
Value Describes the value of the object. Examples include: On or Off, True
or False, Success or Failure, Set or NotSet.
Units Units of measurement, such as Degrees Fahrenheit or Centigrade
can be assigned to temperature measurements.
State The state of an object that can exist in either an Enabled or Disabled
state.
Alarms Indicates the alarms that are active for an object.
Exported Indicates if the point is referenced by another controller. This attribute
is read-only and is set by the Continuum System.
Accessibility The attributes for all objects used in PE programs are accessible from any
Continuum 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.)
Object Object ownership is a term that describes the relationships between objects
Ownership in the Continuum system.
Hierarchical Network and Controller views that are selectable on the Continuum
View of System workstation screen represent the hierarchy of the physical components in the
Objects Continuum System. For example, an input point called Rm Temp1, attached
to a NetController named CX1, that is connected to a network called
Building 1, would be described using the following object hierarchy:
The network object (Bldg1) owns the attached device object (controller
CX1) which owns the input point object (Rm Temp1). These relationships
are shown graphically below.
Root
Network
Bldg 1 Controller
Input Point
CX1
Rm Temp1
Network Paths A path is the route you follow along the network to get from one object to
another. The object could be any of the following:
• Controller
• Workstation
• Printer
• Point
• Some other object on the network
The network path and object relationships are important concepts when
creating statements in PE.
For example, if you need to take action when the room temperature in
Building 1 (BLDG1) exceeds 74 degrees, the following statement might be
entered into the program:
Network Path
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.
Object Names When you create a name for an object in Continuum, 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 Names" below).
The object name is stored in the Continuum database, not in the controller.
Object Naming The set of characters allowed in object names, called the "Naming Character
Convention Set”, is described below.
− Dash character
Space character
Alias Names The alias is the object reference used in programs and functions. Continuum
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.
Alias Naming The rules for the alias naming character set are as follows:
Convention • 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.)
At a Glance
To Create a There are three ways to open the IDE when you wish to create a new
New Program program file:
File • From the System & Status button on Continuum's main menu (shown
below)
• From the Continuum Explorer
• Selecting Programs – Continuum – PlainEnglish from the
Windows Start menu.
From the
Continuum If you click the hot spot on the left-hand side of
Main Menu the Continuum Main Menu, the System & Status menu page appears.
From the From any view of the Continuum Explorer, right click on the controller or
Continuum workstation where you want the program to reside. Then select New and
Explorer InfinityProgram for controller-based programs or simply Program for
workstation-resident programs from the popup menus that appear. BACnet
programs are created as Infinity programs.
From the Start From the Windows explorer, click Start. Select Programs – Continuum -
Menu PlainEnglish. Note: Continuum must be running.
Creating the Type the program name in the Object name text box and click the Create
Program File button. Next, the Editor screen appears in the IDE main window.
Shown below, the Plain English IDE main screen includes standard
Windows features (title bar, menu bar, various toolbars, main window and
status bar) along with specialized editor function windows.
Command Check
Title Bar Main Line Find Toolbar
Menu Bar Toolbar Toolbar
Class of
Objects
Displayed
In IDE Explorer Editor
IDE Explorer
Main Window
Status Bar
Rearranging Many features within the IDE can be rearranged to suit your personal
IDE Toolbars preference:
and Windows • The Title Bar, Menu Bar, Main Window and Status Bar remain on your
screen at all times.
• You can display or hide the icon toolbars and other tool window
components of the IDE.
• The icon toolbars can also be dragged and dropped into different
locations within the upper portion of the IDE.
The IDE Explorer, Command Line, Assistant and Watch Bar can be
arranged in accordance with docking and floating options described later.
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
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 another file into the active program file.
Export Saves the active program file to a different type of 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.
Exit Exits the Plain English editor.
Edit Menu
Option Description
Undo Reverts to the previous action.
Redo Performs the last action that was undone by Undo.
Cut Removes selected text from the program and places it in
the Clipboard.
Copy Copies selected text from the program and places it in
the clipboard.
Paste Inserts contents of the clipboard at the cursor position.
Select All Selects the entire program.
Find From the cursor position, finds the next or previous instance of
specified text.
Find Next From the cursor position, finds the next instance of the text you last
searched for.
Find Previous From the cursor position, finds the previous instance of the text
you last searched for.
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
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.
Build Menu
Option Description
Check Complies the currently active program file. Reports errors in the
Check page of the Assistant
Check All Complies all open program files. Reports errors in the Check page
of the Assistant.
Stop Stops compiling.
Tools Menu
Option Description
Wizard Opens the Plain English Wizard.
Calculator Displays the calculator.
Options Displays the Options dialog.
Window Menu
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.
Arrange Icons This feature is not supported in this release
Note: A list of currently open windows appears at the bottom of the Window menu.
Clicking on any window in the list will make it the active window.
Help Menu
Option Description
Help Topics Displays Plain English online help topics.
About IDE Displays the copyright and version number for the PE editor.
1 2 3 4 5 6 7 8 9 10 11
The Main
Toolbar The Main toolbar
is described below. It contains shortcuts to many of the items found in the
Edit menu.
The Find
Toolbar The Find toolbar is a
shortcut find tool. It contains an input field and buttons to help you look for
specific words, symbols, and phrases in the program or function that you are
writing or editing.
If the Find toolbar is hidden, go to Toolbars in the View menu to add it.
click on
3 To search from the cursor position to the beginning of the program,
click on
The Check
Toolbar The Check toolbar is used in conjunction
with the Assistant to compile programs and report errors. Each of the icon
buttons appearing on the Check toolbar is listed below. If the Check toolbar
is hidden, go to Toolbars in the View menu to add it.
IDE Check Toolbar Buttons
Button Action When Clicked
Compiles the active program in the Editor
Stops compilation
Starts the Plain English Wizard. (See "Using the Plain English Wizard"
in this chapter.)
Displays a pop-up calculator
The Command The Command Line is where you enter and execute Plain English
Line commands. If the Command Line is hidden, go to Toolbars in the View
menu to add it. Its features include:
• Browse Button⎯opens a drop down explorer tree.
• Command Line⎯where you enter Plain English commands.
• Response Line⎯where messages and print requests appear.
IDE Explorer
Browse
Button IDE Command Line Components
Features The IDE Explorer is a small, more limited version of the Continuum
Explorer. It helps you navigate through the folders and devices on your
system to find and select objects to add to your programs. If the IDE
Explorer is hidden, go to Toolbars in the View menu to add it.
The basic parts of the IDE Explorer include:
• Explorer Drop-Down List Box⎯Displays the object tree of the current
folder or device directory.
• Class Drop-Down List Box⎯Displays the classes of the folder or
device object selected from the Explorer Drop-Down List Box.
• Back Up One Level Button⎯Changes the Explorer Drop-Down List
Box to the next higher directory.
• Copy Objects Button⎯Copies selected object on the Class Drop-Down
List to the IDE Assistant.
IDE Explorer Drop-
Down List Box Back Up
One Level
Current Device Button
Class Drop-
Down List Box
List of Objects
Matching
Selected Current
Class
IDE Explorer
Popup Shortcut In addition to the above features, the IDE Explorer provides several options
Menu by means of a popup shortcut menu, which is activated whenever, you right-
click on an object in the drop-down list box.
Features The IDE program Editor is a window that appears in the Main Window area
of the IDE screen when you open a new or existing Plain English program.
The Editor is the tool you use to write and edit programs. Its main features
are:
• Each program displays in its own Editor window.
• More than one program can be open at the same time, each with its own
resizable Editor window.
• When multiple programs are open, a tab appears at the bottom of the
Editor window for each program and the active program tab overlays the
other tabs.
• In multiple Editor window displays, clicking on a program tab activates
that program.
• Only one program at a time can be the active or current Editor window.
• When a program becomes too large for its window, scroll bars appear.
• Color is used for distinguishing program elements. Blue is for
keywords, red for line definitions and green for comments.
Displaying The Editor's ability to display multiple programs allows you to copy code
Multiple from one program to another thus saving typing time.
Programs
In the figure below, four programs occupy the Editor window. Prog4 is the
active window since its tab (see bottom of screen) overlays the other
program tabs.
Features The IDE Assistant provides additional support in the writing and editing of
Plain English programs. Six tabs located at the bottom of the Assistant
window provide features that help to simplify the coding process. When
selected, each tab becomes a separate page in the Assistant window.
Selecting and Double clicking items displayed within these pages automatically inserts
Placing Objects them into the active program Editor window. From the Check page, double
clicking on a listed error places the cursor on the program instruction in the
Editor that caused the error. To place object names on the Objects page,
locate them in the IDE Explorer and then drag them onto the page.
Note:
If the Assistant is hidden, go
to Toolbar in the Edit menu to
add it.
Purpose The Watch Bar allows you to monitor your program's effect on other objects.
Watched objects can be objects that the program refers to, or any object that
is part of your Continuum system.
For every object you add to the Watch Bar, you see the object name and its
current value.
The Watch Bar is very helpful in tracking down errors in your program.
Docking and Depending on the selection or de-selection of the Allow Docking and Float
Floating in Main Window options:
Options • The Assistant and Watch Bars can be placed and arranged within the
Main Window.
• The Assistant and Watch Bars can be dragged and dropped outside of
the Main Window or outside of the IDE window.
• The Explorer Bar can be dragged and dropped within the IDE or outside
of the IDE window.
Using the The docking and floating menu is accessed by right clicking the mouse
Docking and cursor in a gray, non-button area of the:
Floating • Assistant or Watch windows
Options • IDE Explorer or Command Line
Configuring the
To setup the new program file, click the Configuration icon in the
Program File
Check toolbar, or select Configuration from the File menu. This displays the
Configuration dialog box.
Program When the Editor window first appears, it is blank until you begin writing
Guidelines your program. As you enter your program, keep the following guidelines in
mind:
• A single program can have up to 400 physical lines.
• A physical line can have up to 132 characters.
• If a line must exceed 132 characters, enter a tilde (~) at the end to
continue the line.
• Do not use a tilde inside the quotation marks of a Print statement.
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:
• Move the cursor
• Select text
• Change and move text
The Editor You can also edit text with selections from the Edit drop-down box on the
Shortcut Menu Menu bar or you can use the editor shortcut menu. To use the shortcut menu,
highlight the desired text and press the right mouse button.
Finding Text The IDE Editor provides a Find tool for locating specific words, symbols
and phrases whenever the Editor window is activated.
To use the Find tool, place the cursor at the place in the program where you
want to begin searching for text and press the Ctrl-F key or click Edit in the
Editor toolbar and then select Find.
Replacing Text To find and replace text in a program, you use the IDE Editor's Replace tool.
To activate it, place the cursor where you want to begin searching in the
program and click Edit in the Editor toolbar and then select Replace to bring
up the Replace dialog box.
Going to a To locate a labeled line in any program, you can use the Goto command.
Labeled Select Edit…Goto from the IDE menu bar to bring up the Go To dialog box.
Program Line Then type in the desired line label in the Line text box and click on the
Go To button.
Go To Dialog Box
Exporting You can export an existing program in the Editor to another drive or
Programs directory. To do this, perform the steps below.
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.
Saving the Once you have finished writing your program you need to save it, but before
Program you do, make sure the Assistant is displayed on your screen.
To save a program file, click on 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 on 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 close 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.
Saving the When all the errors have been corrected, the Check page of the Assistant
Program File will display the message shown below.
continued
Opening the To reopen the program from the IDE, open the IDE Explorer and locate the
Program subject program file. Double click on the file symbol or hold down the right
mouse button and select Open. This will cause an Editor window containing
the selected program to appear in the IDE Main Window.
Running the You can start your program by entering the Run keyword followed by the
Program from program name into the Command Line and then pressing the RETURN or
the Command Enter key (depending on the keyboard). Make sure that the directory path to
Line the program file, appearing in the Command Line title bar, is correct.
Running the In order for the program to run, its State attribute must already be Enabled.
Program from (See "Configuring the Program File")
the Command
Line continued The system then does the following:
• Sets the program’s Status attribute to Active.
• Sets the program’s CurrentLine attribute to its first line.
• Updates the program's LineStartTime to the time the Scan starts. (See
Chapter 3 for details on the Scanning process.)
Monitoring the You can monitor the program file status by viewing the Run Time status
Program File page.
Status
To access that page, click on 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
Stopping the You can stop the program from the Command Line by entering the “Stop”
Program keyword followed by the program name. This causes the program to stop by
setting the Status attribute to Inactive.
The program will stop itself if it contains the Stop keyword with no name
after it in any of its statements.
What it Does The IDE provides another tool called the Plain English Wizard that provides
you with a collection of pre-written programs and functions that can be
copied and pasted into a program file.
How to
To access the Wizard, click on the in the Check toolbar or select Wizard
Access It
from the Tools drop-down list box on the main Menu bar. Using either of
these methods will open the Wizard's main window.
Click on the Next> button to bring up the File Selection menu page.
The Wizard File The File Selection menu page show below offers a variety of different types
Selection Menu of pre-written programs and functions from which to choose. The tabs along
the top of the menu's window identify different types of programs. Clicking
on a tab displays the programs available of that type. To find information
about a particular program, click on its icon. The program’s full name
appears below the bottom left-hand corner of the window and a brief
description of what the program does appears in the Description text box.
Selecting and To select a program, click on its icon and then click on the Next > button.
Configuring a This displays the File Configuration dialog box as shown on the next page.
Wizard The selections on this dialog box are the same as the standard Configuration
Program dialog box except for one additional checkbox:
• Yes, include comments⎯checking this box means you want to leave
the pre-written program comments in the program. Not checking this
box means you want the comments stripped out.
Selecting and Note: If you select a Function from the File Selection menu, the State,
Configuring a Flow Type and Autostart selection will not be available in the File
Wizard Configuration dialog box.
Program,
continued Click on the Next> button displays the Object References Wizard screen.
The Object The more complicated pre-written programs offered by the Wizard require
References references to external objects. So when you click on the Next> button on the
Screen Configuration dialog box, the Object References screen shown below
appears. You may keep the default object references or replace them with
new object names. To keep them, click on the Next> button to go to the Final
Wizard screen.
Browse Button
To replace the object references, click on the empty Object Name field. This
will display a browse button. Click on 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 on the Next> button to go to the final Wizard
screen.
The Final Click on the Finish button to transfer the program that you selected with the
Wizard Screen PE Wizard to the Editor.
At a Glance
Introduction This chapter provides a discussion on the makeup of Plain English programs
and how to construct program statements. It also describes the type of files
used with the language and a description of the program scanning process.
Instructions A Plain English (PE) program consists of a set of instructions that tell the
and Statements controller what to do. Each of these instructions is called a statement. A
statement is a complete instruction that tells the controller to take some type
of action.
Program statements are listed in the order in which the controller must
perform them to accomplish the program's purpose.
Names and Throughout Plain English, there is no differentiation between words that are
Case capitalized and those that are not. For instance, the following names are
Sensitivity treated as the same:
RoomTemp1
ROOMTEMP1
RoomtemP1
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 ( : )
Editor Line Each single physical line can contain up to 132 characters (not including the
Limitations Return at the end of the line).
Comments Comments are optional sentences used to help document the operation of a
program for the human reader. Comments are not operated upon. Comments
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.
Description and In Plain English, program statements are constructed using words that the
Types controllers recognize. These words, called “keywords” are further classified
into types. The keyword types are described below.
PE Keyword Types
Keyword Type Definition
Statement (an action Defines an action the controller can perform.
word)
Function Carries out a particular series of calculations or actions
and may return one or more specific values.
Operator A symbol or keyword that carries out a mathematical or
logical process, such as addition, subtraction, or
TRUE/FALSE.
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.
System Variable A variable (a value that changes) that the controller
automatically updates.
System Constant A keyword that stands for a particular number or value that
the controller knows the meaning of and that does not
change.
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:
• Names you give to objects such as network controllers, Infinet
controllers, BACnet controllers, programs, files, and points.
• Words that Andover Controls has reserved (called “reserved words” see
Appendix B).
• Attributes and their settings (see Appendix C).
Command The Command Line is an area within the Plain English Development
Lines Environment of CyberStation where you manually type in and execute Plain
English commands.
Types of You use Plain English to instruct a controller to do certain things, such as
Program Flow locking and unlocking doors, turning on fans, printing reports, adjusting
times and dates, and so on. The controller accomplishes such actions in
accordance with the sequential order in which the program's statements are
arranged. This is termed "Program Flow".
Every program in Plain English has a flow type that you identify with the
FlowType attributes:
• FallThru
• Looping
Looping vs. In the following example, if you set the program to Looping, it scans the
FallThru TESTING line continuously until one of the two conditions exists. If the
temperature (assume that the variable “temp” holds the value of the current
temperature of the room) is not in the range of 70 to 75 where does the
program flow then? It continues to loop back to the beginning of the line
(labeled TESTING) and check the temperature again and again.
Line Testing
IF the Temp is less than 70 GOTO heating
IF the Temp is greater than 75 GOTO cooling
Line Pumping
...
Line Heating
...
Line Cooling
...
If you set the same program to FallThru, when the controller determines that
the temperature is not less than 70 or not greater than 75, the program flows
to the next consecutive line (labeled “Pumping”).
Triggers Any point or system variable can be used to automatically start a program
when its value changes. The program is “triggered” by the action of the point
or system variable. Once a point is created or the system variable is chosen,
the program you want to be run is attached via the trigger list that is found in
the editor associated with the entity.
For example, suppose you write a program to control a circulating fan. You
want the fan to turn on whenever the room is occupied and turn off whenever
the room is vacated. In your program, you could choose to use a point called
OCCUPIED that triggers the following program:
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:
• Select the associated system variable or point editor from the
appropriate controller in CyberStation’s Explorer.
• 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)
General Rules To construct a program statement, you follow the structure indicated in the
keyword format and the following general rules:
• You must use one and only one verb (statement word) in each statement.
• You can include one object or a list of objects after the verb.
If you use a statement with IF and THEN, the IF through the THEN is
considered one statement and contains one operator (operators are similar to
verbs−see Chapter 5). For example, the following statement contains the IS
operator:
IF LIGHTSWITCH IS ON THEN...
The three dots after THEN in the statement indicate that more text is
required to complete the statement.
For information on how to include multiple statements after the word THEN,
see the IF..THEN..ELSE keyword in Chapter 7.
Use of "The" To improve a statement’s readability, use the keyword "The". For instance,
in the above examples:
IF THE FAN IS ON THEN TURN ON THE PUMP
Using "the" makes the statement appear more grammatical, its use is
optional in the Plain English Language.
What is a A program file contains statements that instruct the controller to perform
Program File? some type of action. You create program files to store program statements.
You can create a program file on a controller or a CyberStation.
Keep Control in Good programming practice dictates that you have one program file control
a Single a single piece of equipment. Following this practice has the following
Program File advantages:
• Makes programs easier to maintain.
• Makes programs easier to debug
• Prevents firing order list (see “How it Works” on next page) issues.
Because the controller scans programs in the order they appear in the firing
order list, and the entire scan of all programs occurs in a fraction of a second,
following this practice prevents the possibility of a conflict occurring
between the instructions in two different programs.
For example, if a program unlocks a door and later in the same scan, a
second program locks the same door, the door never actually unlocks.
Placing the unlocking and locking of the door in the same program file
eliminates this problem.
Scan Action A complete list of the scan actions in the order the controller carries them out
List is as follows:
• Updates all enabled system variables.
• Updates controller-resident schedules, setting occupied and unoccupied
events.
• Updates controller input points.
• Runs program statements and Command Lines
(executes Command Lines between program lines only).
• Updates controller output points.
• Processes all alarms and if necessary, updates the Status bar.
Other Actions The controller also performs the following actions at any time during
the scan:
• Has triggers set program Status to Active.
• Changes value of numeric, string, or datetime points.
• Updates attribute settings.
• Updates point logs.
The Basic The basic stages in the scanning process are illustrated below. Each of the
Stages stages is discussed in detail in the following paragraphs.
1. Updating The controller updates the values of all ENABLED system variables (DATE,
System SECOND, MINUTE, HOUR, WEEKDAY, and so on) at the start of each
Variables scan. Setting the DATE first ensures that all programs work from the same
time base.
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.
2. Updating When schedules are processed, it updates each occupied and unoccupied
Schedules point so that later, when programs run, the actions are based on the latest
schedules.
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. All action taken during the scan is based on the
initial input values.
If a program is in the trigger list for an input point that has changed, and the
program's State is ENABLED, its Status is set to ACTIVE so it runs during
the upcoming scan.
4. Running During each scan, the controller executes the current line from each program
Programs and that conforms to the following:
Executing
• State is ENABLED
Commands
• Status is ACTIVE
• Current line is not zero
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.
5. Updating The scan sets output point values as instructed in programs or command
Output Points lines during this phase of the scanning process. At the end of the scan, the
controller converts the value of each output that changed in the previous scan
from engineering units to electrical units.
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.
5. Updating You can use the fact that the output hardware is not updated until the end of
Output Points the scan to carry out certain advanced control strategies, but we do not
continued encourage you to program this way. You should handle both turning on and
turning off a piece of equipment in one program, so that no conflicts arise
based on the firing order list.
We do, however, recognize that you may want a master emergency program
to override output settings of all other programs in certain circumstances.
That is why you are allowed to alter the firing order.
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.
Updating the After the scan processes the alarms, it updates the Status bar display if its
Status Bar setting has changed or if a value it is displaying has changed.
Numeric, Numeric, string, and datetime points change values immediately within a
String, and program. So if the first program sets the setpoint to 72, and later in the same
DateTime scan another program tests the setpoint, the later program sees the new value
Points of 72.
Updating Point As it alters point values, the scan process evaluates all points that are
Logs automatic logs and updates them if necessary (based on the log interval).
Triggering Scan length varies depending on the amount of work done. You can reduce
Programs from scan time by assuring your programs conform to the following guidelines:
Points
• Set the points that your program references to triggers for
that program.
• The program should make the decision and set some points.
• The program should end (by being set up as a fall-thru program or
including a STOP statement).
Such programs run only when necessary, reducing scan time.
Exported Point values can be exported at any time during the scan. As an example, if
Points 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.
Power Failure The Firing Order can be used to determine the order in which programs run.
Conditions and This is especially useful when handling power failure conditions. In such a
the Firing Order situation, once power is restored, the program at the top of the firing order
list runs followed by the next program on the list, and so on, down
the list.
If you have a specific power-up sequence where certain programs and items
must be set in a certain order, you can use the Firing Order to do this.
Power Failure To accomplish this, write a Fall-Thru program that is triggered by the
Conditions and PowerFail system variable. This program should contain a statement that
the Firing Order starts all the other programs in the correct sequence.
continued
START Program1, Program2,…
This sets each program's status to active, and places the program pointer to
the first line of the program.
At a Glance
Introduction This chapter describes the types of points, constants and variables that exist
in the Continuum system. 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
are all covered in this chapter.
Types of Points Points are objects that supply information to the control system. There are
five types of points:
• Input
• Output
• Numeric
• String
• DateTime
Input and output points are hardware points, whereas numeric, string, and
datetime points are software points.
Hardware Controllers use input and output points to interact with the environment.
Points They connect to sensors or devices directly from certain controllers or via
input/output IOU modules that are attached to a controller.
Input Points You use an input point to sense temperature, pressure, and the closure of a
switch contact or any outside environmental entity that can be electrically
represented. Input circuits in Andover 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 …
Output Points Outputs control external equipment such as motors, valves and heaters.
Andover controllers include two types of outputs: those that switch and those
that supply a variable voltage or current.
Outputs that switch (we call these Digital outputs), effectively close or open
switch contacts (relays or electronic equivalents to relays-Triacs). These can
be set to ON or OFF. They can also be PULSED (rapid on-off).
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.
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.
Multi-State Multi-State Value points are storage locations in a workstation's memory that
Value Points contain numeric-only information.
String Points String points are storage locations in a controller or workstation’s memory
that contain plain text information such as messages that are displayed on a
workstation screen, printer or for a display device such as the LD-1 or xP
Display.
Controller vs. Workstations and controllers share many of the same Continuum
Workstation capabilities. For instance, you can create a program that runs only on a
Points workstation (this is called a “program”). Similarly, you can create a program
that runs only on a controller (this is called an “InfinityProgram”). Software
points can be created on both workstations and controllers. Once again, an
entity created on the controller would include the “Infinity” name as part of
the entity (e.g., InfinityNumeric, InfinityDateTime).
Description and Constants are numbers, words, or dates that do not change. They remain
Types constant. There are two types of constants:
• Numeric
• String
Floating Point You can enter a floating point number as one of the following:
Numbers • The actual number with up to seven decimal places
• A number in scientific notation
• Positive numbers between 1.40129E-45 and 3.402823E+38
• Negative numbers between -3.402823E+38 and
-1.40129E-45
The numbers accepted are IEEE single precision floating point.
How the The controller accepts all numbers, but the controller interprets:
Controller • Numbers greater than 3.402823E+38 as infinity.
Interprets • Numbers less than -.402823E+38 as negative infinity.
Numbers • Numbers between 1.40129E-45 and -.40129E-45 as zero.
Rules for String Even though a string may contain a number, the number cannot be used in
Constants mathematical calculations.
More information about the vertical bar in strings is included under the
PRINT keyword, in Chapter 7.
System Defined System constants are predefined in Plain English and their values do not
Constants change. ON and OFF are two examples of system constants. Days of the
week, months of the year are also system constants. Certain keywords are
also constants.
Other system constants include not only keywords, but also values you can
set attributes to. For instance, you can set the point type attribute to
VOLTAGE, so VOLTAGE is a system constant. Do not use these words as
names when you name programs, points, or other items.
Description and Variables are names that stand for numbers, words, or dates and times. A
Types variable, unlike a constant, has a value that changes or varies. Types of
variables include:
• Numeric
• String
• DateTime
The Plain English Language supports both System and program variables.
DateTime A datetime variable is a name that represents a date and time. Datetime
Variables 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
Description Whereas system variables are understood by all controllers and workstations
in the system, local variables are only understood by the program where they
are defined. You must define each local variable at the beginning of the
program where they will be used. If you define them anywhere else in the
program it will not run.
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.
You define local variables using the Numeric, String, and DateTime
keyword statements (each is listed in Chapter 7). An example of each of
these keywords is given below.
Numeric The Numeric keyword assigns the name that follows it as a local numeric
Keyword variable:
Numeric RateOfRise
String Keyword The String keyword assigns the name that follows it as a local string variable
with a maximum number of characters allowed defined before the name:
String 40 DirtyFilterMsg
DateTime The DateTime keyword assigns the name that follows it as a local variable
Keyword that accepts a date and time:
DateTime LocalDateTime
Description A system variable is a storage location that the system sets and updates
automatically. Most of the system variables are controlled by the system and
cannot be changed by the user. Those that can be changed are referred to as
“Programmable System Variables” (see below).
System variables exist on all controllers and workstations. You can view
them by selecting the Network views in the Continuum Explorer menu and
opening the InfinitySystemVariable folder under the applicable controller or
workstation. The screenshot below illustrates a portion of the system
variables that appears in the Explorer’s viewing pane for the selected
controller.
Programmable Programmable system variables are names for values the controller sets
System initially, that you can change later. The term “programmable” always means
Variables you can change a value.
The programmable system variables available in the Plain English Language
are listed below and each is described on the following page.
• AudioBell • DCXPower • ModemPower
• BackLight • IOUPower • Status1 to Status8
• CPUPower • MicroPower
Note: The i2 and BACnet controller programmable system variables and
techniques are covered extensively in the i2 and BACnet Controller
Technical Reference Guides.
Plain English Language Reference 4-9
System Variables
System The following table provides a complete list of the system variables for
Variable Listing workstations and CX controllers. In addition to these, i2 and BACnet
controllers have a unique set of extra system variables that are fully
described in their respective Technical Reference Guides.
STATUS# The STATUS# system variables exist for up to eight status lights on the
System front of the CX 9201 controller’s cabinet (STATUS1, STATUS2,
Variables STATUS3, and so on.)
You can label each status light on the CX 9201 to any value you choose; for
instance, STATUS 2 could be an alarm that says SPACE TOO WARM.
When the space is too warm, the light turns on. (You turn the light on by
setting it from inside a program when the space temperature is higher than
setpoint.) See the STATUS# keyword in Chapter 7 for more information.
PowerFail and On all controllers that have battery backup, each time you lose AC power to
other Power the controller its PowerFail system variable is automatically set to ON and
related System the battery backup provides power. This PowerFail system variable remains
Variables ON throughout AC power loss until AC power is restored (see Note, below,
for PowerFail behavior on Infinet, i2 and BACnet controllers).
The PowerFail system variable:
• Indicates the loss of AC power.
• Is set to ON if power has failed and set to OFF if AC power is present.
• Can be used as a trigger to tell the controller when to start a power
management program.
For CX9900 and ACX781 controllers:
• All CX9900 series controllers can continue to run on battery backup
while power is down. The ACX781 is the only Infinet controller that
continues full functional operation on battery backup.
• On the CX9900 series controller and the ACX781 controller, the
PowerFail system variable turns OFF as soon as AC power is restored.
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.
Associated PowerFail System Variables
CPUPower Controls the power for the controller itself.
DCXPower Controls the power for the DCX controller.
ModemPower Controls the power for the modem.
IOUPower Controls the power for the IOU modules.
ReaderPower Controls the power for the ACX700 series controllers.
MicroPower Controls the power for the ACX781 controllers.
At a Glance
Introduction This chapter describes the operators that Plain English uses for mathematical
expressions.
Listing Order In Plain English, operators are acted upon in a certain sequence when more
than one operator occurs in an expression.
The following table lists the order (top to bottom) that is used when working
out an expression
Operators and Their Order When Used in an Expression
Operator Description Association
() Parentheses Left to Right
[] Array Element
Blank or \ Path Name Connector Right to Left
+ Plus Sign on Number Right to Left
- Minus Sign on Number
NOT Logical Negation
BITNOT Bitwise Negation
% Percentage
^ Exponentiation Left to Right
* Multiplication Left to Right
/ Division
MOD Modulus
+ Addition Left to Right
- Subtraction
< Less Than Left to Right
<= Less Than or Equal
> Greater Than
>= Greater Than or Equal
= Equal Left to Right
<> Not Equal
IS IN Set Inclusion
IS NOT IN Set Exclusion
IS BETWEEN Range
IS THRU Range
BITAND Bitwise Logical And Left to Right
BITOR Bitwise Logical Or
BITXOR Bitwise Logical Exclusive Or
& Logical And Left to Right
! Logical Or
; Joining Operator Left to Right
+ number Can be used in front of a number to show it is positive, but has no affect on
the value.
- number Makes a positive number negative and a negative number positive. This
works only on numeric expressions.
NOT number Logically negates the number or expression. If the value of the expression is
nonzero, NOT changes it to 0 and vice-versa. If the expression is TRUE,
NOT makes it FALSE and vice-versa.
BITNOT integer Changes the 1s to 0s and 0s to 1s in the binary equivalent of the integer,
then gives you the decimal integer equivalent of that binary number.
General Each of the following operators compares the number to the left of the
keyword with the number to its right. All of the expressions using
comparative operators yield TRUE (numeric 1) or FALSE (numeric 0) and
are considered numeric.
Comparing You may also use greater than, less than, or equal to operators to compare
String Values two string values. The strings are evaluated by ASCII code. This means that
“Z” is greater than “A” and “9” is greater than “0” and “A” is greater than
“9”. Also “ABC” is greater than “A”.
Type If the compared expressions are not the same type, you must convert them to
Conversion the same type using the keywords below:
• StrToNum converts a string to a number.
• NumToStr converts a number to a string.
• StrToDate converts a string with the correct information into a datetime.
Alias: IS EITHER.
Alias: IS NEITHER.
If both binary numbers contain a 1 in the same place, that is TRUE AND
TRUE, which gives TRUE. If both numbers contain a 0 in the same place,
that is FALSE AND FALSE, which is FALSE. If one number contains a 1
and the other a 0 in the same place, that is TRUE AND FALSE, which is
also FALSE.
Refer to the truth table on the next page for further explanation.
Refer to the truth table on the next page for further explanation.
Refer to the truth table on the next page for further explanation.
Truth Table The truth table for the bit operators is as follows:
OR number ! number
Determines whether a comparison is true by making the comparison to each
expression (which must be numeric or converted to numeric) separately,
excluding the others. The statement returns FALSE (numeric 0) if both
expressions are false, TRUE (numeric 1) if at least one is true.
At a Glance
Introduction This chapter explains Plain English Language functions, their arguments,
how to call them and how to return a value to a function. It also explains
arrays and logs, how to set them up and how they can be used in functions.
RESULT = SQRT(25)
Functions must end with the RETURN statement. It tells the controller to
"return to the calling program, function or command line."
Calling a You can activate ("call") a function by using its name as a statement in a
Function program, on the command line, or inside another function. You place the
arguments in parentheses after the statement.
In the following example, the START.STOP function starts fans 1 and 2 and
stops fans 3 and 4 during daylight hours.
Calling a The function need not have arguments if it works with the same points all the
Function time. You can define one that stops all fans and call it FANSTOP.
without STOP FAN1, FAN2, FAN3 AND FAN4
Arguments RETURN
Parentheses may be omitted.
IF TOD > 1800 AND TOD < 800 THEN FANSTOP( )
FANSTOP knows about the fans because they are points on the controller.
Calling a Functions can have not only points for arguments, but local variables from
Function with the calling program, program names, other function names; basically
Arguments anything that is named within a controller.
The following example shows a function that starts and stops two programs.
ARG 1 PROGRAM1
ARG 2 PROGRAM2
START PROGRAM1
STOP PROGRAM2
RETURN
The calling program can send any two items to this function that can be
acted on by START or STOP. You can start and stop any point (piece of
equipment) or program.
The following example shows a function that returns a value. In this case, the
RETURN statement contains an expression. The function returns the value
resulting from that expression to the program.
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
RETURN can return a string in quotation marks or a date and time as well as
a number. All of these are values.
Definition An array is a group of variables of the same size, and sharing a single name,
but broken up into numbered cells, called elements.
You refer to each element in the array using a number called an "index".
For example, if we had an array with 8 elements called CLOCK, you can
refer to its eight possible values as CLOCK[1], CLOCK[2], CLOCK[3],
CLOCK[4], and so on.
You can also put a numeric variable in place of the index number, such as
CLOCK[COUNT]. The variable is called an "index variable."
Setting Up an When you define an array variable, you must specify a type (numeric, string,
Array of or datetime) and the number of elements. The following statement defines
Variables (declares) a local array called “Temperature” as numeric with 50 elements:
NUMERIC TEMPERATURE[50]
For more on defining arrays and other types of variables, see the NUMERIC,
STRING, and DATETIME keywords in Chapter 7.
Definition Logs are points that automatically update and save readings from the
environment. Logs can be input, output, numeric, string, or datetime points.
A log of points stores the last several values of an input, output, or an other
point. Logs are similar to arrays (see the previous page) except that arrays
must be programmatically updated while the log point automatically updates.
How a Log Continuum updates automatic logs by inserting new values into the first log
Updates entry, as shown below. At every interval a new value is stored in the first
log entry, pushing existing values down to the remaining entries. When the
specified number of entries is full of values, the bottom value is “dropped
off” when a new value is inserted.
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.
How to Retrieve When working with logs, you won’t actually see structures like the one
Log Values shown on the previous page. Instead, you’ll use point names and index
numbers to retrieve values stored in logs. To do this, simply enclose the
index number in square brackets ([ ]) directly after the point name. For
example, to print the sixth entry (72) of the log for OUTSIDEAIR (shown
above), use the following command:
PRINT OutsideAir[6]
Log Update Logs are updated at an intervals that you specify. You can specify that a log
Intervals update every ‘x’ number of seconds, minutes, hours, or days.
The log always updates at an even interval on the clock, no matter when the
log started. For example, a log with an interval of 15 minutes would log
entries at 10:15, 10:30, 10:45, 11:00, and so on.
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.
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).
Setting Up a You can define two logs for any point: a short-term log, and an extended log.
Log Short-term logs are stored on the controller that owns the point. As the name
implies, an extended log is an extension of a short-term log. Extended logs
are stored in the Continuum database rather than the controller.
For input, output, numeric, string or datetime points, you can set up one of
two basic types of short-term logs: logs that you update manually or logs that
the system updates automatically. For a complete description on setting up a
log refer to Chapter 13 of the Continuum CyberStation Configurator's
Guide.
You can use the SIZE attribute in a FOR..NEXT loop to access the values of
a log. See the FOR..NEXT keyword in Chapter 7.
Using Arrays or In certain functions you can use an array or a log name to represent the entire
Logs in series of numbers. Usually the function has a special format for arrays or
Functions logs. Such functions automatically understand that you want the function
carried out on the entire array or log.
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.
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.
Keywords
At a Glance
Introduction This chapter provides a complete description of all the keywords used in
Andover Controls Plain English programming language.
Identical The keywords are listed in alphabetical order beginning on page 7-13. Each
Format for All keyword starts at the top of a new page and its classification by type is
Keywords indicated in the right-hand side of the keyword heading. The classification
types are: constant, function, operator, statement and system variable.
The information is presented in identical format for each keyword under the
headings described below.
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-4.
Remarks Provides an additional explanation of the format, purpose, and the result of
the keyword statement, including any limitations or cautions.
Example Gives an example/s of how the keyword could be used in a program. The
example always indicates whether it would form part of a Command Line
or a Program File. The keywords used in the examples are shown in bold
letters to identify where they occur.
Related Keywords that are often used with the keyword being described or that are
Keywords closely related to it.
Products The Andover Controls products (controllers and/or CyberStation) that the
Supported keyword can be used on.
Modes Lists whether the keyword can be used in the command line mode, the
Available program file mode, or both. Programs cover InfinityPrograms,
InfinityFunctions, Functions and Programs.
Format The information contained after the keyword Format heading shows how
Heading and what you must enter to correctly use the indicated keyword. Depending
Information 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.
The details on how to interpret the Format information are presented in the
following paragraphs.
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-6.
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 typed as
Colon (:) 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 the
Terms 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 Controls Plain English keywords in their
Keyword associated logical groups. Details on each keyword are in the alphabetically
Groups Listing ordered keyword descriptions that follow this section.
Restricted The use of this group of keywords is usually limited to system administrators
Keywords and other users with appropriate configuration level clearance
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 number,
positive or negative, is always the positive number.
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported 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 it refers to 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
. . .
Example 2 To determine how full the event log is in a CX or CMX series controller, you
can print the AccessLog system variable in a program or from the command
line window, as follows:
Command Line
PR AccessLog
The response appears in the command line window as follows for a 29% full
access log:
AccessLog = .29
Related EventLogSize
Keywords
Products ACX series, BACnet series, CMX series, CX series, and i2 series controllers.
Supported
Format AccessServer
Purpose Generally, a controller System Variable used to designate the mode in which
Continuum validates personnel objects (cardholders). Specifically, refers to
the Network ID to which a controller sends validation requests.
Example 1 Suppose you want a CX controller with an ID of 126 to store the areas and
personnel for access control. To set the AccessServer system variable, you
connect to the ACX controller and type the following Command:
Command line
Set AccessServer = 126
You can then proceed to set up the areas and personnel for your access
control system.
Example 2 Suppose you want the database to store the areas and personnel for access
control. If you have two workstations with IDs 225 and 226, you can set the
AccessServer system variable to either of those IDs. This remains true no
matter how many workstations you have on the network. Go to the
Command Line and type the following:
Set AccessServer = 225
or
Set AccessServer = 226
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
Remarks You cannot change the setting of ALARMS. The controller automatically
updates it.
Example Since ALARMS automatically decrements when the alarm returns to normal,
its value should never get very large. In the program below, you set a limit
to how many alarms should be pending (in this case 10) and print a report on
all alarms:
Program File
IF ALARMS > 10 THEN GOTO REPORT.ALARM
LINE REPORT.ALARM
...
Products ACX series, BACnet series, CMC series, CX series, DCX 250, i2 series,
Supported 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 1 Instead of forming separate IF..THEN statements to turn the heat on when
more than one condition exists, you can make one statement using AND:
Program File
IF TEMP < 70 AND TOD > 7:00am THEN TURN ON THE HEAT
Or
IF TEMP < 70 & TOD > 7:00am THEN TURN ON THE HEAT
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 3 If OR occurs before AND, the controller interprets OR first because it works
from left to right on AND and OR. For instance, take this statement:
Program File
IF WKD = SAT OR WKD = SUN AND TOD > 9:00am THEN...
The above statement is interpreted so that the items in parentheses below are
calculated first:
IF (WKD = SAT OR WKD = SUN) AND TOD > 9:00am THEN...
Note to Programmer:
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 series,
Supported 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 series,
Supported 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.
Remarks The number is any number between -1 and 1 inclusive or expression that
gives a result in that range. ASIN returns the arcsine of number as an angle
between -3.14159/2 and 3.14159/2.
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.
You must use ASK on a labeled line by itself. The program automatically
proceeds to the next labeled line after running the ASK statement. The line
that follows the ASK statement should check for the result of ASK.
ASK returns SUCCESS after the window displays successfully, the person
using it responds and presses OK, and the software receives the answer.
ASK returns FormCancel if the window displays, but the person responding
to it presses CANCEL.
Note: When ASK is used, the program waits for user input. It is not
possible to enter the required data and submit the result programmatically.
This is strictly a manual operation.
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.
Because this program is not asking for a particular type of setpoint, you
would be able to run this program in a variety of situations.
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
Alias ARCTANGENT
Products BACnet series, CMX series, CX series, DCX 250, i2 series controllers
Supported (except i2885, i2887, i3885, i3887), and CyberStation.
Example
Program File
ANG.DAMPER = ATAN2 (0.0, 1.0)
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
The control system software then prints the number of personnel records in
the following format:
AvailRecords = 3630
The returned AvailRecords value indicates that the ACX 701 controller can
store approximately 3630 more personnel records.
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 contains
numbers.
Element numbers are not required. Omitting element numbers averages the
entire array or log.
Example 1 To average several temperatures, you place them directly in the AVERAGE
function statement. You list them in parentheses after
AVERAGE, as follows:
Program File
FLR8.AVG = AVERAGE (TMP801, TMP802, TMP803, TMP804)
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 series,
Supported 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 you set it to. Once it has been set to a number, it will
automatically decrement its value by one each second.
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.
Remarks Replace number with any number or expression. If less than 1 or greater
than the number of lines in the linelist, the system ignores the
BASEDON..GOTO statement and executes the statement immediately after
BASEDON..GOTO.
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.
To run different lines on particular days, you write a program that activates
certain lines based on what day it is. The lines are labeled with LINE (see
LINE), telling the line the routine starts on.
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 series,
Supported 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, you set the display to NOFILL to form
lines, to FILL to form a polygon. You 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 (rather than
continued a polygon) because you set the display to NOFILL.
Example 2 You 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) because you
continued 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.
For carrying 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.
For carrying 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, BITXOR uses only the integer from it and drops the
fraction.
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, CMC series, CX series, DCX 250, i2 series,
Supported 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 B for
a listing of Site attributes).
Example of From a terminal on any CX controller, you can connect to the FLOOR1 CX
Format 1 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 the one
Format 2 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
Example of To connect to an Infinet controller at another site from the command line,
Format 3 you enter CD followed by the name of the site, controller, and Infinet
continued controller, in that order. (Remember that the backslash must always precede
the site name):
CD \Building6 Floor1 Room4
Example of To connect to a controller (on Ethernet or Infinet) that you have highlighted
Format 4 in the Object Tree, you enter CD followed by a period:
Command Line
CD .
Products ACX series, BACnet series, CMC series, CX series, DCX 250, i2 series,
Supported 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 250, i2
Supported 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 like this:
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 to generate a bell sound is 7. You
would write it like this:
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 250, i2
Supported series controllers (except i2885, i2887), and CyberStation.
Modes Programs
Available
Format CLEARSCREEN ( )
Purpose Erases everything on the DCX 250-DisplayUnit 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.
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.
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 later 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.
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
Notice that when CLOSEFILE fails, the control system software breaks out
of the loop and prints a failure message.
Related FILE
Keywords OPENFILE
READFILE
POSITIONFILE
WRITEFILE
FAILURE
SUCCESS
Products CyberStation.
Supported
Modes Programs
Available
Purpose Format 1: Closes the list of objects that the local OBJECT variable
stands for.
Format 2: Closes the group of objects that the local OBJECT variable (in
member_object_var) 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.
CAUTION
!! Be sure you close every list you open with
OPENLIST.
Example 1 After you have opened any 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.
Example 2 After you have opened any list of group members with OPENLIST, you
must close it with CLOSELIST:
Program File
CLOSELIST (GrpMember)
The name of the list to close must be a local OBJECT variable that stands for
a group member.
Related GetObject
Keywords OBJECT
OpenList
Products Format 1: BACnet series (except b3885, b3887), CMX series, CX series, i2
Supported series controllers (except i2885, i2887), and CyberStation.
Format 2: CyberStation.
Modes Programs
Available
Purpose Format 1: Closes the window of the named Pinpoint graphic object.
Remarks Replace graphics_object _name with the name of a Pinpoint graphics object,
including a full path name.
A graphics object may include a button, with a Plain English script that
closes a specific graphics object, including the one the button is in.
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.
Example To check several temperatures stored in an array and print names of those
over 75 degrees, you use a FOR..NEXT loop (see FOR..NEXT statement in
this chapter). Normally, the loop below would print the names of all 20
stored temperatures. To get it to select those over 75, use CONTINUE to
break the loop whenever one is less than or equal to 75, and skip to the next
array item.
Program File
'The following prints all zones > 75
FOR NUM = 1 TO 20
IF TEMP[NUM] <= 75 THEN CONTINUE
PRINT TEMP[NUM]
NEXT NUM
In the above program, if the temperature is less than or equal to 75 degrees,
CONTINUE tells the controller to go back to the top of the FOR..NEXT
loop to check the next temperature (and therefore skip any statement
between CONTINUE and the NEXT statement).
Related BREAK
Keywords
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Modes Programs
Available
Products Places a control graphic on the DCX-250 Display Unit's screen and activates
Supported 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 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
continued
00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Fan 2
00 00
00 00
00 00
0 0
000000000000000000000000000000000000000000000000000000000000
Figure 7-5. Display of a Control Style 1 (control button)
on the 250 screen
The format for this example uses all the required arguments plus the "title"
argument.
The user_change argument must be either "TRUE" if you want the operator
to be able to change the setting, or "FALSE" if is not to be changed.
Modes Programs
Available
Remarks The number is any number or expression and represents an angle measured
in radians. The following formulas define radians and degrees:
Alias COSINE
Products ACX series, BACnet series (except b3885, b3887), CMX series, CX series,
Supported DCX 250, i2 series, LCX series, SCX series, TCX series controllers (except
i2885, i2887), and CyberStation.
Format CPUPower
Purpose A predefined variable that 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.
When AC power returns to normal, the CX series controller begins the scan
at the first program in the firing order list and all programs continue on the
line that they were on before you turned off the CPU.
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 . . .
Notice that in this case, the parentheses are required, because CurUser is not
the first word in the statement.
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 that you are currently sitting at.
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
TEMT_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 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Purpose Creates and defines one or more names as local DATETIME variables. You
define the variables inside a program for use only in that particular program.
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, 2003 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 series,
Supported 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:
Example 2 To make some events occur only on particular days of each month, you
could set up an IF..THEN statement that would check 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 series,
Supported 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 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Purpose Deletes old entries from 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 each point group member is then treated
as an extended log), or a controller (whose points are then all treated as
extended logs). Can also be a local OBJECT variable.
When do you delete the extended log entries? When you expect the log has
stored more than the maximum number of entries you set it up to log. For
instance, if you set up the log for 2880 entries, once it has logged the 2880
entries it continues to log them⎯beyond the 2880. To avoid filling your
database with log entries, you must instruct the workstation to remove the
extra log entries either automatically or using DeleteExtLog.
Remarks DeleteExtLog removes only old entries⎯those entries that have expired.
continued How does it determine an entry has expired? It calculates the expiration date
of each entry as follows:
DateTime Entry Was Logged + ExtLogInterval × ExtLogSize
Notice that the ExtLogInterval and ExtLogSize that 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.
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 them with a fallthru program like the one that follows:
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
You 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 that the logs must have expired by.
Example 2 Suppose you want to delete the expired extended log entries of a single point
up to the last day of June 1993. You could delete them from the Command
line as follows:
Command Line
DeleteExtLog (Building1 Floor1 Temp1, StrToDate ("June 30, 1993
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
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.
The controller may also connect over modem to a third-party controller with
an ASCII interface, another Andover controller, a terminal, or a printer.
This feature is useful for 3rd party modems or Cellular Modems that require
something other than “ATDT” to command dialing.
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 from 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, what DIAL first returns reflect the
first response to DIAL rather than the final results:
DIAL can return any of the following results:
Returned When
Success Controller has established connection with the workstation or
other device.
Failure One of the following situations exists:
• Comm port is not in the correct mode.
• Default port is not defined.
• Using HangUp while dialing stops the dialing from
continuing. You can hang up any time during dialing.
• Phone number contains an incorrect expression or
is otherwise incorrect.
DialNotCarrier Controller's modem does not detect a carrier on the
communications line.
Remarks continued
Returned When
DialNotAnswer Controller's modem detects a continuous ringback
signal on the line for longer than the modem expiration
timer allows. The expiration timer is the S-7 register,
which is automatically set to 50 seconds if you do not
change it. To change it, refer to the modem manual.
DialBusyTone Controller detects a busy signal on the line.
DialNotDialTone Modem is waiting for a dial tone before dialing and has
not received one.
DIAL returns the last of the above that occurs. If the controller at first does
not detect a carrier, then gets a busy signal, DIAL returns DialBusyTone and
does not indicate that initially it could 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.
Once DIAL acts on the port successfully, the port is in Raw mode. So 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.
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 for holding the
continued 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 the 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
CheckingStatus:
IF DialResult is Success THEN
GOTO SendingData
ELSE
GOTO StoppingComms
Endif
...
CheckingDone:
If Comm1 PrintDone Then Goto CompletingComm
CompletingComm:
HangUpResult = HangUp (Comm1)
Checking Hangup:
IF HangUpResult is not Success THEN Print "Could Not Hang Up
Comm Port"
GOTO StoppingComms
StoppingComms:
Stop
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
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
Purpose Format 1: Calculates the difference in whole seconds between two dates
and times, date_time1 and date_time2. (Subtracts date_time1 from
date_time2.)
Format 3: Calculates the difference in whole hours between two dates and
times, date_time1 and date_time2. (Subtracts date_time1 from
date_time2.)
Format 4: Calculates and returns the difference in whole days between two
times and dates, date_time1 and date_time2. (Subtracts date_time1 from
date_time2.)
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 MINUTE, any time beyond a complete minute is not counted. So,
2 minutes and 15 seconds becomes 2 minutes
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 days and
continued 15 hours becomes 2 days.
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 DIFFTME (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.
You would substitute MINUTE or HOUR in the above example to get time
difference in minutes or hours.
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
Purpose Format 1: Stops running the program named with program name at the
current line and does not allow you to run the program until you enable it
with ENABLE, setting its state attribute to Enabled or through the menus
and windows.
Replace namelist with any list of programs or points as defined above and
separated by commas.
The named program, name, or each item in the namelist must have a
STATE attribute (see page 1-10). 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 may disable a point called FAN temporarily to see
how that affects the program. You could place the following statement in a
program or enter it from the command line:
Program File
DISABLE THE FAN
Example 3 To stop several active programs at once, enter the following command line:
Program File
DISABLE THE HEATING, THE COOLING, THE PUMPING
Note: In the above example HEATING and COOLING are points and
PUMPING is the program name.
Related ENABLE
Keywords
Alias DIS
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Example 1
Program File
USAGE = kwh DIVIDED BY 24
Example 2
Program File
USAGE = kwh/24
Alias /
DIV
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Purpose Draws an ellipse inside an imaginary rectangle that is positioned on the DCX
250 Display Unit screen by its lower left and upper right corner line point
locators.
The DCX 250 Display Unit forms the ellipse so the leftmost, rightmost, top,
and bottom points on its circumference touch the sides of an imaginary
Rectangle.
Replace left with the number of dots (line points) from the left that the left
side of the imaginary rectangle around the ellipse 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 that
the bottom side of the imaginary rectangle around the ellipse should be
positioned. Can be an integer from 1 to 200, or a name or expression that
gives one.
Left and bottom together give the location of the lower left corner of the
rectangle.
Replace right with the number of dots (line points) from the left that the
right side of the imaginary rectangle around the ellipse 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 that the
topside of the imaginary rectangle around the ellipse should be positioned.
Can be an integer from 1 to 200, or a name or expression that gives one.
Right and top together give the location of the upper right corner of the
rectangle.
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 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
continued
00 250 SCREEN 00
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
Figure 7-7. Circle drawn with DRAWELLIPSE
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 the
arguments you supply as line point locators (dots) to the function. 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 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
that the line should begin. Can be an integer from 1 to 200, or a name or
expression that gives one.
Replace end_left with the number of dots (line points) from the left 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 screen 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.
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
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.
0 0
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Begin_Left
00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
= 10
• 00
00 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
Begin_
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000
Bottom
= 100
0 0
•
00
0
End_Left = 200
End_Bottom
000000000000000000000000000000000000000000000000000000000
= 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
Purpose Draws a rectangle on the screen of the DCX 250-Display Unit by the
arguments you supply to the function as line point locators (dots) for the
lower left and upper right corners. Returns SUCCESS or FAILURE.
Replace left with the number of dots (line points) from the left 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 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 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 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.
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 0
00 0 00
Right = 250
0
00 00 00 00
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
Left
00
= 10
0 0 0 0 0
000000000000000000000000000000000000000000000000000000000
Bottom Top = 100
= 20
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
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
DRAWRECTANGLE 10, 10, 100, 100
00 250 Screen 00
00 00
00 00
0 0 0 0 0 0 0 0
0 000000000000000000000 0 0 0 0 0 0 0 0 0 0 0 0
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
0 0 0 0 0 0 0 0 0
0 000000000000000000000 0 0 0 0 0 0 0 0 0 0 0
00000000000000000000000000000000000000000000000000000
Figure 7-10. Square drawn with DRAWRECTANGLE
Related DRAWELLIPSE
Keywords DRAWLINE
SETDISPLAY
Modes Programs
Available
Purpose Format 1: Allows the program named by program name to be run by the
RUN or ROTATE statements.
Format 2: Places the point, named by point name in an Enabled state where
it may be used by a program.
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. To now let the
controller run it, type the following:
Command Line
ENABLE COOLING
Example 3 To activate several programs at once, enter the following command line:
Command Line
ENABLE the Heating, the Cooling, and the Pump
Note: In the above program, Heating and Cooling are program names and
Pump is a point.
Related DISABLE
Keywords
Alias EN
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Format ENDPOLYLINE ( )
Remarks After you use BEGINPOLYLINE, and you then 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
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000
shown on Figure 7-11.
00 250 Screen
00
00 00
00 00
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0000000000000000000000000000000000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0000000000000000 0 0 0 0 0 0 0 0 0 0 0 0 0 00
00 00
00000000000000000000000000000000000000000000000000000
Figure 7-11. Connected line points executed by ENDPOLYLINE.
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
Purpose Is a variable the controller maintains that indicates the number of system
errors pending. The number increments (increases by one) each time a new
error occurs and is cleared when manually reset to zero (∅).
Remarks The controller automatically updates ERRORS. You can only reset it to zero.
In the sample program below, you set a limit to how many errors can
accumulate and generate a report on all errors if the limit is exceeded:
Program File
IF ERRORS > 10 THEN GOTO Report_Error
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported 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 series,
Supported LCX series, SCX series, TCX series controllers (except i2885, i2887, b3885,
b3887), and CyberStation.
Remarks The integer_expression is an integer greater than or equal to zero. The largest
number you can use FACTORIAL on is 34.
Alias FACT
Products BACnet series (except b3885, b3887), CMX series, CX series, DCX series,
Supported i2 series controllers (except i2885, i2887), and CyberStation.
Format FAILURE
Remarks FAILURE is always numeric and equal to one. It can be used to replace
number in a comparison expression.
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.
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 later use
OPENFILE to open a Windows file that goes with it.
What makes it a variable is that you can change the Windows file name to a
FILE variable name that it associates with. You always make that change
within a statement you form with a related keyword.
Example 1 You use FILE in a program to define a file called ZONEDATA. Then you
can open an 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. Each
continued corresponds to the control system software name you created with a local
FILE variable defined in the array, shown in the right column:
Control
Windows File System
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", WRITEONLY,
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.)
Position of
00 00 00 Position of –1.1 on the number line
00 0 0 0 0 0 0 0 00000 0 0 0 0 0 0 00000 0 0 0 0 0000000 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 000
FLOOR (–1.1)
-4 -3 -2 -1 0 1 2 3 4
Related CEILING
Keywords TRUNCATE
ROUND
Products BACnet series (except b3885, b3887), CX series, DCX 250, i2 series
Supported controllers (except i2885, i2887), and CyberStation.
Remarks Replace numeric_name with a defined local variable or point that stands for
a number.
The numeric_name after NEXT must be the same as the one after FOR.
Replace statement with any complete instruction that tells the program what
to do next or what action to take.
Replace begin with an integer expression.
Replace end with an integer expression.
number tells the amount to increase numeric_name by each time the
controller goes through the loop.
Remarks The statement sets the value of the numeric_name to the begin value, then
continued 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.
Here, since begin is 2, end is 10, and number is 2, the numeric_name (often
called the “counter”) counts 2, 4, 6, 8, 10. The first time through the loop
numeric_name is 2, the second time it is 4, and so on.
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)
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Modes Programs
Available
Format FREEMEM
Remarks For system manager only. Primarily designed to be used on the command
line because the value of FREEMEM does not change dynamically. Also, it
can be used in programs but doing so will slow the controller down.
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 series,
Supported LCX series, SCX series, and TCX series controllers.
Purpose Gets the value from an entry in the extended log and gets the time it
was stored in the log. Retrieves this information for a particular point and a
range of times that begins with the start_time and ends with the end_time.
Remarks 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 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 get 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/2003 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 anywhere in the language that 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 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).
The “word” formed in the string must be a path name or a single-word name
that you have defined somewhere in the control system software.
Example 1 In the following example, GETNAME converts the "TEMP"; ROOM string
to the TEMP1, TEMP2, and other temperature point names up to TEMP10.
These points have been defined on the controller. The program prints the
values of the points:
Program File
Numeric Room
Line SettingRoom
SET Room = 1
GOTO PrintingTemp
Line PrintingTemp
Print GETNAME("Temp";Room)
GOTO GettingRoom
Line GettingRoom
SET Room = Room + 1
IF Room is less than 11 THEN
GOTO PrintingTemp
ELSE
Stop
ENDIF
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")
Example 2 Endif
continued 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.
Example 3 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
Print GETNAME("Room"; ROOM; "Temp VALUE")
Example 4 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 5 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")
Products BACnet series (except b3885, b3887), CX series, CMX series, i2 series
Supported controllers (except i2885, i2887), and CyberStation.
Modes Programs
Available
Purpose Format 1: 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, PROGRAM.
Remarks The object_var is a local OBJECT variable you defined with the
OBJECT statement.
Returns SUCCESS or FAILURE. After it gets the last object in the list of
that object class, GETOBJECT returns FAILURE.
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 You can print a list of disabled programs on a particular controller using
GETOBJECT. This time, the program is not looping, but fallthru. Notice that
GOTO creates the loop that continues to look for programs on the controller.
Program File
Object Prog
Line OpenProg
.
.
Line GetProgs
IF GetObject (Prog) Is Not SUCCESS THEN GOTO CloseProg
IF Prog State Is Disabled THEN
Print Prog Name
GOTO GetProgs
Line CloseProg
.
Example 2 This program checks the state of each program it retrieves from a particular
continued 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 SUCCESS 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
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
Products Format 1: BACnet series (except b3885, b3887), CX series, CMX series, i2
Supported series controllers (except i2885, i2887), and CyberStation.
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 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Modes Programs
Available
HangUp Function
Format 2: HangUp ( )
Purpose Format 1: From a program, using the comm port you indicate, hangs up on
the Infinity modem connection. The Infinity modem is on the comm port.
Remarks When you use HangUp from the command line, it returns right away, before
continued the hanging up actually begins. In this case, what 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.
Hanging Up While Connected to a Remote Device
If the Mode of the port is Raw, and DIAL has established a connection with
a workstation (from a remote site), HangUp responds as follows:
• Does not respond to characters from the port with READ or characters
sent to the port with PRINT.
Remarks • Discards all characters the controller has not yet printed to the port.
continued
• If READ is occurring, sets the TimedOut attribute of the port to True and
reactivates the program that was using READ.
• Attempts to hang up and waits 10 seconds for the hangup to complete.
• If CXD is ON then sets DTR to OFF and waits 10 seconds for the modem
to reinitialize.
• Sets DTR to ON.
• Reactivates the program that used HangUp to disconnect.
• Sets the port to its DefaultMode.
• Sets the PrintDone attribute of the port to True when the last PRINT has
been completed.
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, you use HangUp and give it the
name of the port to hang up on:
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"
On the line immediately after you use HangUp, 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.
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)
From the Command line, you must always name the comm port
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 . . . .
Example 2 A simple way to calculate the StartTime based on OutsiedAir could use
HOD as follows:
Program File
IF OutsideAir > 70 THEN GOTO CoolStart
Set StartTime = 8.00 - (70 - OutsideAir) * RateOfRise
IF HOD = StartTime THEN GOTO StartBldg
Alias HOUROFDAY
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Format HOUR
Although the system automatically updates HOUR, you can reset it for
daylight savings time or a change in time zone. You reset HOUR using the
SET statement.
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 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Format 2: IF expressionTHEN
statement
statement
statement
.
.
ENDIF
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.
• If 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 under
continued 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.
Purpose Carries out a given statement or series of statements if the expression is true.
May also carry out a given statement or series of statements if the given
expression is false.
Remarks Replace expressionr with any number or expression. The expression can be
a TRUE or FALSE comparison.
Replace statement with any complete instruction that tells the program what
to do next or what action to take.
Example of To take a single action if the expression is true, you use Format 1, the single-
Format 1 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 To take several actions if the expression is true, and take no action if it is
Format 2 false, you use format 2:
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 To take a single action if an expression is true and another single action if it
Format 3 is false, you use Format 3:
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 To take several actions if the expression is true or take several others if it is
Format 4 false, you use Format 4:
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 goes
Nested Ifs with the inner IF and ELSE, the outer ENDIF with the outer IF and ELSE.
continued
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. Why? 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 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Format INFINET#COUNT
Or gives the number of Infinet controllers on-line on the single Infinet on the
CMX 9924 series controller you are working on.
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 ( )
Purpose Format 1: From a program, initializes the Infinity modem so it can connect
from a controller (often at a remote site) to another device, usually a
workstation.
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.
You can use InitModem in a program or on the Command line. When you
use InitModem from a program, you must use it on a labeled line by itself.
After it executes, InitModem automatically moves the program to the next
labeled line. The next labeled line should then test for the returned results of
InitModem.
CAUTION
!! Be careful not to use IinitModem 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.
To revert Comm3 to its original settings after initializing
it, you must manually set the FlowControl attribute of
Tffsasfff
Comm3 to NoFlowControl either before or after you
reset the controller.
If you do not change FlowControl, Comm3 remains set
at CtsRts.
When you use InitModem, it returns right away, before the initialization is
actually complete. For this reason, you should wait up to 10 seconds before
checking for the result of InitModem (or before taking the next action if you
used it from the Command line).
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.
Remarks You wait the 10 seconds before you check the result of InitModem to be sure
continued your program waits for the transition from Raw to the AutoSet or Printer.
Or you could, instead, check to be sure that the Mode
attribute of the port is AutoSet or Printer rather than Raw.
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 Before dialing a call over the modem, to correctly initialize the port, you use the
InitModem keyword.
Because the actual initialization process may takes 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 of the program 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.
Example 3 You can use InitModem in the Command window of a controller. When you
do, you must include the name of the comm port:
Command Window
InitModem (Comm3)
If the result was successful, the port Mode should switch from Raw to its
DefaultMode. You can check to be sure the result is successful by printing
the Mode attribute of the port as follows:
Command Window
Pr Comm3 Mode
If it is still in Raw mode, the port is not yet ready to send data.
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 series,
Supported 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
Remarks Replace number with any number or expression, including a date and time,
or name that stands for one.
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 the 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 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Format LCDPassword
Remarks Applies only to Infinet controllers with keypads (see "Products Supported").
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 (with
Supported keypads only).
Modes N/A
Available
Purpose Returns a string consisting of the leftmost characters of string with a length
specified by integer.
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 250, i2
Supported series controllers (except i2885, i2887), and CyberStation.
Alias LEN
Products ACX series, BACnet series (except b3885, b3887), CMX series, CX series,
Supported 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,
only 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 case,
continued 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.
Note: When you use View Programs in a CX series controller menu system,
one column tells you the line each executing file is on. If you use words for
line labels, rather than numbers, the View Programs information becomes
readily understandable. Labels such as COOLING or HEATING tell you
exactly what the controller is doing.
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 series,
Supported 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.
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.
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.
00 250 SCREEN 00
0 0
00 00
00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0 0000000000000 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
0 0
Figure 7-13. Graph drawn with LINEPOINT.
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
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
ENDPOLYLINE
00 250 SCREEN 00
00 00
00 00
00 00
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 00
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
Figure 7-14. Polygon drawn with LINEPOINT.
Example 3 You can use an array of values to create a graph with LINEPOINT. First
you 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 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000
continued
0 0
00 00
250 SCREEN
00 00
00 00
00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00
00 0 0 0 0 0 0 0 00 00 00 00 00 00 00 00
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
0 0
Figure 7-15. Graph drawn with LINEPOINT using and array of values.
To magnify the differences between the values, and to center the graph
vertically, you can multiply the temperature values by 2, changing the
program as follows:
Program File
SETDISPLAY (NOFILL)
BEGINPOLYLINE
FOR INDEX = 1 to 5
LINEPOINT INDEX *20, OUTSIDEAIR[INDEX] *2
NEXT INDEX
ENDPOLYLINE
Now, 45 becomes 90, 60 becomes 120, and so on, so the vertical distance
between values is greater.
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 LOCATE
continued
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000
keyword.
0 0
00 250 SCREEN
00
00 00
00 0 0 0 0 0 0 0 0 0 0 0 0 0 00
0 0 0 0 0 0 0 0 0 0 0 0 0
00 0 0 0 0 0 0 0 0 0 0 0 0 00 00 00 00 00 00 00 00
00 0 0 0 0 0 0 0 0 0 0 0 0 0
00 00 00 00 00 00 00 00
00 00
0 0
0 0
000000000000000000000000000000000000000000000000000000000000
Figure 7-16. Expanded vertically centered graph drawn with LINEPOINT
using and array of values.
Related BEGINPOLYLINE
Keywords ENDPOLYLINE
LOCATE
Modes Programs
Available
Format LN (integer_expression)
Products ACX series, BACnet series, CX series, DCX 250, i2 series, LCX series,
Supported SCX series, TCX series controllers, and CyberStation.
Format 2: LOAD -o
Format 3: LOAD -m
Format 4: LOAD -o -m
Purpose Note: You must use this statement on a computer attached to a comm port
on the CX series controller. The computer must be running a terminal
emulation program, such as HyperTerminal. For information about how to
use LOAD on a CyberStation, see the next LOAD (Statement on
workstation) keyword description on page 193.
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.
Format 2: Updates any existing points or creates points, files, or other items
on the controller using the information from the dump file. The “o” stands
for “overwrite.” Overwriting is similar to recording over information on a
tape recorder.
Format 3: While loading, sends messages about any errors that occur to a
Messages window. The "m" stands for "message".
Format 4: While loading, erases any points, files, or other items on the
controller and replaces them with information from the dump file and also
displays messages about errors that occur. The messages appear in the
Messages window.
Remarks You must use a communication package with an ANSI terminal emulator
such as HyperTerminal in order to send a dump file from a computer on the
network to the controller. The dump file must be sent either immediately
before or after you enter the LOAD command into the controller's command
line window.
On a CX series or CMX 220 controller, the LOAD command allows up to
60 seconds to start receiving the dump file.
Once you have sent the file from the computer, you return to the talk-through
mode on the computer so that you can resume working with the controller.
(Refer to Appendix C for information on how to set up an ASCII file to
load.)
Example 1 In the following example, you load a dump file onto a controller so that it
adds to the items on the controller, but 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 In the following example, you load 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
On the terminal, 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: ctrlinfo
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
On the terminal, 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: ctrlinfo
Example 4 In the following example, the dump file replaces any points, programs, or
other items on the controller with information from the file, and the
controller 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.
On the terminal, 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: database
Related SAVE
Keywords
Alias RELOAD
Purpose Note: You must use this statement on a workstation. running CyberStation
software. The workstation must store the database or be networked to a
server that stores the database
Format 1: Updates any existing points or creates points, files, or other items
on the controller using the information from the dump file. The “o” stands
for “overwrite.” Overwriting is similar to recording over information on a
tape recorder.
Format 2: Loads the information you indicate but first displays a window
where you confirm your choice of controllers to reload. The “c” stands for
“confirm.” When you use LOAD from the command line, you do not have to
use this format; LOAD automatically gives you the confirmation window. If,
however, you use LOAD in a program, to have a confirmation window
appear, you must use this format.
Format 3: Loads the information you indicate using any combination of the
“options” from the above formats: –c (confirm). The –o (overwrite) is
always required.
You can use LOAD from the command line or in a program. If you use it in
a program, you must use LOAD 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 load.
Once you begin the LOAD, you can see the actions listed in the Distribution
Properties window on the CyberStation.
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, you give the name of the controller and
then -o, as follows:
Command Line
LOAD Floor1 –o
Example 2 In the following example, from a workstation, you load only the information
about the TEMP1, TEMP2, and TEMP3 points into the FLOOR1 controller:
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, indicating 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.
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.)
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 LOCATE is
continued 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.
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000
00 250 SCREEN 00
00 00
00 00 0 0 0 0 0 0 0 0 00 00
00 0 0 0
0000000000 0000 0 0 0 0 0
OPEN VALVE
0 0 0 0 0 00
0 00 00 00 00 00 00 00 00 00 00 0 0 0 0 0
Lower left corner at 125, 105
0
00 00
00 0 0 0 0 0 0 0 0 0 0
CLOSE VALVE
0 0 0 0 00
Lower left corner at 125, 85
0 0
000000000000000000000000000000000000000000000000000000000000
Figure 7-17. Using the LOCATE function to label buttons.
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
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000
The title appears where you position the text as shown in Figure 7-18.
00 250 SCREEN 00
0 0 0
00 0
Outside Air Temp–Occupied Hours 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70 00
00 00 00 00 00 00 00 00 00 0 0 0 0 0 00 00 00 00 00 00 00 0 0 0 0 0 0 00
00 00 0000000 00
50
0 0 0 0 0 0 0
30
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
8 10 12 14 16
0 0
Figure 7-18. Using the LOCATE function to label a graph.
For the temperature scale along the left side, you must place each
temperature individually. For the horizontal list of hours, you can use a
single LOCATE statement followed by a single PRINT statement.
Related PRINT
Keywords
Modes Programs
Available
Products ACX series, BACnet series (except b3885, b3887), CX series, DCX 250, i2
Supported 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.
Items in the list must all be either numeric expressions, numbers, or variables
that contains 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 MAXIMUM function finds the maximum number in a list of variables
as follows:
Program File
TOPNUMBER = MAXIMUM (ZONE1, ZONE2, ZONE4)
The TOPNUMBER variable is assigned the maximum value found.
Example 2 You have 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 series,
Supported 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.
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, you give the log
name in parentheses:
Program File
MAXITEM (TEMP)
Example 3 To find the index position of the largest number in an array, you give the
array name in parentheses:
Program File
MAXITEM (KW)
Example 4 You find the position of the highest of several temperatures in a list,
including the current value of TEMPLOG, as follows:
Program File
HOURLYAVG = MAXITEM (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 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Format MESSAGEWINDOW
All PRINT statements automatically send text to the message window unless
you change the default port of a program to either a printer or the Status line
(see the StatusLine keyword).
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. You 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 when the AC power failed. 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 and 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.
Purpose Returns a string number characters long extracted from string starting at
offset.
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 250, i2
Supported series controllers (except i2885, i2887), and CyberStation.
Remarks Replace numeric_list with one or more numbers or names that stand for
numbers.
Items in the list must all be either numbers, numeric expressions, or variables
that contains 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 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 series,
Supported 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.
Format 3: Finds the index position of the smallest number in the array.
Remarks Replace numberic_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, 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 smallest 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
MINITEM (TEMP1, TEMP2, TEMP3, TEMP4)
The MINITEM statement returns 1, because the first item in the list contains
the smallest number.
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 (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 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported 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.
Example The TEMP.CHECK and TEMP.REPT programs now run at 30 minutes after
continued the hour every hour of every day, 24 hours a day and 365 days a year.
Related HOD
Keywords HOUR
SECOND
TOD
Alias MIN
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Alias REMAINDER
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Format ModemPower
Purpose A predefined variable that you set to OFF to turn off battery power to the
modem inside the door of the CX series controller. You 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 becomes 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
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 ModemPower to OFF.
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
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 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Remarks Replace output_point_list with one or more output point names or variables
with commas between them. Top and bottom of scale must be set for each
point.
Replace number with any number or expression, including a date and time
or name that stand for one.
Example 2 For this valve, assume engineering units of 0 to 1 where 0 is closed and 1 is
open and corresponding electrical units of 0 to 20 mA. Moving the setting
of Valve2 to 50% gives .5. At .5, the valve is set to the corresponding value
of 10 mA.
Program File
MOVE Valve2 To 50%
Related SET
Keywords
Alias MODULATE
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Format NewAlarmCount
Purpose Variable the controller maintains that 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.
Remarks The controller automatically updates NewAlarmCount and you cannot set it.
Even when the NewAlarmCount is disabled, the controller updates it.
The number increments (increases by one) each time a new alarm occurs.
After the alarms are sent to a workstation, subtracts the number delivered
from the NewAlarmCount.
If the controller fails to deliver the alarms to the workstation, and the
controller has subtracted them from the NewAlarmCount, it adds them to the
total once again.
The controller also adjusts NewAlarmCount when you take any of the
following actions:
• Delete the point an alarm is associated with
• Delete an alarm (that has been counted) from the workstation
• Change a point (via the workstation) so it no longer associates with
the alarm
NewAlarmCount retains the number of undelivered alarms even when the
controller goes off-line or the network is down.
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 series,
Supported 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 series,
Supported 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 250, i2
Supported 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.
Remarks The local OBJECT variable is somewhat like a numeric, string, or datetime
local variable—only it stands for any item (also called an object) in a
workstation, network controller or Infinet controller. The local OBJECT
variable name can be up to 16 alphabetic and numeric characters, as long as
it begins with a letter of the alphabet.
Example 1 You 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 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
Remarks OFF is always numeric, so it can be compared to input, output, and numeric
points or variables in a comparison expression.
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Format ON
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Format -ON
Remarks -ON is always numeric, so it can be compared to input, output, and numeric
points or variables in a comparison expression.
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Purpose Lets you direct information to or from a comm port, rather than
automatically sending that 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 that you wish to use can also be the
path to a comm port. 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.
Once you open a comm port with OPEN, after you complete
communications on that port, 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 variable RCV_STRING
READ (COMM1,80,RCV_STRING)
ELSE
PRINT "OPEN COMMPORT FAILED" TO TERMINAL1
ENDIF
7-236 Andover Controls Corporation
OPEN, continued
Example In the situation shown in this example, you can check 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 an 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 then open a text
file to act on under that name 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
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.
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. In that 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).
Replace object_var with a local OBJECT variable you defined earlier with
the OBJECT statement. The variable cannot stand for an already opened list.
Remarks The classes are each spelled a particualr way and are listed below.
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 then 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.)
You do not have to give the name of the controller if it is the one the
program is running on. 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.
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 then 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 do this 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 the list
of Infinet controllers, and the last 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.
It is important to note that if you put the same program on an CyberStation,
the program would not give the same results. Why? Because on a
CyberStation, it would give all the CX controllers and CyberStations under
the current site.
Example 5 If you wanted all controllers and workstations on all sites, you would have to open the
continued site list first.
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:
IFOpenList("InfinityProgram", CurrentProg, InetCtlr) = success~ THEN
Count = 0
GOTO CheckProg
ELSE
Print "Cannot Open Program List: ", EnetCtlr NAME, InetCtlr NAME
GOTO GetInfinet
ENDIF
7-248 Andover Controls Corporation
OpenList, continued
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 a description of exactly 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, then gets the first CX (EnetCtlr) controller.
Example 5 If the GETOBJECT successfully retrieves the Infinet controller, the control
continued system software opens the list of programs on that controller. It then gets the
first program.
If the first program is disabled, the control system software prints the
program name and 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.
And 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 and 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
Products Format 1: BACnet series (except b3885, b3887), CMX series, CMX series,
Supported i2 series controllers (except i2885, i2887), and Cyberstation
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.
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 exist, you use OR
between the numbers, so 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...
Example 4 If OR occurs before AND, the system software interprets OR first because it
works from left to right on AND and OR. For instance, take this statement:
Program File
IF WKD = Sat OR WKD = Sun AND TOD > 900 THEN…
The above statement is interpreted so that the items in parentheses below are
calculated first:
IF (WKD = Sat OR WKD = Sun) AND TOD > 900 THEN…
If AND occurs before OR, the controller interprets AND first:
IF TOD > 900 AND WKD = Sat OR WKD = Sun THEN…
is interpreted as:
IF (TOD > 900 AND WKD = Sat) OR WKD = Sun THEN…
Related AND
Keywords IF..THEN..ELSE
IS…
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported 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 you are currently working on. 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).
This keyword is most useful in the command window. However, you may
use it in a program.
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
actually passed and FALSE (numeric 0) if it is not.
Example You can create a function that takes an argument and check 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 series,
Supported 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 PlaybackMode altogether.
Example 1 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 series,
Supported SCX series, TCX series controllers, and CyberStation.
Remarks Once you have opened the file with OpenFile, a new read or write process
(READFILE or WRITEFILE) automatically starts at the top of the file
(FILEBEGIN) without you 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.
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 (–).
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. You 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:
You know that the controller name is 8 characters from the beginning of the
file because the time is stored in the first 5 characters and followed by two
spaces. The controllers are listed in order, so the first one in the file is the
first one that deviated from setpoint.
PositionFile tells ReadFile to start reading at the eighth character from the
beginning of the file, which is the first line starting with "Building2..." When
ReadFile reads 16 characters, it retrieves "Building2 Room8" from the first
line of the file and places it in the DATALINE string.
You could have PositionFile set the starting position from FILEBEGIN, but
since ReadFile begins at the beginning anyway, you can have PositionFile
set the starting position from FILECURRENT, so that when the control
system software loops, it always moves to the beginning of the next record
then to the eighth character.
The complete program, called ZONEREADING, follows.
Program File
FILE ZONEDATA
STRING 80 DATALINE
NUMERIC CHARS, OK
LINE Opening
IF OpenFile ("c:\text\zone.txt", READONLY, ZONEDATA) = ~
FAILURE THEN
PRINT "File Open Failed"
STOP ZONEREADING
ELSE
GOTO Positioning
ENDIF
LINE Positioning
IF PositionFile (ZONEDATA, 8, FILECURRENT) = FAILURE ~
THEN
PRINT "Start Positioning Failed"
Example 2 To set the position to start 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, to reset the position to
start writing at the beginning of the file, use 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, 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 can continue to run on battery backup while power is
down. The only Infinet controller that can run on battery backup is the 780.
Remarks Most often used in programs to determine whether or not AC power is down.
On CX series controllers and the 780 controller, POWERFAIL turns off as
soon as AC power is restored. On all other Infinet controllers, POWERFAIL
remains on until after the first scan following AC powerup, then sets to OFF.
Example You 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 series,
Supported 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 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Purpose Prints a series of characters (text strings, often called simply “strings”) to the
printer, string object or message window on the given communications port.
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.
Format 1: Prints a string of text to the default comm port of the program or
report.
Format 3: Prints the variables, points, or other expressions in the list in the
format you specify.
Purpose Format 5: Prints any of formats 1 through 3 above, printing the next PRINT
continued statement on the same line because semicolon means “stay on the same
line.”
Replace list with 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.
Replace commport with the name of a printer. You do not have to include
commport. The printer cannot be a printer queue.
The semicolon (;) is optional. If you end a PRINT statement without the
semicolon, the next line you print starts on a new line. If you want to print
two strings one after the other on the same line, you must end the first with a
semicolon.
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.
⏐numeric_ constant Produces the ASCII code that corresponds to the numeric
constant. For example, |7 would produce a bell or beep if
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
continued No. Program File Output /Explanation
7 PRINT "⏐##,###.##", TOTAL_WATTS 1,340.00 / Leaves one
leading space. Adds the
comma after the 1 and
has two zeros after the
decimal.
Examples 1-21
continued No. Program File Output /Explanation
15 PRINT "⏐##.##-", -88.80 88.80- / Prints trailing
minus sign if the number is
negative and the trailing plus
sign if the number is positive.
Prints all trailing zeros.
20 PRINT "The value is set to ⏐%### open.", The Valve is set to 45%
WATER_VALVE open. / Prints the value in
engineering units as a
percentage of the scale for the
point. This format works best
with a scale of 0 to 1, where 0
is fully closed and 1 is fully
open. So, if the value is 1, the
statement prints 100%. If the
value is .45, the statement
prints 45%.
Examples 1- 21
continued No. Program File Output /Explanation
21 PRINT "Date:", MONTH, ",DAYOFMONTH, Date: December 4, 2001
", ", YEAR
PRINT " " Test Report / Prints the
PRINT "Test Report" date. Commas must separate
each group of literal text.
Notice that the only place a
space appears is immediately
after the word Date. You must
specify the blank space in
quotation marks.
Also prints a blank line
between the date and the
report title. If you use the word
PRINT with one blank in
quotation marks after it, then
the entire line prints as a blank
line (as long as you don't put a
semicolon at the end).
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 that ASCII file, PRINT can refer to
the file by the local FILE variable name and put data in 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
Products BACnet series* (except b3885, b3887), B4920, CMX series, CX series, i2
Supported series* (except i2885, i2887), DCX 250 controllers, and Cyberstation.
Purpose Returns a random number from 0 to 32,767 using number. Used to simulate
real-life values to test programs.
Alias RND
Products BACnet series (except b3885, b3887), CMX series, CX series, i2 series
Supported (except i2885, i2887), DCX250 controllers, and Cyberstation.
Purpose Reads characters from a communications port and places them in a string.
Returns SUCCESS or FAILURE. You should test for
SUCCESS or FAILURE in the line immediately following READ.
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 that you
want to read information from.
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).
Remarks Replace end_char (optional) with a single character that indicates the end of
continued 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. You 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 ReadFile automatically starts retrieving data where it last stopped unless you
specify that it must start at another position, such as the beginning or end of
the file. You can also specify a particular number of characters to move
away from the current position, beginning, or end of the file with
PositionFile.
Remarks You might, in another case, have a comma between pieces of data. You can
continued then 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. 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. It reads 80 characters and stores the contents of 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 ZONE.READING
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.
It 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 very much the way the last example did.
Example 3 In this example, you first create a FILE variable named 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.
Example 3 It reads until it reaches the comma (you designate the comma with quotation
continues 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 ZONE.READING
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 ZONE.READING
Example 3 This program functions very much the way the last example did, only each
continued time the program goes to the PRINTING line, after the program prints what
it read, it sets where to start reading in the file as 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.
You must connect to an ACX controller before you can print ReaderPower
from the command line. Or you can access ReaderPower using the full path.
Example 1 To see if any card reader on an ACX series controller has lost power, you
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 every time a card reader on an ACX series controller loses power you
want to take a particular action, then you would use ReaderPower in a
program as follows:
Command Line
IF Door4 ReaderPower is True THEN Run Door4Emergency
This example gives the path from a CX series controller to the Door4 of an
ACX 781 controller.
Replace Priority with the priority number, ranging from 1 (highest) to 16 (lowest).
Applies only to a BACnet commandable property. If not present, the property
value that matches with priority 10, if applicable, is used for controllers. For
CyberStations, the priority from the BACnet Preferences is used.
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
Example If you want to print all the values in an array, you could do the following:
Program File
REPEAT
Print OutsideAir[Count]
Count = Count + 1
UNTIL Count = OutsideAir
Related Break
Keyworks Continue
Products ACX series, BACnet series, CX series, DCX 250, i2 series, LCX series,
Supported SCX series, TCX series controllers, and CyberStation.
Modes Programs
Available
Purpose Format 1: In a function file, returns program control to the calling program.
Format 2: In a function file, returns the number, and sends it to the calling
program.
Format 3: In a function file, returns the contents of the variable.
Remarks The optional number is any number or expression, including a date and time
or name that stands for one.
If you expect to use the results of a calculation in more than one program,
you set up a function file and put the calculation instructions in it, creating a
function. When you need the function in a program, you call the function by
using the file name as if it were any other keyword verb.
Later, the RETURN statement tells the function the value to return to the
calling program.
If you omit the number, the function returns a numeric 0.
Example 1 You 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, returning a numeric 0 because you supplied no
arguments on the RETURN statement.
Example 1 The statement that calls SHUTDOWN in the calling program looks like this:
continued
Program File
SHUTDOWN( )
Example 2 To create a function called GetArea that calculates the cross-sectional area of
a circle, name the function file AREA and enter the following in the function
file:
Function File
ARG[1] RADIUS
RETURN (3.14159 * (RADIUS^2))
You pass the radius into the function file from the calling statement in the
main program. Here is a sample calling statement:
Program File
VOL = GetArea(RADIUS) * LEG
This statement calls the AREA function, giving it the radius, which it
requires to calculate the area.
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 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Modes Programs
Available
Purpose Returns a string containing the rightmost characters of the string, starting
integer characters back from the end.
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.
Alias LAST
Products BACnet series, CMX series, CX series, DCX 250, i2 series controllers
Supported (except i2885, i2887, i3885, i3887), and Cyberstation.
Remarks Replace program_list with one or more program names with commas
between them.
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.
A program can also rotate itself to another line. In this situation, ROTATE
becomes a synonym for GOTO. (See the GOTO keyword.)
Example 1 If you have a series of programs you want to start every Monday morning,
you could 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
Example 3 To rotate the Heating program to an "English-like" line label, you rotate the
program from within itself:
Program File
ROTATE HEATING TO WINTER
Related LINE
Keywords RUN
STOP
Alias ROT
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Purpose Rounds number to the nearest integer and returns that value.
ROUND, CEILING, FLOOR, and TRUNCATE are similar, but differ in the
following ways:
• ROUND rounds up if the decimal is .5 or higher and down if the
decimal is below .5. ROUND (–1.7) gives –2 (see Figure 8-20 below).
• CEILING always rounds up. CEILING (–2.7) gives the closest higher
number on the number line, –2.
• FLOOR always rounds down. FLOOR (–3.8) gives the closest lower
number on the number line, –4.
• TRUNCATE cuts off the decimal value. TRUNCATE (–3.8) gives the
integer without the decimal, –3.
00 0 0000 0 0 0 0 00 0
-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.
Purpose Format 1: Begins executing the program, or function you specify at the first
line, even if it is already running. This statement, in a command line or a
program, controls the control system software.
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. You use this
statement only inside a program.
Purpose Format 8: When running a program, function, or report, prints the results of
continued all PRINT statements into an ASCII file and adds (appends) them onto the
end if the file already contains text.
Remarks Replace file_list with any program, function, report, or list of them
(separated by commas).
Replace point_list with any defined output point or list of output points. May
also be input or numeric points.
Replace printer with a printer that has been defined. You must enclose the
name of the printer in quotation marks.
Replace file with a file on a workstation. May have characters in its base
name and a suffix, based on the conventions of file naming. The file name
must be in quotation marks. If you have not already created the file, the
control system software creates it when you make the RUN statement (see
Example 5).
With an output point (Format 2), actually starts the piece of equipment.
With an input point, sets the point to the top of the scale defined for it. With
a numeric point, sets the point to the highest number in the controller system.
You might RUN an input to test it when the input is not actually active.
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 You can use RUN to print a report on an printer named, for example,
LPT1Q:
Program File
RUN DAILYREPORT TO "LPT1Q"
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 results of running the humidity report to the end of a file
named HUMID.RPT and not write 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 3: Saves all the items on the connected controller belonging to the
type or types listed.
Format 4: Saves all items from all CX controllers on the entire EnergyNet,
including the CX controller you are operating or are connected to. Saves
them with a “dictionary” listing their names and types.
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 controllers on
continued the entire EnergyNet and all Infinets. Saves them with a “dictionary”. This
format combines Format 4 and Format 5.
Format 7: Saves only a “dictionary” of the items you indicate, listing their
names and types.
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 to be saved. The type of an item is that it is an input or
output point, program or data file, or similar type.
The dictionary ensures that the controller knows point or programs or other
items referred to by other programs or other items. For instance, if you save
all programs, the controller requires a “dictionary” of all points referred to.
Example 1 You can save all items on the entire controller by using ALL:
Command Window on Controller
SAVE ALL
Example 1 If you are saving from a CX controller terminal, within 60 seconds you type
continued a command to receive the file from the communications package on the
computer. The command is determined by the communications package
used. The following is a capture command from CROSSTALK that saves
the file to a disk in drive B:
Host Computer Running CROSSTALK
capture B: points
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 7
ImportExport : Floor1
continued
Floor1 OutsideAirTemp To 2, 4-6, Floor1
Floor1 Room1 NextUnOccTime To 4, 6, 8-9, Floor1, Infinet1
EndImportExport
EndDictionary
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
The following example saves all numeric items on the connected controller,
and sends messages about errors that occur to a message window:
Command Line
SAVE NUMERIC -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 errors 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 4: Saves only the site, controller, or Infinet controller you indicate,
without any of its objects.
Format 5: When saving objects to the database or the dump file, overwrites
any already-existing objects.
Format 6: When saving objects to the database or to the dump file, checks
to be sure any points that are being taken in from another controller or sent
out to another controller are valid.
Replace controller with the name of the controller from which the objects
are to be saved from (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 to create
continued and store the data in. 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 later when you load a controller, 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.
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 To create a dump file of the FLOOR1 controller and all its Infinet
controllers, you would include the –b option, as follows:
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 To update an existing dump file for the BoilerPanel, since you want to
overwrite any old data with the new data, you would include the -o option, 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, you would 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 would use 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
You might want to save the controller to the database before creating the
dump file.
Related LOAD
Keywords
Alias DUMP
Products CyberStation.
Supported
Format SCAN
Purpose Is a variable that the controller updates regularly. 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.SCAN.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.SCA/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 seconds that scan took 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 get 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 per day
continued 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 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Purpose Returns the position of the given search_string within string or 0 if the
controller can’t find the search_string.
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.
Products BACnet series, CMX series, CX series, i2 series controllers (except i2885,
Supported i2887, i3885, i3887), and CyberStation.
Format SECOND
Purpose Gives the exact number of seconds of the current minute, from 0
to 59.
Remarks The number of seconds is as indicated by the controller clock. If the time is
10:02:12, then SECOND equals 12.
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 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Products CyberStation
Supported
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.
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 AREA 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 like this:
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.) In the example below, you disable some input points, then set 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 series,
Supported 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 You set the display before you begin drawing. The display remains as you
set it until you set them 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 to
continued 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 runs one or
more programs named as string expressions from the Command Line or
from inside a CyberStation program.
Remarks The string_list can be any single string or a list of strings (with commas
between them) containing programs. 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,
you may omit the suffix.
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) the program is stored on.
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 4 To run any Presentation Manager program followed by arguments, you can
continued use SHELL with a string that calls the program and its arguments.
For example, to edit the dbase.txt file, stored on disk drive C, enter the
following:
Command Line
Shell "edit c:\dbase.txt"
The system editor window opens inside the control system software as
shown on Figure 8-21.
This command works as long as the path to the edit command is in your
config.sys file.
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 Controls Plain English statements.
Sites and controllers open to the window you defined them in. (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
Remarks Replace object with the name of a program or a listview. Programs must
include the file path. Listviews must contain an associated HTML template
file and an HTML browser must be installed on the CyberStation.
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.
Products CyberStation.
Supported
Remarks The number is any number or expression. The number represents an angle
in radians.
Alias SINE
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported 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 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Purpose Finds the standard deviation of a series of numbers. The standard deviation
is the result of the following steps:
• Find the average of the list.
• Find the differences between the average and each number. If the
average is 110 and one of the numbers is 112, that difference is 2.
• Square the differences, so 2 becomes 4.
• Add up the squares and find the average of them.
• Take the square root of the average.
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 contains
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 To find the standard deviation of several temperatures, you place them
directly in the STANDARDDEVIATION statement. You list them in
parentheses as follows:
Program File
TEMPDEV = StandardDeviation (70, 72, 74)
The standard deviation returned is 1.63299.
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 it off if OFF. You label the
numbered status light on the controller with the event, program, or similar
item it indicates the status of.
Remarks Replace number with number or expression that gives the number of the
status light on the front door of the CX 9201 controller, up to 8. If number
is greater than the highest status light number, the controller does not
recognize the word.
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
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 the scale that has been
defined for it. 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.
With an output point, actually stops the piece of equipment. With an input
point, sets the point to the bottom of the scale defined for it. With a numeric
point, sets the point to the lowest number in the controller system. You
might STOP an input after you RUN it to test it when the input is not
actually active.
Example 1 You can STOP a program from inside a program in response to a certain set
of conditions. For instance, to halt the HEAT.PROG after 8 p.m.:
Program File
IF TOD > 2000 THEN STOP THE HEAT.PROG
If you do not name a program after STOP, the controller assumes you mean
the current program.
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 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Purpose Creates and defines one or more names as local string variables. You 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.
If you do not give a string_length, the string is given the default length,
which are 16 characters.
Example 1 To set a string variable, you must first define it using STRING. To define a
single string variable of the default length, you enter this program line:
Program File
STRING FILENAME
Example 2 To have a program read information from a file containing text, you would
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 250, i2
Supported series (except i2885, i2887) controllers, and CyberStation.
Modes Programs
Available
Purpose Returns a string of number length containing a particular character that you
specify with the ASCII character code named by charactercode.
Remarks Replace number with any number or expression. Gives the length of the
string.
Replace charactercode with the ASCII character code of the character you
want to fill the string. See Appendix A for a list of ASCII codes.
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.
The system uses this date_time to process information about the date and
time. If you print a variable that is equal to a STRTODATE, you
receive the date_time.
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. You may position the time
before the date on that line, if you prefer.
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)
Purpose Converts a string that contains a number in a string variable or other string
form to a numeric variable so it can be used in mathematical operations.
Returns the converted numeric value.
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, you 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 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 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 PARTTME. 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 series,
Supported 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 1 If you want to see whether or not communication is occurring between the
access server and the Door1 access controller, you can type the following on
the command line:
Command Line
PR Door1 SystemStatus
The system responds as follows if no communication is occurring:
Door1 SystemStatus = NoComm
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)
Purpose Returns a series of continuous blank spaces. The number of blank spaces is
number.
Remarks The number is any number or expression. The number represents the
number of spaces you want to push the printed text to the right, as on a
typewriter. Must be less than 132.
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
Remarks The number is any number or expression. The number represents an angle
measured in radians.
Radians = degrees TIMES (3.14159/180).
Degrees = radians TIMES (180/3.14159).
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 To have a lead pump run for 3 days, 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 series,
Supported 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 then run the lag fan, you would 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 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Modes Programs
Available
Remarks The name is any point, piece of equipment, terminal, computer, or printer.
THE can precede a name only. It cannot precede a keyword that designates
an action (verb).
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported 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.
Replace datetime_name with any variable, date and time, including datetime
variables and points and the DATE system variable.
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 series,
Supported 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 series,
Supported 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.
Example To have a 5-minute warmup of a fan before turning on the pump, you would
check to see if the fan has been running for 5 minutes after you activate it:
Program File
LINE WARMUP
TURN ON FAN
IF TM = 5 THEN GOTO RUNNING
LINE RUNNING
TURN ON PUMP
The controller measures 5 minutes 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 series,
Supported 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., you 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 12-hour time followed by a.m. or p.m.:
Program File
PRINT TOD
The time appears as follows:
8:00:00 pm
Related HOD
Keywords HOUR
MINUTE
Alias TIMEOFDAY
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported 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
00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 000 0 0 0 0 0 000 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 000 0 0 0 0 0 0 00
The cells on the 250 screen are as shown on Figure 8-22.
00000000000000000000000000000000000000000000000000000000000 0
1 2 3 4 5 6 7 8
00 00 00 0 0 00 00 0 00
00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 000 0 0 0 0 0 000 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 000 0 0 0 0 0 0 00
9 10 11 12 13 14 15 16
00000000000000000000000000000000000000000000000000000000000 0
49 50 51 52 53 54 55 56
0 0 0 0 0 0 0 0 0
000000000000000000000000000000000000000000000000000000000000
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.
Example 1 You determine whether or not an operator has pressed a particular button on
the screen, by comparing the value of TOUCHEDCELL (the last touched
cell) to the cell that button appears on.
For instance, on the graphic shown in Figure 8-23, the first button is on
000000000000000000000000000000000000000000000000000000000000
00 0 0 0 0 0 0 0 0 0 0 0 00 00 0 00
00 0 0 0 0 0 0 000 0 0 0 0 0 0 00 0 0 0 0 0 0 000 0 0 0 0 0 000 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 000 0 0 0 0 0 0 00
Room2 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 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Format TS
Purpose Contain the number of seconds (Time in Seconds) that have elapsed since
the program has been on the current line. The total is stored as an IEEE
floating point number.
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 series,
Supported 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 THE 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 series,
Supported 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. Or you can 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 series
Supported controllers.
Purpose From a controller, if a phone number is provided, dials the phone number to
contact a workstation and pushes alarms and events to the workstation. If
the phone number is an empty string, Update assumes that a PE program
has already opened the port and established a connection. After update, the
controller sends Alarm Event Update packet to the workstation which then
polls for alarms and events. You indicate the port where the Infinity modem
is connected on the controller.
Remarks UpDate applies only on an Infinity controller with a modem. UpDate always
pushes alarms and events to the workstation.
You can use UpDate in a program, but not on the Command line. When you
use UpDate from a program, you must use it on a labeled line by itself. After
it executes, UpDate automatically moves the program to the next labeled
line. The next labeled line should then test for the returned results of
UpDate.
Update automatically dials the call to the modem if you provide a valid
phone number string, so you do not use it with the dial keyword.
CAUTION
!! Update momentarily changes the port to RAW mode,
while it is dialing. However, while the port is in Raw mode,
you cannot sent 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’ then 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.
Replace timeout with the number of minutes that the system waits before it
starts the PPP session. If you do not give a timeout, it is automatically set to
0. The maximum you can set the timeout to is 255 seconds. If you set it to a
greater number of seconds, UpDate automatically sets the timeout to 225.
Can also be a numeric point or local numeric variable set to the number of
seconds.
UpDate can return any of the following results:
PushUpdates:
UpdateStatus = UPDATE ("acc:acc", "122"', comm3, 4)
CheckUpdate:
If UpdateStatus = Success Then GoTo Endprog
FailedAttempt = FailedAttempt + 1
AltUpdate:
UpdateStatus = UPDATE ("acc:acc", "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 is off
continued 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 UdDate 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'sGuide 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.
Replace datetime (optional) with the datetime point or local variable that the
software automatically sets to the next time the extended log needs to be
updated. This point or variable gets its information from the extended log
setup information of the point, group, or controller. If you do not provide a
datetime point or variable, UpdateExtLog does not return the next date and
time to update the extended log.
When do 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 you
continued 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.
What is the maximum number of entries you can have in an extended log? It
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 statement
continued 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 would 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, when the
continued 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 Suppose you want to update all of the extended logs on the Floor4 controller.
You would 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. Below is a fallthru program
that opens a list of points on the Floor4 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:
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.
For further information on getting point with GetObject, see the OBJECT,
OpenList, GetObject, and CloseList keywords.
Related DeleteExtLog
Keywords
Products CyberStation
Supported
Format VERSION
Purpose Gives current version of the software running on the CX series controllers or
Infinet controllers.
Remarks You cannot change the value of VERSION. The control system software
updates it automatically when you update your control system software.
Example If you contact Andover Controls Technical Support for assistance, you may
be asked the version of control system software you are running. To
determine the version, type the following on the command line:
Command Line
PR VERSION
The controller responds with the following message:
Version = 1.3
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
Format WEEKDAY
Remarks When printed, the weekday is spelled out as Sunday, Monday, Tuesday,
Wednesday, and so on through Saturday. You may, however, compare the
WEEKDAY to:
• The numbers 1 through 7 (1 equal to Sunday).
• The abbreviated three-letter names (first three letters).
• The entirely spelled out weekday.
All values of the weekday are as follows:
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 IS > SUN OR WEEKDAY < 7 THEN…
Alias WKD
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported 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.
Replace number with any number or expression, including a date and time
or name that stand for one. If the number is TRUE (non zero) the while loop
is executed. If it is FALSE (zero) , the while loop is not executed. If the
number is a variable it can be changed inside the while loop to cause the
loop to terminate.
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 series,
Supported 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.
Remarks WRITEFILE automatically starts writing data where it last stopped unless
you specify that it must start at another position, such as the beginning or
end of the file. You can also specify a particular number of characters to
move away from the current position, beginning, or end of the file with
POSITIONFILE
Replace number with the number of characters to write into the file from the
string. May be any number or expression that gives a number up to 129.
After you created a FILE variable name and you open a file with
OPENFILE, you can then write into the text file with WRITEFILE.
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), and
the number of characters in the string (80), and a numeric variable to receive
the actual number of characters written (CHARS).
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
OK = WriteFile (ZONEDATA, RECORDLINE, 80, CHARS)
GOTO Closing
LINE Closing
OK = CloseFile (ZONEDATA)
IF OK = FAILURE THEN PRINT "A File Function Has Failed"
Example 2 To read multiple records from one text file and write them to another, you
would use READFILE, then WRITEFILE. Because you have two files, you
would create two FILE variable names. You call the file that the control
system software should retrieve data from ZONEDATA and the one it
should put data into SETPTFILE.
You would then want the control system software to read records until it
reaches the end of the file, so you would test for READFILE = EOF. The
Example 2 control system software should read 16 characters or until a carriage return
continued indicates the end of the record. (You could also use POSITIONFILE to set
the position to begin the action⎯ first for reading, then for writing.)
For each record (16 characters long), you would want WRITEFILE to put
the 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 to set the property 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.
Example To take an action in the distant future, such as sending a reminder message
to check certain pieces of equipment, you use the YEAR system variable to
test the year:
Program File
IF YEAR IS 2000 THEN PRINT "Welcome to the Twenty First Century."
Related DAYOFMONTH
Keywords DAYOFYEAR
YEAR
Alias YR
Products ACX series, BACnet series, CMX series, CX series, DCX 250, i2 series,
Supported LCX series, SCX series, TCX series controllers, and CyberStation.
ASCII Codes
General Information
Introduction 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 Interchange (ASCII). You use
these codes in a PRINT statement to control your printer or screen.
Examples You might use the ASCII code for a character in the STRINGFILL function.
You must give STRINGFILL the code for the character you want to fill the
string with.
For example to create a bar in a chart, you might fill a string with asterisks
using STRINGFILL and the ASCII code for asterisk, 42, as follows:
STRINGFILL (KILOWATTS, 42)
ASCII Code The ASCII Codes are listed in the following table:
Table
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
00 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 00 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 00
Code (in Decimal) Character or Action
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0
1
NUL
SOH
0000000000000000000000000000000000000000000000000000000000000000000
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2 STX
3 ETX
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
4 EOT
0000000000000000000000000000000000000000000000000000000000000000000
5 ENQ
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
6 ACK
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7 Beep.
00 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
8 Backspace.
9 TAB Forward.
0000000000000000000000000000000000000000000000000000000000000000000
10 Line Feed.
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
11
12
Vertical TAB.
Form Feed.
000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
13 Carriage Return.
14 SO
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
15 SI
00 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
16 DLE
17 DC1
000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
19 DC3
20 DC4
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21 NAK
00 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
22 SYN
23 ETB
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
24 CAN
25 EM
0000000000000000000000000000000000000000000000000000000000000000000
26 SUB
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
27 ESC
28 FS
00 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
29 GS
30 RS
0000000000000000000000000000000000000000000000000000000000000000000
31 US
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
32 Space.
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
33 !
0000000000000000000000000000000000000000000000000000000000000000000
34 "
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
35 #
00 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
36 $
37 %
0000000000000000000000000000000000000000000000000000000000000000000
38 &
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
39 ’ (apostrophe)
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40 (
41 )
0000000000000000000000000000000000000000000000000000000000000000000
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
42 *
0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
43 +
44 , (comma)
000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
46 . (period)
47 /
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
48 0
00 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
49 1
50 2
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
51 3
52 4
0000000000000000000000000000000000000000000000000000000000000000000
53 5
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
54 6
55 7
00 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
56 8
57 9
0000000000000000000000000000000000000000000000000000000000000000000
58 :
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
59 ;
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60
61
<
=
0000000000000000000000000000000000000000000000000000000000000000000
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
62 >
00 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
63 ?
64 @
0000000000000000000000000000000000000000000000000000000000000000000
65 A
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
66 B
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
67 C
68 D
0000000000000000000000000000000000000000000000000000000000000000000
69 E
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60 F
71 G
000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
73 I
74 J
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
75 K
00 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
76 L
77 M
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
78 N
79 O
0000000000000000000000000000000000000000000000000000000000000000000
80 P
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
81 Q
82 R
00 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
83 S
84 T
0000000000000000000000000000000000000000000000000000000000000000000
85 U
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
86 V
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
87
88
W
X
0000000000000000000000000000000000000000000000000000000000000000000
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
89 Y
00 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
90 Z
91 [
0000000000000000000000000000000000000000000000000000000000000000000
92 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
93 ]
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
94 ^
95 -
0000000000000000000000000000000000000000000000000000000000000000000
96 ‘
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
97 a
98 b
continued 99 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c
000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
100 d
101 e
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
102 f
00 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
103 g
104 h
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
105 i
106 j
0000000000000000000000000000000000000000000000000000000000000000000
107 k
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
108 l
109 m
00 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
110 n
111 o
0000000000000000000000000000000000000000000000000000000000000000000
112 p
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
113 q
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
114
115
r
s
0000000000000000000000000000000000000000000000000000000000000000000
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
116 t
00 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
117 u
118 v
0000000000000000000000000000000000000000000000000000000000000000000
119 w
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
120 x
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
121 y
122 z
0000000000000000000000000000000000000000000000000000000000000000000
123 {
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
124 |
125 }
0000000000000000000000000000000000000000000000000000000000000000000
127 DEL
Reserved Words
Overview
What Are Reserved words are those words used as system constants, keywords, system
They? functions, and system variables that are reserved as part of Andover’s Plain
English programming language. Being familiar with these words helps avoid
naming errors.
What’s in this This appendix lists all Andover Controls reserved words. A tabular listing of
Appendix 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 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.
Table of XdrvRemove
System XdrvRemoved
Constants, XdrvRun
continued XdrvRunning
XdrvStop
XdrvStopped
XdrvTransition
XonXoff
XonXoffCtsRts
X_Variable
Yearly
Years
YearToDate
YearToNow
Yesterday
ZoneNumberBased
Table of The following table lists additional Plain English reserved words consisting
Additional of system variables, system functions and keywords listed in alphabetical
Reserved order.
Words Note: As a programmer, you may not use any of these words as a line label
or program variable.
Above Breakpoint Disable Exp Len
Abs By Disconnect Exponential Length
AckAlarm Case Div Fact Less
Acos Cd Divided Factorial Let
Adjust Ceiling Does First Like
Advise Change Dom Floor Line
Alarms Chr Doy For LinePoint
All ClearScreen DrawEllipse Freemem Ln
Am Close DrawLine From Load
And CloseFile DrawRectangle GetExtLog Locate
Append CloseList Dt GetName Log
Arcsine CloseWindow Dump GetObject Logoff
Arctangent Cls E Go Logout
Arctangent2 Connect Either Goto Lookup
Arg Continue Else Greater Max
Asc Control En HangUp Maximum
Asin Cos Enable Hod Maxitem
Ask Cosine Encrypt Hour MessageWindow
Atan CurUser Encrypted HourOfDay Mid
Atan2 Curvefit End Hr Min
Average CurWorkstation EndIf If Minimum
Avg Date EndPolyLine ImportFile Minitem
Basedon DateTime EndSelect In Minus
Beep DayOfMonth EndWhen Include Minute
BeginPolyLine DayOfYear EndWhile Initiate Mod
Below Dde EnergyNet InitModem Modify
Between Del Equal Input Modulate
Bitand Delete Equals Inputs Month
Bitnot DeleteExtLog Erase Is Move
Bitor Dial Errors Kill Mth
Bitxor DiffTime Execute Last Mult
Break Dis Exists Left Multiplied
General Information
Introduction 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
Continuum The following table shows you a listing of the objects in Plain English.
Objects for the
Plain English • AccessEvent • ElevatorInfo • InfinitySystemVariable
Language • ActivityEvent • ErrorEvent • IOUModule
• ACXList • EventEnrollment • ListView
• AlarmEnrollment • EventLogControl • MultistateInput
• AlarmEvent • EventNotification • MultistateOutput
• AlarmInfo • EventView • MultistateValue
• AnalogInput • Filter • Network
• AnalogOutput • Folder • NetworkDialup
• Area • Function • Numeric
• AreaLink • Graphics • ParamInfo
• BinaryValue • Group • Personnel
• ClassName • GroupMember • Program
• CommPort • ImExportRef • RootClass
• ControllerUser • InfinityController • Schedule
• DateTime • InfinityDateTime • SecurityLevel
• Device • InfinityFunction • SecurityLink
• BinaryInput • InfinityInfinetCtlr • ShortCut
• BinaryOutput • InfinityInput • String
• DistributionBatch • InfinityNumeric • TemplateInfo
• DistributionObject • InfinityOutput • User
• Door • InfinityProgram
• DoorList • InfinityString
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 an
Table 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 - not currently
implemented
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
BinaryValue The following list provides you with the attributes and meanings for a
Attributes Table 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)
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 a
Attributes Table 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 a
Attributes Table 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 a
Attributes Table 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
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
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 Door
Attributes Table 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
Filter Attributes The following list provides you with the attributes and meanings for a Filter
Table 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 an
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 an
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 an
Variable 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 an
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
MultiStateInput The following list provides you with the attributes and meanings for an
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 an
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 an
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 an
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 an
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 an
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 an
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 an
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.
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
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 an
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
RootClass The following list provides you with the attributes and meanings for an
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 an
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
ActiveText Text to be displayed when object is in active state.
ActiveValue String used to indicate when schedule is active.
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
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
InactiveText Text to be displayed when object is in inactive state.
SecurityLevel The following list provides you with the attributes and meanings for an
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 an
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 an
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 an
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 an
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
User The following list provides you with the attributes and meanings for an User
Attributes 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
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
250 Display The DCX 250-Display Unit has a touch-sensitive, 4.9 x 4.2-inch liquid
Unit crystal display (LCD) screen. The screen is divided into 64 numbered
Description squares, beginning in the upper left-hand corner and ending in the lower
right-hand corner (see below).
Text and graphics are positioned on the 250-display screen with line points
(dots). There are 320 line points horizontally across the screen (left-to-right)
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
41 42 43 44 45 46 47 48
1 320
Predrawn You can program the 250-display unit to display predrawn graphic controls
Control (see below) that respond to an operator touching the screen. The control
Graphics graphic represents a single point or point attribute.
There are 13 pre-designed graphic controls that you can select with the
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
CONTROL keyword.
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 00 00 0 0 0 0 0000 00 0 0 0 0 0000
00 00 00 00 00 00 00 00 0000 00 00 00
Title
00 0 0 0 0 00 6
0
Title 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0 0 00 000 000 000 000 00 00 00 00 00 00 00 00 00 00 00 00 00
4 Title 5 Title
00 00 00 00 00 0
0 0 0000000000000000000000000 0 0
00 00 00 00 00 00 00 00 00
0 00 00 0 0 00 0 0 0
7 Title
00
0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 00 00 00 0 0 00 0 0 0 0000 00 00 00 00 00 00000000000000000000000000000000000000000 00 00
8 Title 9 Title
####.##
####.##
00 00 00 00 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 00 00
0 0 0 0 0 0 0 00 00 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000000000 0 0 0 0 0 0 0 0 0 0 0 0 0 000000000 0 0
12 Title 13 Title
Predrawn Each of the controls is identified by a unique style number, which appears to
Control the left or above each control.
Graphics
continued Some include a title. Where you see the word Title, the title that you
designate appears in the control.
If you do not resize the control, it takes up most of the screen. You can,
however, resize most controls so that you can have multiple controls display
at one time.
Each control can have a frame around it that you choose by selecting one of
the four frame styles available.
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1 Title
00 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 00
2 Title 00 00 Title
3
00 00 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00
Title
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
4
0000000000000000000
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0000000000000000000000000000000000000000000000000
00
Frame styles for the predrawn controls.
Preliminary Before you place the control, always be sure to carry out these steps:
Steps • Connect to the 250 through the Connect menu.
• Open a file and set its FlowType attribute to FallThru.
• Begin the program by using the CLEARSCREEN keyword to erase any
graphic or text already on the screen.
• 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 know
Considerations the following information about the control:
• Style Number
• Location
• Whether or not the operator should be able to change the point value
using the control.
• 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:
• A title
• Frame style
• Direction (sliders only)
• Top and bottom of scale
• Tick marks (knobs and gauges)
• Number of settings the control can be set to (called steps)
• Format (for the numbers on the tick marks)
The CONTROL You use the CONTROL keyword to place a predrawn graphic control on the
Keyword 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 items shown in bold italics are required arguments and those shown in
italics are optional arguments.
The Arguments The arguments applicable to the CONTROL function are listed below.
Setting Up the To display a vertically positioned rotational needle gauge (Control Style 7)
Software on the screen, you would enter the following:
CLEARSCREEN
TURN ON BACKLIGHT
CONTROL 7, 50, 50, 280, 180, TRUE, ROOM6 AirFlow, "AirFlow", 4,,
50, 250, 5, 8, "###"
00 0 0 0 0 0 0 0 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 0 0 0 0 0 0 00
00 00 00000000000000000000000000000000000000000000000000000000000000000000000000000000000 00
0 00 0 AirFlow
00 00 00
00 0 00 0 00 00 0 00 0 0
50
00 00 00
00 00 0 100
00 00 00
00000000000 00 00 0
0 0 00
0 0 0 0 0 0 0 0 0 0 0
150
00 00 00 00000 0 00 0
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000 000
200
250
000000000000000000000000000000000000000000000000000000000000
0 0
Display of Rotational Needle Gauge (Control Style 7)
Format The format of the CONTROL function keyword statement showing its
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
arguments is illustrated below.
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Building1 Floor1 Display1 AirFlowGauge
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
00 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
Top and
When TRUE, Operator Bottom Format
Control Style Can Change Setting of Scale
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
CONTROL 7, 50, 50, 280, 180, TRUE, ROOM6 AirFlow, "AirFlow", 4,, 50, 250, 5, 8, "###"
00000000000000000000000000000000000000000000000000000000000000000000000000000000000
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Controller
Frame Style
Tick
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Location and Point Marks
Name Steps
on Screen
Comma Means
0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Skipping Argument
Argument The left, bottom, right, and top values position the frame so its lower left
Descriptions corner is at 50, 50 and its upper right at 280, 180. The control appears sized
and centered within the frame (Frame Style 4).
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 Off and
continued 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 gauge
Marks setting change, because it would automatically have 180 settings (one for
each degree around the portion of the circle the gauge is composed of).
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 to raise
Control 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 automatically
Knobs Cannot sizes the control to fit into the area you designate unless it is Control Style 3,
be Resized 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) stretch to
Retain Their fit tall/wide areas and shrink to fit short/narrow areas, gauge controls such as
Shape 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-
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
bottom and right-top).
00 0 0 0 0 0 00
00 00 0 00 +
00
00 0 0 0 0 0 0 0000 0 0 0 00
00 00 00 00 00 00 0 0 00
00 00
00 + 00
000000000000000000000000000000000000000000000000000
Gauge Control (Control Style 7) Centered on Screen
Gauge Controls On the other hand, if you designate a short wide area for a circular control,
Retain Their its height fits the area and its width becomes proportional to the height. The
Shape control is then horizontally centered within the space you have defined.
continued
In either case, the gauge retains its semicircular shape.
Minimum Any control style that you can resize never displays unless it is at least the
Control Size 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 the Control If the control cannot display in the space you give, the software disables the
doesn't Appear 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
00
00 00
0 0
0 0
000000000000000000000000000000000000000000000000000000000000
Details • Resizing—You may resize. Fits any size area, as long as all coordinates
are on the screen. The minimum size in line points is 40 wide by 25
high.
• frame—Do not specify. Automatically placed around control.
• direction—Not applicable.
• bot_scale—Optional. Automatically set to OFF or one of the two values
of a digital attribute, such as DISABLED for STATE.
• top_scale—Optional. Automatically set to ON or one of the two values
of a digital attribute, such as ENABLED for STATE.
• tickmarks—Not applicable.
• steps—Not applicable.
• format—Not applicable.
Type
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
Flat Button
00 00
00 00
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
00 00 00 00
00 0000000000000000000000000000000000000
Title
00
00 00
00 00
0 0
000000000000000000000000000000000000000000000000000000000000
Details • Resizing—You may resize. Fits any size area, as long as all coordinates
are on the screen. The minimum size in line points is 40 wide by 25
high.
• frame—Do not specify. Automatically placed around control.
• direction—Not applicable.
• bot_scale—Optional. Automatically set to OFF or one of the two values
of a digital attribute, such as DISABLED for STATE.
• top_scale—Optional. Automatically set to ON or one of the two values
of a digital attribute, such as ENABLED for STATE.
• tickmarks—Not applicable.
• steps—Not applicable.
• format—Not applicable.
Type
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
Sliding Switch
00 00
00 00
00 00 0 0 0 0 00
0 0
Title
0 0 00
00 00 00 00 00 00 00 00
00 000000 00
00 00
00 00
0 0
000000000000000000000000000000000000000000000000000000000000
Type Knob
Title
Type
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
Rotational Needle Gauge, Vertical Position
00 Title
00
00 0 00 00 00 0 00 0 0 0 00
00 0 0 0 0 0 0 0 0 0 0 0 0 0 00
00 0 0 0 0 0 0 0 0 00 0 00
00 00 00 00 00 00 00 0 0 00
00 00
00 00
0 0
000000000000000000000000000000000000000000000000000000000000
00 00
0 0
000000000000000000000000000000000000000000000000000000000000
Type
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
Value Bar with Arrow Buttons
00 00
00 Title
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0
####.##
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
00 00 00 0 0 00000000000000000 0 0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00000000000000000 00000000000000000 00
00 00
0 0
000000000000000000000000000000000000000000000000000000000000
00 ####.##
00
00 00
00 00
0 0
000000000000000000000000000000000000000000000000000000000000
Details • Resizing—You may resize. Positions itself in the center of the
coordinates you give, as long as all coordinates are on the screen.
Shapes to a tall narrow area or a short wide area. Must be at least 80 line
points wide and 50 line points high.
• user_change—If you do not allow the user to change the setting (i.e.,
using the FALSE argument), the arrows do not appear.
• frame—Optional.
• direction—Not applicable.
• bot_scale—Required if it is not a digital control. If it is for a digital
point or attribute, automatically set to OFF or one of the two values of a
digital attribute, such as DISABLED for STATE.
• top_scale—Required if it is not a digital control. If it is for a digital
point or attribute, automatically set to ON or one of the two values of a
digital attribute, such as ENABLED for STATE.
• tickmarks—Not applicable.
Type
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
Level Fill with Scale
00 00
00 00
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 0 0 0 0 0 0 0 0 0 0 0 00 00 00 00 00 00
Title
00 0000000000000000000000000 00
00 00
00 00
0 0
000000000000000000000000000000000000000000000000000000000000
Details • Resizing—You may resize. Positions itself in the center of the
coordinates you give, as long as all coordinates are on the screen.
Shapes to a tall narrow area or a short wide area. Must be at least 80 line
points wide and 50 line points high.
• user_change—If you do not allow the user to change the setting (i.e.,
using the FALSE argument), the arrows do not appear.
• frame—Optional.
• direction—Required. Set to horizontal or vertical to determine the
direction the bar moves to show a change in value. If you do not set, it is
automatically horizontal.
• bot_scale—Required if it is not a digital control. If it is for a digital
point or attribute, automatically set to OFF or one of the two values of a
digital attribute, such as DISABLED for STATE.
• top_scale—Required if it is not a digital control. If it is for a digital
point or attribute, automatically set to ON or one of the two values of a
digital attribute, such as ENABLED for STATE.
Details • tickmarks—Optional. You do not have to display tick marks, but you
continued may.
• steps—Required. If you do not give a number of steps, the number
defaults to the number of dots on the screen along the length of the
scale.
• format—Optional. If you do not specify a format for the numbers that
label the positions on the knob, the software does not display the
number but leaves adequate space to display four digits—####.
Type
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
Slider Pointer and Scale
00 00
00 00
00 00
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Title
00
00 00 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000000000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 00 00
00 0 0 0 0 0 00
0 0 0 0 0 00
00 00
0 0
000000000000000000000000000000000000000000000000000000000000
Type
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00
Date Time Display Bar
00 00
00 00
00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 00 00 00 0 00
Title
00 00 ###•##•####
00 00 00 00 ##:##:## 00 00 00 00 00 00
00 00
00 00
0 0
000000000000000000000000000000000000000000000000000000000000
Details • Resizing—You may not resize. Positions itself in the center of the
coordinates you give, as long as the center of the control is at least 95
line points from any screen edge. The control automatically positions
itself in the single row of cells nearest the coordinates you give. Must be
at least 80 line points wide and 50 line points high.
• user_change—If you do not allow the user to change the setting (i.e.,
using the FALSE argument), the arrows do not appear.
• frame—Optional.
• direction—Not applicable.
• bot_scale—Not applicable.
• top_scale—Not applicable.
• tickmarks—Not applicable.
• steps—Not applicable.
• format—Not applicable.
• You must specify a datetime point or the control does not appear.
When you create an Infinity object in a BACnet controller it automatically becomes a certain type
of BACnet object. The first table below lists the Infinity object class and indicates its BACnet
object equivalent.
Following that 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 on the
BACnet side. The “READ/WRITE” column indicates whether these properties can be changed
(W) or just read (R) by third party devices.
The Restrictions column indicates any Andover Controls specific restriction on the property. Our
restrictions do not necessarily coincide with those of a third party device.
Program Program
Schedule Schedule
Device Device
EventEnrollment EventEnrollment
COV Increment R
Description Description W Limited to 32 characters
Event_State EventState R Always Normal
Object_Name Name R Limited to 16 characters
Object_Type Type R Constant based upon the class
Out_Of_Service OutOfService W Cannot be set false if channel not
configured
Present_Value Value W
Units Units W
BINARY INPUT
BACnet Plain English READ/WRITE Restrictions
Property Name R/W
MULTISTATE INPUT
BACnet Plain English READ/WRITE Restrictions
Property Name R/W
COV Increment
Description Description W Limited to 32 characters
Event_State EventState R Always Normal
Object_Name Name R Limited to 16 characters
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
Units Units W
BINARY OUTPUT
BACnet Plain English READ/WRITE Restrictions
Property Name R/W
MULTISTATE OUTPUT
BACnet Plain English READ/WRITE Restrictions
Property Name R/W
ANALOG VALUE
BACnet Plain English READ/WRITE Restrictions
Property Name R/W
COV Increment
Description Description W Limited to 32 characters
Event_State EventState R Always Normal
Object_Name Name R Limited to 16 characters
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
MULTISTATE VALUE
BACnet Continuum READ/WRITE Restrictions
Property Attribute R/W
Due to the internal workings of the BACnet controllers, if you create a Numeric (binaryvalue) in
a b3 or b4 BACnet controller and you import that value into another controller for use
controlling an output, the output will pulse once on change of state and then shut off (equivalent
to output=1).
Example:
The program below in the importing controller is a one-line looping program as follows:
output1= B4/B3/BinaryValue
A possible use for this would be a global occupancy point being used to turn the lights on.
SCHEDULE
BACnet Continuum READ/WRITE Restrictions
Property Attribute R/W
APDU_Segment_Timeout APDUSegTimeout W
ADPU_Timeout ADPUTimeout W
Application_Software_version ApplSoftwareVersion R
Daylight_Savings_Status DaylightSavingsStatus W
Firmware_Revision FirmwareRevision R
Local_Date LocalDate W
Local_Time LocalTime W
Max_ADPU_Length_Accepted MaxAPDUAccepted R
Model_Name ModelName R
Number_Of_ADPU_Retries NumberAPDURetries W 0-255
Object_Name Name W
Object_Type Type R
Protocol_Conformance_Class ProtocolConfClass R
Protocol_Version ProtocolVersion R
Segmentation_Supported SegmentationSupport R
System_Status System_Status R
UTC_Offset UTCOffset W
Vendor_Identifier VendorIdentifier R
Vendor_Name VendorName R
EVENT ENROLLMENT
BACnet Continuum READ/WRITE Restrictions
Property Attribute R/W
NOTIFICATION CLASS
BACnet Property Continuum READ/WRITE Restrictions
Attribute R/W