Вы находитесь на странице: 1из 740

Andover Plain English

Language Reference








2010, Schneider Electric
All Rights Reserved
No part of this publication may be reproduced, read or stored in a retrieval system, or
transmitted, in any form or by any means, electronic, mechanical, photocopying,
recording, or otherwise, without prior written permission of Schneider Electric.
This document is produced in the United States of America.
Andover Plain English is a trademark of Schneider Electric.
Andover Infinet is a trademark of Schneider Electric.
All other trademarks are the property of their respective owners.


Andover Plain English Language Reference
August, 2010
Rev. F

Schneider Electric part number: 30-3001-872
CyberStation Version 1.9
The information in this document is furnished for informational purposes only, is subject
to change without notice, and should not be construed as a commitment by Schneider
Electric. Schneider Electric assumes no liability for any errors or inaccuracies that may
appear in this document.





Schneider Electric
One High Street
North Andover, MA 01845
(978) 975-9600
Fax: (978) 975-9782
http://www.schneider-electric.com/buildings
Schneider Electric ii
Plain English Language Reference iii
Table of Contents
Chapter 1 Fundamentals
Introduction .......................................................................................................................1-2
Continuum Products..................................................................................................1-2
Continuum System Architecture.....................................................................................1-3
Simple Continuum System........................................................................................1-3
Moderate Continuum System....................................................................................1-3
System Components.................................................................................................1-4
Network Controllers................................................................................................1-5
Infinet Controllers...................................................................................................1-5
MS/TP Controllers..................................................................................................1-5
I/O Modules............................................................................................................1-5
Workstations ..........................................................................................................1-6
CyberStation Software...........................................................................................1-6
Database................................................................................................................1-6
Infinet......................................................................................................................1-6
LBUS......................................................................................................................1-6
MS/TP ....................................................................................................................1-6
Objects and Classes .........................................................................................................1-7
Objects ......................................................................................................................1-7
Object Naming Convention....................................................................................1-7
Alias Naming Convention.......................................................................................1-8
Classes......................................................................................................................1-9
BACnet Objects vs. Continuum Objects ...................................................................1-9
Attributes .........................................................................................................................1-10
How to View Attributes ............................................................................................1-10
Basic Attribute Listing..............................................................................................1-11
Accessibility.............................................................................................................1-11
Object Ownership ...........................................................................................................1-12
Hierarchical View of System Objects ......................................................................1-12
Network Paths.........................................................................................................1-13


Schneider Electric iv
Chapter 2 The Plain English Integrated Development Environment
Opening the Plain English IDE ........................................................................................2-2
From the Continuum Main Menu...............................................................................2-2
From the Continuum Explorer...................................................................................2-3
From the Start Menu.................................................................................................2-3
Creating the Program File.........................................................................................2-4
Plain English IDE Features...............................................................................................2-5
IDE Tools Overview...................................................................................................2-5
Title Bar.....................................................................................................................2-6
The Menu Bar ....................................................................................................................2-7
File Menu...................................................................................................................2-7
Edit Menu..................................................................................................................2-8
View Menu.................................................................................................................2-8
Build Menu.................................................................................................................2-9
Tools Menu................................................................................................................2-9
Window Menu............................................................................................................2-9
Help Menu.................................................................................................................2-9
The Main and Find Toolbars ..........................................................................................2-10
The Main Toolbar....................................................................................................2-10
The Find Toolbar.....................................................................................................2-11
The Check Toolbar and Command Line .......................................................................2-12
The Check Toolbar..................................................................................................2-12
The Command Line.................................................................................................2-12
The IDE Explorer .............................................................................................................2-13
Popup Shortcut Menu..............................................................................................2-14
The IDE Editor .................................................................................................................2-15
Displaying Multiple Programs..................................................................................2-15
The IDE Assistant............................................................................................................2-16
Selecting and Placing Objects.................................................................................2-16
The IDE Watch Bar ..........................................................................................................2-17
Rearranging IDE Toolbars and Windows................................................................2-17
Docking and Floating......................................................................................................2-18
Using the Docking and Floating Options.................................................................2-18
Configuring a Plain English Program File....................................................................2-19
Configuring the Program File..................................................................................2-19
Using the Editor ..............................................................................................................2-20
Text Entry................................................................................................................2-20
The Editor Shortcut Menu.......................................................................................2-21
Finding Text.............................................................................................................2-22
Replacing Text ........................................................................................................2-23
Going to a Labeled Program Line...........................................................................2-24
Importing Programs.................................................................................................2-24
Exporting Programs.................................................................................................2-25
Saving the Program.................................................................................................2-26
Opening the Program..............................................................................................2-27
Running the Program from the Command Line......................................................2-27
Monitoring the Program File Status.........................................................................2-28
Stopping the Program.............................................................................................2-29
Plain English Language Reference v
Using the Plain English Wizard .....................................................................................2-30
Opening the Plain English Wizard...........................................................................2-30
The Wizard File Selection Menu.............................................................................2-31
Selecting and Configuring a Wizard Program.........................................................2-31
The Object References Screen...............................................................................2-33
The Final Wizard Screen.........................................................................................2-34

Chapter 3 Programs, Files and the Scanning Process
Plain English Language Programs..................................................................................3-2
Instructions and Statements......................................................................................3-2
Names and Case Sensitivity.....................................................................................3-2
Use of "The"..............................................................................................................3-2
Lines and Line Labels ...............................................................................................3-3
Comments.................................................................................................................3-3
Expressions...............................................................................................................3-4
Numeric Expressions.............................................................................................3-4
String Expressions .................................................................................................3-4
Keywords ...........................................................................................................................3-5
Other Words..............................................................................................................3-5
Command Line..........................................................................................................3-5
Program Flow ....................................................................................................................3-6
Looping vs. FallThru...............................................................................................3-6
Triggers .....................................................................................................................3-7
Constructing Program Statements .................................................................................3-8
Conditional and Unconditional Instructions...............................................................3-8
IFTHEN..................................................................................................................3-9
Program Files ..................................................................................................................3-10
Keep Control in a Single Program File....................................................................3-10
The Scanning Process....................................................................................................3-11
Scan Action List.......................................................................................................3-11
Other Actions...........................................................................................................3-12
The Basic Stages ....................................................................................................3-12
Stage 1. Updating System Variables ......................................................................3-13
Stage 2. Updating Schedules..................................................................................3-13
Stage 3. Updating Input Points ...............................................................................3-13
Stage 4. Running Programs and Executing Commands ........................................3-14
Stage 5. Updating Output Points.............................................................................3-14
Stage 6. Evaluating Alarms.....................................................................................3-15
Other Scanning Issues ...................................................................................................3-16
Numeric, String, and DateTime Points....................................................................3-16
Updating Point Logs................................................................................................3-16
Triggering Programs from Points ............................................................................3-16
Exported Points.......................................................................................................3-16
Power Failure Conditions and the Firing Order.......................................................3-17


Schneider Electric vi
Chapter 4 Points, Constants and Variables
Points .................................................................................................................................4-2
Hardware Points........................................................................................................4-2
Input Points................................................................................................................4-2
Output Points.............................................................................................................4-3
Software Points .........................................................................................................4-3
Numeric Points..........................................................................................................4-3
Multi-State Value Points............................................................................................4-3
String Points..............................................................................................................4-4
DateTime Points........................................................................................................4-4
Controller vs. Workstation Points..............................................................................4-4
Constants...........................................................................................................................4-5
Numeric Constant......................................................................................................4-5
Integer Numbers ....................................................................................................4-5
Floating Point Numbers..........................................................................................4-5
Examples of Numeric Constants............................................................................4-5
How the Controller Interprets Numbers.....................................................................4-6
String Constants........................................................................................................4-6
Rules for String Constants.....................................................................................4-6
System Defined Constants........................................................................................4-7
Variables ............................................................................................................................4-8
Numeric Variables.....................................................................................................4-8
String Variables.........................................................................................................4-8
DateTime Variables...................................................................................................4-8
Local Variables..................................................................................................................4-9
Numeric Keyword...................................................................................................4-9
String Keyword.......................................................................................................4-9
DateTime Keyword.................................................................................................4-9
System Variables ............................................................................................................4-10
Programmable System Variables............................................................................4-10
System Variable Listing...........................................................................................4-11
STATUS#System Variables...................................................................................4-13
PowerFail and other Power related System Variables............................................4-14

Chapter 5 Operators and Expressions
Order of Action..................................................................................................................5-2
Plus Sign, Minus Sign, Negation, BITNOT, and Percentage.........................................5-3
Fundamental Operators....................................................................................................5-4
Comparative Operators ....................................................................................................5-5
Comparing String Values ..........................................................................................5-6
Type Conversion.......................................................................................................5-6
List and Range Operators ................................................................................................5-7
Bit Operators .....................................................................................................................5-8
Truth Table................................................................................................................5-9
AND/OR and String Joining Operators .........................................................................5-10

Plain English Language Reference vii
Chapter 6 Functions, Arrays, and Logs
Functions ...........................................................................................................................6-2
Calling a Function......................................................................................................6-3
Calling a Function without Arguments.......................................................................6-3
Calling a Function with Arguments............................................................................6-3
Functions that Return a Value...................................................................................6-4
Arrays .................................................................................................................................6-5
Setting Up an Array of Variables...............................................................................6-5
Logs....................................................................................................................................6-6
How a Log Updates...................................................................................................6-6
How to Retrieve Log Values......................................................................................6-7
Log Update Intervals .................................................................................................6-7
Log Types..................................................................................................................6-7
Setting Up a Log........................................................................................................6-8
Using Arrays or Logs in Functions ............................................................................6-8

Chapter 7 Keywords
Section 1 Format Conventions .......................................................................... 7-2
Keyword Formatting Standard ........................................................................................7-2
Identical Format for All Keywords .............................................................................7-2
Format.......................................................................................................................7-2
Purpose.....................................................................................................................7-2
Remarks....................................................................................................................7-2
Example.....................................................................................................................7-2
Related Keywords .....................................................................................................7-2
Alias...........................................................................................................................7-3
Products Supported...................................................................................................7-3
Modes Available........................................................................................................7-3
Text and Symbols Used in the Format Heading ............................................................7-5
Format Heading Information......................................................................................7-5
Capital Letters ...........................................................................................................7-5
Bold Italics.................................................................................................................7-5
Parentheses ( )..........................................................................................................7-5
Italics .........................................................................................................................7-6
Comma (,) and Colon (:)............................................................................................7-6
Period (.)....................................................................................................................7-6
Format Terms in Bold Italics ...........................................................................................7-7
Replacement of Terms..............................................................................................7-7
Number......................................................................................................................7-7
Integer .......................................................................................................................7-7
String.........................................................................................................................7-7
Name.........................................................................................................................7-7
List.............................................................................................................................7-7


Schneider Electric viii
Section 2 Keyword Groups ................................................................................ 7-8
Logical Keyword Groups..................................................................................................7-8
Logical Keyword Groups Listing................................................................................7-8
Restricted Keywords ...............................................................................................7-12
250 Display Unit Keywords .....................................................................................7-12
Section 3 Keywords A through C.................................................................... 7-13
ABS Function..........................................................................................................7-13
AccessLog System variable...................................................................................7-14
AccessServer System variable..............................................................................7-16
ACOS Function.......................................................................................................7-18
Alarms System variable..........................................................................................7-19
AND Operator .........................................................................................................7-20
ARG System variable..............................................................................................7-23
ASC Function..........................................................................................................7-25
ASIN Function.........................................................................................................7-26
ASK Function..........................................................................................................7-27
ATAN Function........................................................................................................7-30
ATAN2 Function......................................................................................................7-31
AUDIOBELL System variable.................................................................................7-32
AvailRecords System variable...............................................................................7-33
AVERAGE Function................................................................................................7-34
BACKLIGHT System variable.................................................................................7-36
BASEDON..GOTO Statement................................................................................7-37
BEGINPOLYLINE Function....................................................................................7-40
BITAND Operator....................................................................................................7-41
BITNOT Operator....................................................................................................7-42
BITOR Operator......................................................................................................7-45
BITXOR Operator....................................................................................................7-46
BLUE Constant.......................................................................................................7-47
BREAK Statement..................................................................................................7-48
CabinetTamper System variable ...........................................................................7-49
CD Statement..........................................................................................................7-50
CEILING Function...................................................................................................7-53
CHR Function..........................................................................................................7-55
CLEARSCREEN Function......................................................................................7-57
CLOSE Function.....................................................................................................7-58
CloseFile Function..................................................................................................7-60
CloseList Function.................................................................................................7-63
CloseWindow Function..........................................................................................7-65
CONTINUE Statement............................................................................................7-67
CONTROL Function................................................................................................7-69
COS Function..........................................................................................................7-70
CPUPower System variable (programmable).........................................................7-71
CurUser Function...................................................................................................7-73
CurWorkstation Function.......................................................................................7-74


Plain English Language Reference ix
Section 4 Keywords D through G.................................................................... 7-75
DATE System variable............................................................................................7-75
DATETIME Statement.............................................................................................7-77
DAYOFMONTH System variable............................................................................7-78
DAYOFYEAR System variable...............................................................................7-82
DeleteExtLog Function...........................................................................................7-83
Dial Function...........................................................................................................7-86
DIFFTIME Function.................................................................................................7-94
DISABLE Statement...............................................................................................7-97
DIVIDED BY Operator.............................................................................................7-99
DRAWELLIPSE Function.....................................................................................7-100
DRAWLINE Function............................................................................................7-103
DRAWRECTANGLE Function..............................................................................7-105
ENABLE Statement..............................................................................................7-108
ENDPOLYLINE Function......................................................................................7-110
EOF Constant........................................................................................................7-113
EQUALS Operator................................................................................................7-114
ERRORS System variable....................................................................................7-115
EventLogSize System variable............................................................................7-117
EXPONENTIAL Function......................................................................................7-119
FACTORIAL Function...........................................................................................7-120
FAILURE Constant ...............................................................................................7-121
File Statement.......................................................................................................7-122
FILL Constant .......................................................................................................7-125
FLOOR Function...................................................................................................7-126
FOR..NEXTStatement...........................................................................................7-127
FREEMEM System variable..................................................................................7-131
GetExtLog Function.............................................................................................7-132
GETNAME Function..............................................................................................7-135
GetObject Function..............................................................................................7-140
GOTO Function.....................................................................................................7-144
Section 5 Keywords H through N.................................................................. 7-147
HangUp Function..................................................................................................7-147
HOD System variable............................................................................................7-152
HOUR System variable.........................................................................................7-153
IF..THEN..ELSE Statement...................................................................................7-154
INFINET#COUNT System variable.......................................................................7-160
InitModem Function..............................................................................................7-162
IOUCommFlt# System variable............................................................................7-167
IS Operator ........................................................................................................7-168
LCDPassword System variable...........................................................................7-173
LEFT Function.......................................................................................................7-174
LENGTH Function.................................................................................................7-175
LINE Statement.....................................................................................................7-176
LINEPOINT Function............................................................................................7-181
LN Function...........................................................................................................7-187
LOAD Statement on controller..............................................................................7-188
LOAD Statement on workstation..........................................................................7-192
Schneider Electric x
LOCATE Function.................................................................................................7-196
LOG Function........................................................................................................7-200
MAXIMUM Function..............................................................................................7-201
MAXITEM Function...............................................................................................7-203
MessageWindow Constant..................................................................................7-205
MicroPower System variable...............................................................................7-206
MID Function.........................................................................................................7-208
MINIMUM Function...............................................................................................7-209
MINITEM Function................................................................................................7-211
MINUS Operator....................................................................................................7-213
MINUTE System variable......................................................................................7-214
MOD Operator.......................................................................................................7-216
ModemPower System variable (programmable)..................................................7-217
MONTH System variable.......................................................................................7-219
MOVE Statement ..................................................................................................7-221
NewAlarmCount System variable........................................................................7-223
NOFILL Constant..................................................................................................7-225
NOT Operator........................................................................................................7-226
NUMERIC Statement............................................................................................7-227
NUMTOSTR Function...........................................................................................7-229
Section 6 Keywords O through R.................................................................. 7-230
OBJECT Statement ..............................................................................................7-230
OFF Constant........................................................................................................7-232
ON Constant..........................................................................................................7-233
-ON Constant ........................................................................................................7-234
OPEN Function (comm port).................................................................................7-235
OpenFile Function................................................................................................7-237
OpenList Function................................................................................................7-240
OR Operator..........................................................................................................7-252
P Statement...........................................................................................................7-255
PASSED Function.................................................................................................7-257
PlayAudio Statement ...........................................................................................7-258
PLUS Operator......................................................................................................7-260
PositionFile Function...........................................................................................7-261
PowerFail System variable...................................................................................7-265
PowerUpTime System variable............................................................................7-266
RANDOM Function...............................................................................................7-276
READ Function (comm port).................................................................................7-277
ReadFile Function.................................................................................................7-280
ReadProperty Function........................................................................................7-286
ReaderPower System variable.............................................................................7-287
Relinquish Function.............................................................................................7-289
REPEAT..UNTIL Statement..................................................................................7-291
RETURN Statement..............................................................................................7-292
RIGHT Function....................................................................................................7-294
ROTATE Statement..............................................................................................7-295
ROUND Function..................................................................................................7-297
RUN Statement.....................................................................................................7-299
Plain English Language Reference xi
Section 7 Keywords S through Z................................................................... 7-303
SAVE Statement (on controller)............................................................................7-303
SAVE Statement on workstation...........................................................................7-309
SCAN System variable..........................................................................................7-313
SEARCH Function................................................................................................7-315
SECOND System variable....................................................................................7-316
SELECT (CASE) Statement.................................................................................7-317
SendEmail Function.............................................................................................7-320
SET Statement......................................................................................................7-324
SETDISPLAY Function.........................................................................................7-327
Shell Statement ....................................................................................................7-329
Show Statement ...................................................................................................7-332
SHOWREPORT Statement...................................................................................7-334
SIN Function..........................................................................................................7-338
SQRT Function......................................................................................................7-339
StandardDeviation Function................................................................................7-340
STATUS# System variable (programmable).........................................................7-343
STOP Statement...................................................................................................7-344
STRING Statement ...............................................................................................7-346
STRINGFILL Function..........................................................................................7-348
STRTODATE Function..........................................................................................7-351
STRTONUM Function...........................................................................................7-354
SUCCESS Constant..............................................................................................7-355
SUM Function........................................................................................................7-356
SystemStatus System variable............................................................................7-358
TAB Function........................................................................................................7-360
TAN Function........................................................................................................7-361
TD Local variable ..................................................................................................7-362
TH Local variable ..................................................................................................7-363
THE Statement......................................................................................................7-364
TIMEPIECE Function............................................................................................7-365
TIMES Operator ....................................................................................................7-367
TM Local variable.................................................................................................7-368
TOD System variable............................................................................................7-369
TOUCHEDCELL System variable ........................................................................7-371
TRUNCATE Function............................................................................................7-372
TS Local variable...................................................................................................7-375
TURN Statement...................................................................................................7-376
UniquePIN System variable..................................................................................7-378
UPDATE Function.................................................................................................7-379
UpdateExtLog Function.......................................................................................7-384
VERSION System variable....................................................................................7-391
WEEKDAY System variable.................................................................................7-392
WHILE Statement .................................................................................................7-394
WHITE Constant ...................................................................................................7-396
WriteFile Function................................................................................................7-397
WriteProperty Function........................................................................................7-401
YEAR System variable..........................................................................................7-403

Schneider Electric xii
Appendix A ASCII Codes....................................................................... A-1
Appendix B Reserved Words ................................................................ B-1
Appendix C Attributes ........................................................................... C-1
Appendix D Programming the DCX 250 Display Unit.......................... D-1
Understanding Pre-designed Graphic Controls ........................................................... D-2
Predrawn Control Graphics...................................................................................... D-2
Placing a Pre-designed Graphic Control on the 250 Screen ....................................... D-4
Preliminary Steps ..................................................................................................... D-4
Basic Considerations................................................................................................ D-4
Additional Considerations......................................................................................... D-4
The CONTROL Keyword.......................................................................................... D-5
The Arguments......................................................................................................... D-6
CONTROL Keyword Example.................................................................................. D-8
Setting Up the Software........................................................................................... D-8
Format...................................................................................................................... D-9
Argument Descriptions............................................................................................. D-9
Steps and Tick Marks............................................................................................. D-10
Positioning the Control ........................................................................................... D-10
Setting the Control Size................................................................................................. D-11
Switches and Knobs Cannot be Resized............................................................... D-11
Gauge Controls Retain Their Shape...................................................................... D-11
Minimum Control Size............................................................................................ D-12
If the Control Doesn't Appear................................................................................. D-12
Graphic Control Style 1 Specifications........................................................................ D-13
Graphic Control Style 2 Specifications........................................................................ D-14
Graphic Control Style 3 Specifications........................................................................ D-15
Graphic Control Style 4 Specifications........................................................................ D-16
Graphic Control Style 5 Specifications........................................................................ D-17
Graphic Control Style 6 Specifications........................................................................ D-18
Graphic Control Style 7 Specifications........................................................................ D-20
Graphic Control Style 8 Specifications........................................................................ D-22
Graphic Control Style 9 Specifications........................................................................ D-24
Graphic Control Style 10 Specifications...................................................................... D-26
Graphic Control Style 11 Specifications...................................................................... D-28
Graphic Control Style 12 Specifications...................................................................... D-30
Graphic Control Style 13 Specifications...................................................................... D-32

Appendix E BACnet Properties and Plain English ..............................E-1
Appendix F Alarm Functions ................................................................ F-1
Appendix G Area LockDown Features ................................................. G-1

1
Fundamentals
This chapter provides basic introductory concepts covering the architecture of the
Andover Continuum building automation system that are essential to developing accurate
programs in the Andover Plain English Language. Since Andover Continuum
CyberStation is an object-oriented system, this chapter explains the concept of objects,
aliases, and classes. In addition, the chapter focuses on object attributes, their
association to objects, and then ends with the discussion of hierarchical arrangement
within a physical network.
The Fundamentals chapter discusses the following topics:

Introduction
Continuum Structure Architecture
Objects and Classes
Attributes
Object Ownership
Schneider Electric 1-2
Introduction
The Andover Plain English language (PE) was developed by Schneider Electric to
provide our customers with the ability to customize their building automation systems in
accordance with specific site requirements. Similar to BASIC, PE is based on keywords
that provide a simple straightforward approach to developing programming statements
and requires minimal programming experience.
Andover Plain English is included as part of Andover Continuum's Plain English
Integrated Development Environment (IDE), a complete suite of highly integrated tools for
writing, editing and debugging PE programs. The Plain English IDE is described in
Chapter 2 of this document.
The programs developed with PE support the Andover Continuum line of BACnet and
Infinity controllers and workstations.
Andover Continuum Products
The Andover Continuum product line encompasses a wide variety of components
including Infinity CX 9xxx series controllers, CX 9680 and CX 9681 NetController II
controllers, CX 99xx NetControllers, Andover Infinet controllers, i2 Series controllers,
BACnet series controllers, input/output IOU modules, display modules and smart
sensors. These components are interconnected through various networking
arrangements to create a total building automation system.
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.
From a programming perspective it is important that you have an understanding of how
Continuum products are interconnected. A brief introduction of these arrangements and
the products is provided on the following pages.

Andover Continuum System Architecture
The following is an explanation of the different configurations and the system
components of the Andover Continuum system.
Simple Andover Continuum System
In a simple single-workstation configuration, an Andover Continuum site might consist of
a single NetController, with some input/output (I/O) modules and the workstation PC
running CyberStation software. In BACnet solutions, the bCX1 Router might be present
along with several MS/TP sub-controllers. The NetController and the bCX1 use Ethernet
IP protocol to communicate with the workstation. The stand-alone version of
CyberStation is resident on the workstation PC along with the database containing the
configuration data for the entire system.

Ethernet IP Network
Andover Plain English Language Reference 1-3









Example of a Continuum/BACnet Single Workstation Network

Moderate Andover Continuum System
The Andover Continuum system design is based on scalability, so expansion to a multi-
workstation, larger network configuration can be accomplished easily. The illustration on
the following page shows such a setup. In this configuration, the Ethernet LAN has been
expanded to include another workstation, a database server, an Infinity CX 9xxx series
network controller and a BACnet bCX1 controller. In addition, two Infinet controllers have
been added to the original NetController (from the figure above) via its Infinet port.
Like the simple system shown above, this is a Continuum/BACnet-compliant system. It
provides interoperability between existing Infinity/Infinet and BACnet devices over a
common Ethernet backbone. The CX controller feeds two Infinet application controllers
from its Infinet port. The bCX1 controller serves as a gateway between the BACnet
MS/TP RS-485 subnet and the Andover Continuum Infinet subnets hosted by the Infinity
CX and NetController. This entire network can be viewed and controlled on a
CyberStation/B-OWS workstation. A single server running MS SQL server software
contains the Continuum database.
NetController
ACC I/O Bus

Local field wiring
bCX1
BACnet
Router Network
Path
PC Windows
Workstation running
CyberStation with
Database
IOU Modules
BACnet
MS/TP
RS-485
b3xxx

Ethernet IP Network















Schneider Electric 1-4





Infinet
Controller
IOU Modules
Local field wiring
Local field
wiring
Local field
wiring
bCX1
BACnet
Controller
PC Windows
Workstations
running
CyberStation
SQL
Database
Server
Infinet
b3xxx
Third Party
BACnet
Device
BACnet
MS/TP
RS-485
NetController
Local field
wiring
BACnet
Controllers
Infinity
CX 9xxx
Controller
b3xxx
Local field
wiring
Local field
wiring
Infinet
Controllers
Infinet
LBUS
IOU Modules
Router
Local field
wiring
Example of a Multi-Workstation Continuum/BACnet Network
System Components
The following paragraphs define the specific components that make up the Andover
Continuum system, varying from the types of controllers to the different connections. The
system components are as follows:
Network Controllers CyberStation Software
Infinet Controllers Database
MS/TP Controllers Infinet
I/O Modules LBUS
Workstations MS/TP

Andover Plain English Language Reference 1-5
Network Controllers
There are four types of Andover Continuum network controllers:
Infinity CX 9000 series
CX 9680 and CX 9681 NetController II
CX 99xx NetController
bCX1 BACnet Controller/Router
ACX seriesAccess Control
All are IP compatible and each contains at least one port to allow communication with
application controllers.
Andover Infinet Controllers
These controllers include combinations of inputs and outputs for the monitoring and
control of local sensors and devices. There is a wide variety of Infinet controllers. Each
device is designed for a specific purpose:
DCX 250Display Control
LCX800 seriesLocal Control
LCX89X seriesLighting Control
SCX seriesSystem Control
TCX seriesTerminal 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.
MS/TP Controllers
Schneider Electric offers a complete line of MS/TP BACnet-compatible sub controllers
(b3 series) that are functionally equivalent to the entire i2 product line.
I/O Modules
Continuum I/O modules are specialized units that receive sensor inputs and activate
equipment (valves, fans, and so on) and perform access control functions. They connect
directly to the NetController II or the CX99xx NetController. Available I/O modules include
input, output, mixed I/O, and display configurations.
Schneider Electric 1-6
Workstations
A personal computer (PC) connected to the Andover Continuum Ethernet network serves
as an operator workstation. The system can contain a single workstation or multiple
workstations, depending on the site configuration.
CyberStation Software
CyberStation is a Windows-based application program that runs on a PC workstation and
interacts with the control system. It provides a graphic user interface (GUI) that can
display and manipulate data that allows the entire site management of adjusting
schedules and setpoints, acknowledging alarms, controlling doors, tracking personnel,
etc.
Database
The Database stores all the vital information pertaining to the building automation control
system. The database engine is either Microsoft SQL server or SQL Desktop Edition.
Andover Infinet
The Andover Infinet is a high performance, token-passing LAN that allows Infinet
application controllers to communicate with each other and to a single CX or
NetController. Using InfiLink repeaters, it is possible to have 127 Infinet controllers on
one Infinet. Data transmits over the Infinet at a rate of 19.2 Kb/sec.
LBUS
The LBUS is an RS-485-based protocol that is used by the system AC256 to
communicate with older IOU modules. The NetController can communicate to these IOU
modules using the LA-1 converter. Only one LBUS can be connected to a CX controller.
Each LBUS can handle up to 16 IOUs.
MS/TP
MS/TP is an RS-485 based network that connects Andover Continuum and third-party
BACnet devices to the bCX1 controller.
Andover Plain English Language Reference 1-7
Objects and Classes
CyberStation is based on object-oriented programming principles. Objects and classes
are the basic building blocks of the system. Each item appearing on a CyberStation
workstation screen represents an object. There are hardware-based objects (controllers,
workstations, I/O points) and software-based objects (system variables, attributes).
Furthermore, the objects can be grouped into classes.
Objects and their aliases follow distinct naming conventions that are described in the
following paragraphs.
Objects
Objects are the basic building blocks of Schneider Electric's Andover Continuum control
systems. All the items that make up the system, both hardware and software are
identified as objects. Each item appearing on a CyberStation workstation screen
represents an object. For example, objects contained within the controller class include:
CommPort
Input
Output
User
Group
Graphical icons, displayed in the Continuum Explorer, represent both hardware objects
and software objects.
Object Naming Convention
When you create a name for an object in CyberStation, the system automatically creates
a second object identifier called an Alias. The object name can be lengthy and descriptive
whereas the object alias must conform to a stricter naming convention (see "Alias
Naming Convention" on the next page).
The object name is stored in the Continuum database, not in the controller.
Schneider Electric 1-8
The set of characters allowed in object names, called the "Naming Character Set, is
described below.
The Naming Character Set
Character Description
A-Z and
a-z
Alphabetic characters. Upper- and lowercase are
interchangeable.
0-9 Numeric characters.
_ Underscore character.
. Period character
/ Slash character
Dash character
Space character

Object names can be up to 64 characters long and may consist of any combination of the
naming character set.
Ideally, the object name should be as descriptive as possible to help identify the object it
represents. For example, an output point for an operating fan could be named Fan
Start/Stop.
Alias Naming Convention
The alias is the object reference used in programs and functions. CyberStation creates
the alias version of the object name whenever a new object is created.
The alias name is saved to both the controller and the Continuum database.
The rules for the alias naming character set are as follows:
The length of the alias name cannot exceed 16 characters
Must start with a letter, not a number
Alphanumeric characters
Period and underscores are the only punctuation characters allowed
No spaces
No reserved words, keywords or symbols (+, -, /, *, etc.)
Andover Plain English Language Reference 1-9
Classes
Objects are categorized into classes, which are groups of related objects. Examples of
classes:
Area
Device
Schedule
If you open a class folder in the Continuum Explorer, you see a list of objects for that
class. For example, the SystemVariable folder displays a list of system variables.
BACnet Objects vs. Andover Continuum Objects
All information in a BACnet system is also represented in terms of objects. Objects may
represent a single physical point or logical groupings of points that perform a specific
function. The information contained within a BACnet object is presented as a set of
properties. In CyberStation, BACnet object properties are similar to Andover Continuum
object attributes.
Attributes
An attribute is a characteristic of an object. An example attribute of an input object would
be its Value. All objects have attributes associated with them. In most cases, there are
several attributes that describe an object. In BACnet, attributes are called properties.
How to View Attributes
The attributes for any object in CyberStation can be viewed by double clicking the object
icon in Continuum Explorer's viewing pane. The General tab of the object editor displays
some attributes for the selected object. An example is shown below:

The attributes that appear on the object's General tab varies depending on the selected
object.
Schneider Electric 1-10
Andover Plain English Language Reference 1-
11
Basic Attribute Listing
The following table provides a summary of the attributes appearing in the previous
example of a General tab.
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 CyberStation
workstation. Most object attributes can be altered from the Command Line window of the
workstation. (Refer to Chapter 3 for a detailed description of how to view object attributes
using the Command Line.)
Appendix C contains a complete list of attributes for each object contained in
CyberStation.
Object Ownership
Object ownership is a term that describes the relationships between objects in
CyberStation.
Objects in CyberStation are arranged in a hierarchy. The Root object is always the prime
object at the top of the hierarchy. Objects at the top of the hierarchy contain, or own the
objects below them. This ownership refers to the physical network connection between
devices and to where the objects are stored within the network.
Hierarchical View of System Objects
Network and Controller views that are selectable on the CyberSTation workstation screen
represent the hierarchy of the physical components in the system. For example, an input
point called Rm_Temp1, attached to a NetController named CX1 that is connected to a
network called Bldg1, 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.
This hierarchical relationship is an important concept that is applied to network path
names in PE programming statements.


Network
Bldg1
Root
Input Point
Rm_Temp1
Controller
CX1







Example of Object Hierarchical Relationships
Schneider Electric 1-12
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, based on the graphical representation in the previous section, 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:

IF BLDG1 CX1 RM_TEMP1 >74 THEN...

Network

In this statement, the correct path from the network and controller (BLDG1, CX1) to the
input point (RM_TEMP1) must be specified in order to run the program.
Andover Plain English Language Reference 1-
13
Schneider Electric 1-14

2
The Plain English Integrated
Development Environment

This chapter provides an overview of the Plain English Integrated Development
Environment (IDE) and explains how it enhances the production of writing and editing
Plain English programs. The discussion in this chapter is not intended to be a complete
tutorial on the use of the IDE, but rather to present an overall picture of its components
and to touch briefly on each of its features.
This chapter discusses the following topics:
Opening the Plain English IDE The IDE Assistant
Plain English IDE Features The IDE Watch Bar
The Menu Bar Docking and Floating
The Main and Find Toolbars Configuring a Plain English Program File
The Check Toolbar and the Command
Line
Using the Editor
r The IDE Explore
The IDE Editor


Using the Plain English Wizard

Opening the Plain English IDE


There are three ways to open the IDE when you wish to create a new program file:
From the System & Status button on CyberStations main menu
From the Continuum Explorer
Selecting Programs Continuum PlainEnglish from the Windows Start menu
These methods are described below.
From the CyberStation Main Menu
If you click the hot spot on the left-hand side of the Continuum
Main Menu, the System & Status menu page appears.

System & Status menu page

Click the hot spot to start the Plain English IDE.
Schneider Electric 2-2
From the Continuum Explorer
From any view of the Continuum Explorer, right click the controller or workstation where
you want the program to reside. Then select New and 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.

Selecting a New Infinity Program
From the Start Menu
From the Windows explorer, click Start. Select Programs -> Continuum -> Plain
English.
Note: Continuum must be running.









Andover Plain English Language Reference 2-3
The New create dialog box appears when you select New InfinityProgram from the file
option on the menu bar. Otherwise, selecting New from the File menu or clicking the new
file quick pick button displays the dialog box shown below:

The New Dialog Box

Creating the Program File
Type the program name in the Object name text box and click the Create button. Next,
the Editor screen appears in the IDE main window.
Schneider Electric 2-4
Plain English IDE Features
The following paragraphs explain the various features and components of the Integrated
Development Environment (IDE).
IDE Tools Overview
IDE consists of a variety of color-enhanced windows, menus and toolbars to simplify the
writing, editing and debugging of Plain English (PE) programs.
The IDE main screen includes standard Windows features (title bar, menu bar, various
toolbars, main window and status bar) along with specialized editor function windows.
Andover Plain English Language Reference 2-5



Plain English IDE Main Screen
Editor
Assistant Watch Bar
IDE Explorer
Status Bar
Title Bar
Menu Bar
Main
Toolbar
Command
Line
Find
Toolbar
Check
Toolbar
Class of
Objects
Displayed
In IDE
Explorer
The following topics describe the different components of the Plain English IDE:
The Title Bar Indicates the directory path to the current PE program file.
The Menu Bar Provides a series of menus and options for creating and editing PE
program files.
The Main Toolbar Provides shortcuts for the items in the Edit Menu.
The Find Toolbar - Provides a shortcut for locating specific words, symbols, or
phrases in a PE program file
Check Toolbar Works in conjunction with the Assistant to compile programs and
report errors.
IDE Explorer Provides a graphical display of your system.
Schneider Electric 2-6
nglish
Watch Bar - Allows you to monitor your program's effect on other objects.
u change
programs in the PE Editor, the Title bar will change to reflect the new path.

Editor Provides an area for users to write and edit programs.
Assistant - Provides additional support in the writing and editing of Plain E
programs by supplying features that help to simplify the coding process.
Title Bar
The Title bar indicates the directory path to the current PE program file. If yo
The Menu Bar
The menu bar provides seven dropdown menus within the IDE. The seven menus are
described in detail in the following sections.

File Menu
The File Menu offers the following options:
Option Description
New Opens a new program file.
Open Opens an existing program file.
Close Closes the current active program file.
Delete Deletes the current active program file.
Save Checks and saves the active program file.
Save As Checks and saves the active program file under a new name.
Save All Checks and saves all open program files.
Close All Closes all open program files.
Import Inserts the contents of a text file into the active program file.
Export Saves the active program file to a text file.
Configuration Displays the Infinity Program, or the Function Configuration Dialog.
Firing Order Displays and allows editing of the current firing order.
Print Prints the active program file.
Exit Exits the Plain English editor.

Andover Plain English Language Reference 2-7
Schneider Electric 2-8
Edit Menu
The Edit Menu offers the following options:
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 for
which you last searched.
Find Previous From the cursor position, finds the previous instance of the text for
which you last searched.
Replace Finds specified text, and replaces it with a different specified text.
Goto Places your cursor at the specified line number or line definition.

View Menu
The View Menu offers the following options:
Option Description
Toolbars When checked (), adds the selected toolbar to the IDE screen.
When not checked, removes the selected toolbar from the IDE
screen. The toolbars are Main, Find, Check, Assistant, Explorer,
Command Line and Watch.
Set Font Displays the Font dialog box, allowing you to change the font for
the active program file.
Refresh Checks and saves the active program file, and refreshes
the screen.
Folder View Changes the IDE Explorer to folder view. In this view, the Root and
all folders appear in the navigation pane.
Network View Changes the IDE Explorer to network view. In this view, the
network you set up appears in the navigation pane.

Andover Plain English Language Reference 2-9
Build Menu
The Build Menu offers the following options:
Option Description
Check Compiles the currently active program file. Reports errors in the
Check page of the Assistant
Check All Compiles all open program files. Reports errors in the Check page
of the Assistant.
Stop Stops compiling.
Tools Menu
The Tools Menu offers the following options:
Option Description
Wizard Opens the Plain English Wizard.
Calculator Displays the Calculator.
Options Displays the Options dialog.
Window Menu
The Window Menu offers the following options:
Option Description
Cascade Displays program windows overlapping diagonally.
Tile Horizontally Displays program windows in equal horizontal portions of
the editor.
Tile Vertically Displays program windows in equal vertical portions of the editor.
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 any window in the list will make it the active window.
Help Menu
The Help Menu offers the following options:
Option Description
Help Topics Displays Plain English online help topics.
About IDE Displays the copyright and version number for the PE editor.
The Main and Find Toolbars
The following displays and describes the items on the Main and Find Toolbars.
The Main Toolbar
The Main toolbar contains shortcuts to many of the items found in the Edit menu.


Main Toolbar Selections
Action Icon
Open a new program

Open an existing program

Save the currently active program

Save all open programs

Cut text

Copy text

Paste text

Undo the last action you performed

Redo the last action you performed

Find a particular word in the current program

Print the current program


Schneider Electric 2-10
The Find Toolbar
The Find toolbar is a shortcut search 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.


Using the Find Toolbar
Step Action
1 Type the text that you want to find, or use the pull-down list to select
previously searched text.
2 To search from the cursor position to the end of the program,
click
3 To search from the cursor position to the beginning of the program,
click

Andover Plain English Language Reference 2-
11
The Check Toolbar and Command Line
The following displays and defines the features that appear on the Check Toolbar and the
Command Line.
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

Compiles the active program in the Editor

Complies all programs in the Editor

Stops compilation

Save the program and refreshes the windows

Displays the program Configuration dialog box

Starts the Plain English Wizard. (See "Using the Plain English
Wizard" in this chapter.)

Displays a pop-up calculator

The Command Line
The Command Line is where you enter and execute Plain English 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 Linewhere messages and print requests appear.
Schneider Electric 2-12

Browse Command Line Response Line
Button
The IDE Explorer
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.

Andover Plain English Language Reference 2-
13

Current Device
IDE Explorer Drop-
Down List Box
Back Up
One Level
Button













IDE Explorer


Current Class
Class Drop-
Down List Box
Copy Objects
Button
List of Objects
Matching
Selected Current
Class
Popup Shortcut Menu
In addition to the above features, the IDE Explorer provides several options by means of
a popup shortcut menu, which is activated whenever, you right-click an object in the drop-
down list box.










IDE Explorer Popup Shortcut Menu Features

Menu Item Action
Open Opens programs in the IDE. For other classes, opens the appropriate
dialog box.
Edit Starts another IDE session for the selected program. For other
classes, opens the appropriate application.
Put in Service Opens a dialog box to confirm the state of the objects attribute is
Enabled [NOT SHOWN FOR INFINITYPROGRAM]
Take out of
Service
Opens a dialog box to confirm the state of the objects attribute is
Disabled [NOT SHOWN FOR INFINITYPROGRAM]
Enable Opens a dialog box to confirm the state of the programs attribute is
Enabled [ONLY SHOWN FOR INFINITYPROGRAM]
Disable Opens a dialog box to confirm the state of the programs attribute is
Disabled [ONLY SHOWN FOR INFINITYPROGRAM]
Send To Offers a selection of "Controller, Database, Text File or Printer".
Delete Deletes the selected object.
Rename Opens a dialog box for renaming the object.
Page Setup Opens a dialog box to select the page setup of the object to be
printed.
Print Selected Opens a dialog box to select the printer.
Go To Offers a selection of Owner or Device.
Properties Opens the Properties dialog box.
Schneider Electric 2-14
The IDE Editor
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 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 progra m elements. Blue is for keywords, red for line
definitions and green for comments.
s allows you to copy code from one
the active window
since its tab (see bottom of screen) overlays the other program tabs.
Displaying Multiple Programs
The Editor's ability to display multiple program
program to another thus saving typing time.
In the figure below, four programs occupy the Editor window. Prog4 is









IDE Editor Window
Andover Plain English Language Reference 2-
15
The IDE Assistant
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.
IDE Assistant Page Features
Menu Item Action
Objects Provides a temporary storage place for object names that you need
in a program
Check Displays errors that occur when a program is saved or checked.
Keywords Lists all the Plain English language keywords that are not functions.
Functions Contains all the pre-written Plain English functions
Values Provides attribute values used by the system.
Favorites Provides a storage area for commonly used items such as keywords,
statements, functions, objects and so on.
Selecting and Placing Objects
Double clicking items displayed within these pages automatically inserts them into the
active program Editor window. To place object names on the Objects page, locate them
in the IDE Explorer and then drag them onto the page. Placing object names on the IDE
explorer is useful when writing programs because it includes the objects network path.
This feature allows the user to double click the object as opposed to writing out the
network path manually.
From the Check page, double clicking a listed error places the cursor on the program
instruction in the Editor that caused the error.
IDE Assistant Window
Schneider Electric 2-16
The IDE Watch Bar
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 because it
allows the user to constantly monitor the objects changes in value.
If the Watch Bar is hidden, go to Toolbars in the View menu to add it
IDE Watch Bar
Rearranging IDE Toolbars and Windows
Many features within the IDE can be rearranged to suit your personal preference:
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 in the following paragraphs.
Andover Plain English Language Reference 2-
17
Docking and Floating
Depending on the selection or de-selection of the Allow Docking and Float in Main
Window 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 Docking and Floating Options
The docking and floating menu is accessed by right clicking the mouse cursor in a gray,
non-button area of the:
Assistant or Watch windows
IDE Explorer or Command Line
Docking and Floating Options Menu

Docking and Floating Menu Selections
Option Enabled Disabled
Allow
Docking
Lets you drag the window to a fixed
position on the screen. Window size
changes according to available
empty screen space. Shows an
outline of the new window shape
before docking. The title bar
disappears on a docked window.
Displays the windows title
bar, indicating that the
window is a floating object
that can be dragged
anywhere on the screen.
Hide Removes the window from view. Make windows visible from
the View menu.
Float in Main
Window
Puts the tool window in the Main
Window and can be moved within it.
Window can be dragged out
of the Main Window.
Schneider Electric 2-18
Configuring a Plain English Program File
Configuring the Program File
To setup the new program file, click the Configuration icon in the Check toolbar, or
select Configuration from the File menu. This displays the Configuration dialog box.
Andover Plain English Language Reference 2-
19












Configuration Dialog Box

Configuring a New Program File
Step Action
1 Enter a brief description (optional) up to 32 characters in length.
2 Select Enabled in the State selection box.
3 Select the Autostart checkbox if you want the program to start running
the moment it is saved.
4 Select the Command Line checkbox if you want the program to be
controlled from the Command line.
5 Select either Looping or Fall Thru in the Flow Type selection box
depending on what type of program is intended. (See "Looping vs.
FallThru" in Chapter 3.)
6 If a "Run on Any Workstation" checkbox is present, select it if you want to
run the programon any workstation. If you don't select it, then the
program can only be run on the workstation on which it is installed.
Note: When Run on Any Workstation appears in the File Configuration
dialog box, you can select it or AutoStart, but not both.
7 Click the OK button at the bottom of the dialog box and the File Editor
window appears.
Schneider Electric 2-20
Using the Editor
When the Editor window first appears, it is blank until you begin writing 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.
The following sections describe the different tools available to you when using the Editor.
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 keystroke combinations to accomplish these tasks are described in the following
table.
Moving the Curso
Editor K nations eystroke Combi
r
Key or Keys Action
Arrow ce in the direction of the arrow Moves the cursor one spa
(left, right, up, or down).
CTRL right arrow Moves the cursor to the beginning of the next word.
CTRL left arrow d. Moves the cursor to the beginning of the previous wor
Home on. Moves the cursor to the beginning of the line it is
End Moves the cursor to the end of the line it is on.
CTRL Home file. Moves the cursor to the beginning of the first line in the
CTRL End . Moves the cursor to the end of the last line in the file
Page Up Scrolls the text up the number of lines in a window.
Page Down Scrolls t number of lines in a window. he text down the
Selecting Text
Shift Arrow text one character at a time in the direction of the Selects
arrow.
Shift Home ts text from the cursor position to the beginning of the Selec
line.
Shift End Selects text from the cursor position to the end of the line.


Using the Text Editor continued
Selecting Text
Key or Keys Action
Shift CTRL right arrow Selects text from the cursor position to the beginning of the
next word.
Shift CTRL left arrow Selects text from the cursor position to the beginning of the
previous word.
Shift CTRL Home Selects text from the cursor position to the beginning of the
file.
Shift CTRL End Selects text from the cursor position to the end of the file.
Changing and Moving Text
Backspace Deletes text you have selected. Otherwise, deletes one
character to left of the cursor. If the cursor is at the
beginning of a line joins the line with the previous one.
CTRL F Opens the Find window.
CTRL H Opens the Replace window.
CTRL Insert Copies selected text and store it in a temporary storage
area. You can then put it somewhere else with Shift Insert.
Delete Deletes text you have selected. Otherwise, deletes one
character to the right of the cursor. If the cursor is at the
end of a line connects the line to the next one.
Enter Ends a line and starts a new one.
Insert Toggles between two modes:
Inserting text into the current text
Typing over current text.
Shift Delete Cuts selected text and store it in a temporary storage area.
You can then paste it with Shift Insert.
Shift Insert Puts or pastes text you last copied or cut at the cursor
position in the file. Replaces any selected text with text you
last cut or copied from the file.
The Editor Shortcut Menu
You can also edit text with selections from the Edit drop-down box on the 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.






Editor Shortcut Menu
Andover Plain English Language Reference 2-
21
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.





Find Dialog Box

Find Dialog Box Features
Menu Item Action
Find What Enter the text to search forcan be up to 132 characters including
spaces.
Match whole
word only
Only finds the selected word and rejects other words that would
contain it (if "one" is the selected word, it would reject "done", "bone",
"alone", and so on).
Match case Will match the case of the selected word( if "One" is selected it will
ignore "one")
Direction Up searches from the cursor position to the beginning of the
program. Down searches from the cursor position to the end of the
program.
Find Next Finds the next instance of the word/s listed in the "Find What"
column.

Schneider Electric 2-22
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.







Replace Dialog Box

Replace Dialog Box Features
Menu Item Action
Find What Enter the text to search forcan be up to 132 characters including
spaces.
Replace with Enter the text you want to replace the found text with.
Match whole
word only
Only finds the selected word and rejects other words that would
contain it (if "one" is the selected word, it would reject "done", "bone",
"alone", and so on).
Match case Will match the case of the selected word( if "One" is selected it will
ignore "one")
Replace Replaces the first instance of the found text.
Find Next Replaces the found text when it is clicked and then the Replace
button is clicked.
Replace All Replaces all instances of the found text.

Andover Plain English Language Reference 2-
23
Going to a Labeled Program Line
To locate a labeled line in any program, you can use the Goto command. Select
EditGoto from the IDE menu bar to bring up the Go To dialog box. Then type in the
desired line label in the Line text box and click the Go To button.




Go To Dialog Box
Importing Programs
You can import an external program (located on a floppy disk or in a different directory)
into an existing program in the Editor. To do this, perform the following steps.
Importing a Program File
Step Action
1
Click at the point in the existing program where you want to insert the
external program.
2 A flashing cursor will appear at that point.
3 Open the File menu from the main menu bar.
4 Select Import from the File menu.
5 The IDE File Import dialog box appears.


Schneider Electric 2-24









File Import Dialog Box
Importing a Program File (continued)
Step Action
6 Use the Look in pull down list box to locate the file to import.
7 Double click the file name so that it appears in the File name text box.
8 Click the Import button.
9
The entire file is inserted into the existing program at the point selected in
step 1.
Exporting Programs
You can export an existing program in the Editor to another drive or directory. To do this,
perform the following steps.
Exporting a Program File
Step Action
1
Make sure the program file you wish to export is the active program in
the Editor window.
2 Open the File menu from the main menu bar.
3 Select Export from the File menu.
4 The IDE File Export dialog box appears.
File Export Dialog Box
Andover Plain English Language Reference 2-
25

Exporting a Program File continued
Step Action
5
Use the Look in pull down list box to locate the drive or directory to
export to.
6 Type in the name of the file in the File name text box.
7 Click the Save button to copy the program to the selected location.

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 Program
Once you have finished writing your program you need to save it, but before you do,
make sure the Assistant is displayed on your screen.
To save a program file, click Save in the File menu, or click the button in the Main
Toolbar.
The IDE automatically checks the file for errors before saving. If errors are found, the
Check tab on the Assistant becomes active and lists the errors. Double click any error
listed in the Assistant. This will place the cursor on the program instruction in the Editor
that caused it.
Note: The IDE will not let you save the program file, until you fix all the errors.
If you want to postpone fixing the errors in your program until a later time, you can use
the Export feature of the Editor to place it in a temporary file.
When all the errors have been corrected, the Check page of the Assistant will display the
following message.









The Save File Message
Schneider Electric 2-26
Opening the Program
To reopen the program from the IDE, open the IDE Explorer and locate the subject
program file. Double click 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 Program from the Command Line
You can start your program by entering the Run keyword followed by the program name
into the Command Line and then pressing the RETURN or Enter key (depending on the
keyboard). Make sure that the directory path to the program file, appearing in the
Command Line title bar, is correct.


Starting the Program from the Command Line

In order for the program to run, its State attribute must already be Enabled. (See
"Configuring the Program File" in this chapter)
The system then does the following:
Sets the programs Status attribute to Active.
Sets the programs 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.)
Andover Plain English Language Reference 2-
27
Monitoring the Program File Status
You can monitor the program file status by viewing the Run Time status page.
To access that page, click the Configuration icon in the Check toolbar or select
Configuration from the File menu. When the Configuration dialog box appears, click the
Run Time tab to activate the file status window.











The Run Time 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
Schneider Electric 2-28
Andover Plain English Language Reference 2-
29
Run Time Window Features
Item Description
Last Changed Shows the date and time the program was last altered.
Current Line Start Displays the date and time the current line began executing.
File Size Displays the number of characters (bytes) in the file (1024 bytes
equal 1KB). The size of the file also includes basics about the
file, such as its name, flowtype, and other attribute settings that
the controller stores.
Program Status Shows whether the program is Acti ve or Inacti ve.
Current Line Displays the name or number of the currently active line of the
program. No current line shows if you have not labeled any
program lines.
Error Gives the explanation of the last runtime error that occurred
when running this program.
TD Time in days that a program has been at the specified line.
TH Time in hours that a program has been at the specified line.
TM Time in minutes that a program has been at the specified line.
TS Time in seconds that a program has been at the specified line.
Stopping the Program
You can stop the program from the Command Line by entering the Stop 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 and executes it.
Using the Plain English Wizard
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.
Opening the Plain English Wizard
To access the Wizard, click the in the Check toolbar or select Wizard from the Tools
drop-down list box on the main Menu bar. Using either of these methods will open the
Wizard's main window.

The Plain English Wizard Window

Click the Next> button to bring up the File Selection menu page.
Schneider Electric 2-30
The Wizard File Selection Menu
The File Selection menu page shown below offers a variety of different types 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 a tab displays the programs
available of that type. To find information about a particular program, click its icon. The
programs 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.

PE Wizard File Selection Menu
Selecting and Configuring a Wizard Program
To select a program, click its icon and then click the Next > button. This displays the File
Configuration dialog box as shown on the next page. The selections on this dialog box
are the same as the standard Configuration dialog box except for one additional
checkbox:
Yes, include commentschecking 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.
Andover Plain English Language Reference 2-
31


PE Wizard File Configuration Dialog Box
Note: If you select a Function from the File Selection menu, the State, Flow Type and
Autostart selection will not be available in the File Configuration dialog box.
Click the Next> button displays the Object References Wizard screen.
Note: Some of the pre-written programs require additional input before they can be
transferred to the Editor. These programs are discussed on the next page.

Schneider Electric 2-32
The Object References Screen
The more complicated pre-written programs offered by the Wizard require references to
external objects. So when you click the Next> button on the 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 the Next> button
to go to the Final Wizard screen.


Figure 3-26. The Object References Screen

To replace the object references, click the empty Object Name field. This will display a
browse button. Click it and the Select an Object dialog box (not shown) appears.
Choose the object you want and click on the Select button to place it in the Object Name
field.
When you are finished, click the Next> button to go to the final Wizard screen.
Andover Plain English Language Reference 2-
33
The Final Wizard Screen
Click the Finish button to transfer the program that you selected with the PE Wizard to
the Editor.


Final PE Wizard screen
Schneider Electric 2-34
3
Programs, Files, and the Scanning
Process
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.
This chapter discusses the following topics:
Plain English Language Programs
Keywords
Program Flow
Constructing Program Statements
Program Files
The Scanning Process
Other Scanning Issues

Schneider Electric 3-2
Plain English Language Programs
The following paragraphs discuss how to construct a Plain English Language program,
while providing the basic components and their restrictions.
Instructions and Statements
A Plain English (PE) program consists of a set of instructions that tells the controller what
to do. Each instruction is called a statement. A statement is a complete description that
tells the controller to take some type of specific action.
An example of a PE statement might be:
TURN ON THE PUMP
To accomplish the programs purpose, program statements are listed in the order in
which the controller must perform them. In addition, each single physical line in the Editor
can contain up to 132 characters (not including the Return at the end of the line).
Names and Case Sensitivity
Throughout Plain English, there is no differentiation between words and letters that are
capitalized and those that are not. For instance, the following names are treated as the
same:
RoomTemp1
ROOMTEMP1
RoomtemP1
Use of " The"
Using "the" makes the statement appear more grammatical, but its use is optional in the
Plain English Language. The following example shows how The improves a statements
readability:
IF THE FAN IS ON THEN TURN ON THE PUMP
Andover Plain English Language Reference 3-3
Lines and Line Labels
In PE, a line is a statement or series of statements that belong together under one label.
You label a line with the LINE keyword or a colon after the line name (see Chapter 7). An
example of a line might look like the following:

LINE BEGIN
TURN THE HEAT OFF
TURN THE FAN ON
. . . . .
Or
BEGIN:
TURN THE HEAT OFF
TURN THE FAN ON
. . . . .
All of the statements following the BEGIN label are part of that line, until another LINE
label is encountered. The statements in the line are indented here to emphasize their
relationship to the line label. Ideally, you should always form lines this way.
Line labels do not necessarily need to include the word "LINE". The line label could have
been typed with just the name followed by a colon ( : )
Line labels are limited to 16 characters, including underscores, periods, and numbers.
Comments
Comments are optional sentences often used to help document the operation of a
program for the human reader. Comments are not operated upon; they are entered as
single lines preceded by a single quotation mark ( ). The following example contains a
comment:
' The following line begins the cool down process
Begin:
TURN THE HEAT OFF
TURN THE FAN ON
You can add as many comments as necessary, but each is restricted to one physical
(132 characters) line.
You can also add a comment after a statement on the same physical line, as shown in
the following instance:
TURN THE FAN ON start cooling
Schneider Electric 3-4
Chapter 4 explains how to form a 'string expression' using the J oining Operator.
Expressions
Statements that involve mathematical operations are called expressions. Expressions
can also be item names, or constants that return a numeric or string result.
Numeric Expressions
Numeric expressions always result in a number. Numeric constants and variables are
expressions as well. Expressions can also be mathematical calculations that result in a
number or comparisons that result in a TRUE or FALSE response. The following are
valid numeric expressions:
2
SQRT (9)
900 DIVIDED BY 8
WKD IS GREATER THAN MONDAY
String Expressions
String expressions are text and always result in a string of characters enclosed in
quotation marks. String constants and String variables are expressions as well. String
expressions can also be combinations that result in a string of characters. (See the
PRINT keyword statement in Chapter 7.)
The following are valid string expressions:
"WARNINGHIGH TEMPERATURE"
LEFT ("TEST",1)
"THE NUMBER OF ERRORS IS ";TOTAL1
Andover Plain English Language Reference 3-5
Keywords
In Plain English, program statements are constructed using words that the 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
word)
Defines an action the controller can perform.
Function Carries out a particular series of calculations or actions
and may return a specific value.
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 Continuum has reserved (called reserved words see Appendix
B).
Attributes and their settings (see Appendix C).
Command Line
The Command Line is an area within the Plain English Development Environment of
CyberStation where you manually type in and execute Plain English commands.
Schneider Electric 3-6
Program Flow
You use Plain English to instruct a controller to do certain things, such as 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
attribute:
FallThru
Looping
A FallThru program executes the program lines in the sequential order in which you list
themfrom the first to the last line. So the program flows, or "falls thru" the entire
sequence of statements.
A Looping program remains on the line it is on until it is instructed to "go to" (GoTo)
another line.
Looping vs. FallThru
In the following example, if you set the program to Looping, it scans the 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, then the program 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 and not greater than 75, the program flows to the next
consecutive line (labeled Pumping).
Andover Plain English Language Reference 3-7
Triggers
FallThru programs start when they are prompted by a specific point or system variable.
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 CyberStations 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 points trigger list. Refer to Chapter 13 of
the Continuum CyberStation Configurators 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)
Schneider Electric 3-8
Constructing Program Statements
To construct a program statement, follow the structure indicated in the keyword format
and the following general rules:
You must use one verb only (statement word) in each statement.
You can include one object or a list of objects after the verb.
The following are valid statements:

OPEN THE DAMPER
CLOSE THE VALVE
Open the damper, vent1, vent2, vent3 and vent4
Close the firstvalve, secondvalve, thirdvalve
You cannot, for instance, open the damper and close the valve in the same statement.
The following is an invalid statement:
OPEN THE DAMPER AND CLOSE THE VALVE
Conditional and Unconditional Instructions
The statements in the previous section are examples of unconditional instructions. Plain
English includes two fundamental types of instructions:
Conditional
Unconditional
Each of these instructions produces a different result, depending on how they are used in
a program.
A conditional instruction establishes criteria that have to be met before the instruction can
be executed and the task performed by the controller. For example:
IF Temp is 78 THEN Turn on Fan
An unconditional instruction directs a specific action without establishing any criteria
before the action can occur. For example:
Turn on Fan
Andover Plain English Language Reference 3-9
IFTHEN
IF..THEN statements differ from other statements in two major ways:
You use one or more operators to form a simply or complex expression (known as
the condition to be tested) to be place between IF and THEN.
You can include a statement (or multiple statements) that could otherwise stand on
its own after the word THEN.
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 verbssee Chapter 5). The
following example, shows a statement that 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.
Below is an example of a statement that contains another operatorIS GREATER
THAN:
IF TEMP IS GREATER THAN 86 THEN
The following complete IF..THEN statement appears to have two verbs; however, the
operator (IS) belongs with IF..THEN and TURN ON remains as the only verb:
IF FAN IS ON THEN TURN ON PUMP
The statement after THEN could be an independent statement:
TURN ON PUMP
For information on how to include multiple statements after the word THEN, see the
IF..THEN..ELSE keyword in Chapter 7.
Schneider Electric 3-10
Program Files
A program file contains statements that instruct the controller to perform some type of
action. You create program files on a controller or a CyberStation to store program
statements.
Keep Control in a Single Program File
Good programming practice dictates that you have one program file control per single
piece of equipment. Following this practice has the following advantages:
Makes programs easier to maintain.
Makes programs easier to debug
Prevents firing order list (see How it Works on the 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.
Andover Plain English Language Reference 3-
11
The Scanning Process
The following paragraphs provide a detailed description of the scanning process and its
six stages.
How the Scanning Process Works
The Continuum control system is constantly engaged in a sequential scanning process
that is performed in accordance with a firing order list. The firing order list is the order in
which the system runs programs starting from the top of the list and working its way
down. The firing order list is also useful in power failure situations. (See Power Failure
Conditions and the Firing Order later in this chapter)
In general, the interpreter inside each controller does the following:
Gathers all data it needs for the next scan through the programs.
Reads and executes one line from each enabled program starting with the first
program in the firing order list.
Converts and sets outputs.
This type of single run through the list of programs is called a "scan."
The controller then returns to the beginning of the firing order list and scans the next
appropriate line of each program. The scans continue.
The next appropriate line is the line determined by the scan process sequence.
Scan Action List
The following is a complete list of the scan actions in the order the controller carries them
out:
Updates all enabled system variables.
Updates controller-resident schedules, setting occupied and unoccupied events.
Updates controller input points.
Runs program statem ents and Command Lines (executes Command Lines between
Processes all alarms and if necessary, updates the Status bar.
program lines only).
Updates controller output points.
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 Stages
The basic stages in the scanning process are illustrated below. Each of the stages is
discussed in detail in the following paragraphs.


















The Scanning Process
Schneider Electric 3-12
Andover Plain English Language Reference 3-
13
Stage 1. Updating System Variables
The controller updates the values of all ENABLED system variables (DATE, SECOND,
MINUTE, HOUR, WEEKDAY, and so on) at the start of each scan. Setting the DATE first
ensures that all programs work from the same time base.
System variables 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
programs State is ENABLED, its Status is set to ACTIVE so it runs during the upcoming
scan.
Stage 2. Updating Schedules
When schedules are processed, it updates each occupied and unoccupied point so that
later, when programs run, the actions are based on the latest schedules.
Stage 3. Updating Input Points
The scan gathers electrical values (represented by the ELECVALUE attribute) of all
ENABLED inputs from remote and local inputs, in numeric order starting with input
number 1. The inputs for the electrical values are in the electrical units specified for that
point.
The controller converts each input that has changed since the last scan into engineering
units. Conversion methods may be different, but all occur at this moment in the scan,
whether an auto-conversion, customized conversion, system conversion (such as ACC
Degrees F or C), or null conversion (where VALUE equals ELECVALUE). The converted
value of each input point is stored in the input's object value attribute.
Once the new values are assigned to input points, those points retain their values
throughout the scan. Any action taken during the scan is based on the initial input values.
If a program is in the trigger list for an input point that has changed, and the program's
State is ENABLED, its Status is set to ACTIVE so it runs during the upcoming scan.
Schneider Electric 3-14
Stage 4. Running Programs and Executing Commands
During each scan, the controller executes the current line from each program that
conforms to the following:
State is ENABLED
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.
Stage 5. Updating Output Points
The scan sets output point values as instructed in programs or command 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.
As an example, if the first program sets the output of HEATER to ON and the last
program sets it to OFF, how does the controller resolve this kind of conflict?
The HEATER is set to OFF, because output points change at the end of the scanthe
setting of the last program is the one that takes affect.
Andover Plain English Language Reference 3-
15
You can use the fact that the output hardware is not updated until the end of the scan to
carry out certain advanced control strategies, but we do not encourage you to program
this way. You should handle both turning on and turning off a piece of equipment in one
program, so that no conflicts arise based on the firing order list.
We do, however, recognize that you may want a master emergency program to override
output settings of all other programs in certain circumstances. That is why you are
allowed to alter the firing order.
Stage 6. Evaluating Alarms
Finally, the last action of the scan is evaluating alarms.
The following describes the actions of an Infinity or i2 controller, not a BACnet controller.
BACnet alarms are slightly different.
Points with Infinity alarms can be triggered by up to eight separate conditions. Whenever
the point's value is set during the scan, the controller evaluates each condition
associated with an alarm and updates the point's alarm attributes: ALARM1 through
ALARM8. Or, it calculates the alarm's delay time. The alarm is activated immediately
unless it has a delay.
If the controller has set the ALARMDELAY, and the condition to set the alarm is TRUE,
the controller adds the ALARMDELAY time to the current system time to calculate the
alarm delay time. The scan places the alarm in a list of alarms to be evaluated again
based on the alarm delay time.
At the end of each scan, the scanner checks the list of delayed alarms. The scanner
reevaluates the alarm conditions of the alarms that have reached their delay times, and if
they are still TRUE, sets the alarms.
After the scan processes the alarms, it updates the Status bar display if its setting has
changed or if a value it is displaying has changed.
Schneider Electric 3-16
Other Scanning Issues
The following paragraphs describe other issues that affect the scanning process.
Numeric, String, and DateTime Points
Numeric, string, and datetime points change values immediately within a program. So if
the first program sets the setpoint to 72, and later in the same scan another program
tests the setpoint, the later program sees the new value of 72.
Updating Point Logs
As it alters point values, the scan process evaluates all points that are automatic logs and
updates them if necessary (based on the log interval).
Triggering Programs from Points
Scan length varies depending on the amount of work done. You can reduce scan time by
assuring your programs conform to the following guidelines:
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 Points
Point values can be exported at any time during the scan. As an example, if
PROGRAM1 turns a FAN ON early in the scan and PROGRAM99 turns it OFF later,
although the fan would never physically turn on, the VALUE of ON could be exported to
another controller between PROGRAM1 and PROGRAM99.
This is another reason you should handle both turning on and turning off a piece of
equipment in the same program.
Andover Plain English Language Reference 3-
17
Power Failure Conditions and the Firing Order
The Firing Order can be used to determine the order in which programs run. This is
especially useful when handling power failure conditions. In such a 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.
To accomplish this, write a Fall-Thru program that is triggered by the PowerFail system
variable. This program should contain a statement that starts all the other programs in
the correct sequence.
START Program1, Program2,
This sets each program's status to active, and runs the program, starting execution at the
first line of the program.
Schneider Electric 3-18

4
Points, Constants, and Variables

This chapter describes the types of points, constants and variables that exist in the
Andover Continuum system. Some topics included in this chapter are: the difference
between hardware and software points, what constitutes a constant and how a constant
differs from a variable, what a system defined constant is, what makes a local variable
different from a system variable and unique i2 controller system variables.
This chapter discusses the following topics:
Points
Constants
Variables
Local Variables
System Variables
Schneider Electric 4-2
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 Points
Controllers use input and output points to interact with the environment. They connect to
sensors or devices directly from certain controllers or via input/output IOU modules that
are attached to a controller.
Input Points
An input point senses temperature, pressure, and the closure of a switch contact or any
outside environmental entity that can be electrically represented. Input circuits in Andover
Contiuum controllers act like voltmeters; they can measure the presence or absence of a
voltage. In situations where switch contacts are being sensed, the input circuit supplies
the voltage to one side of the contact. When the contact is closed, the voltage is sensed
on the other contact. Temperature and pressure sensors modify the value of the voltage
sensed. Each input point includes an associated value attribute that represents the
voltage reading at one particular point in time. When you reference an input point in a
Plain English program you are actually referencing the value attribute of the point.
Example:
IF INPUT1 =74 THEN
INPUT1s value attribute contains the input reading (74)
Andover Plain English Language Reference 4-3
Output Points
Outputs control external equipment such as motors, valves and heaters. Andover
Continuum 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).
Outputs that supply a variable voltage or current can be set to a specific value. The value
becomes the voltage or current the output supplies.
Software Points
Software points are storage locations found within the controller or workstation where
information can be saved for use in a program. Some software points are read-only.
These points can represent system information regarding the status of various hardware
or software entities.
The following are examples of software points:
Numeric (called Multi-State Value, Analog Value or Binary Value on Workstations)
String
DateTime
A good example of a software point would be a numeric that serves as a place to store
the high or low limit (set point) for a temperature reading.
Numeric Points
Numeric points are storage locations in a controller's memory that contain numeric-only
information. A numeric point could also be used to indicate whether a building is occupied
or not, in which case its value could be ON or OFF.
Multi-State Value Points
Multi-State Value points are storage locations in a workstation's memory that contain
numeric-only information.
Schneider Electric 4-4
String Points
String points are storage locations in a controller or workstations 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.
DateTime Points
Datetime points are storage locations in a controller or workstation's memory that store
date time information. They store a timestamp (the default is J anuary 1,

1989) not month
or day of week. They are used in schedules and to create time stamps.
Controller vs. Workstation Points
Workstations and controllers share many of the same Continuum capabilities. For
instance, you can create a program that runs only on a 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).
BACnet controllers are treated as Infinity controllers and therefore include Infinity-based
names for their points and programs as well.

Andover Plain English Language Reference 4-5
Constants
Constants are numbers, words, or dates that do not change, they remain constant. There
are two types of constants:
Numeric
String
Note: For DateTime constant values, see the StrToDate conversion function.
Numeric Constant
A numeric constant is a number. The number can be an integer (with no decimal places)
or a number with a decimal (floating point).
Integer Numbers
Integer numbers have no decimal places. When an integer number is required in a
keyword format, you can use only a whole number, positive or negative, including zero.
Floating Point Numbers
A floating point number is a number with a decimal. You can enter a floating point
number as one of the following:
The actual number with up to seven decimal places
A number in scientific notation
Positive numbers between 1.40129E-45 and 3.402823E+38

4E+32
Negative numbers between -3.402823E+38 and -1.40129E-45
The numbers accepted are IEEE single precision floating point.
Examples of Numeric Constants
The number (e.g., 2,000) cannot have a comma because it must be made up of the
numeric characters 0 through 9 only. Entering a comma in a number makes it an invalid
number.
Examples of some acceptable numbers include:
12
74.5
-.543
Schneider Electric 4-6
How the Controller Interprets Numbers
The controller accepts all numbers, but the controller interprets:
Numbers greater than 3.402823E+38 as infinity.
Numbers less than -.402823E+38 as negative infinity.
Numbers between 1.40129E-45 and -.40129E-45 as zero.
String Constants
A string constant is a series of ASCII characters, including blanks, surrounded by
quotation marks ("string").
Rules for String Constants
Even though a string may contain a number, the number cannot be used in mathematical
calculations.
A string can have up to 132 characters when used in a CX series controller and up to 32
characters when used in an Infinet i2 controller.
In addition, a string can contain a vertical bar ( | ) followed by an ASCII code (a number
that stands for a character or simple action). You would, for instance, use |7 to produce a
beep:
PRINT " The next sound you hear is a beep |7"
Anything you put after the vertical bar is interpreted as a code or a format for a variable
value. For example, to print a quote enclosed by quotation marks you would use ()
following the vertical bar. In the statement:
PRINT The string | abc| is included
Prints: The string abc is included.
More information about the vertical bar in strings is included under the PRINT keyword, in
Chapter 7.
The complete ASCII code table is listed in Appendix A.

Andover Plain English Language Reference 4-7
System Defined Constants
System constants are predefined in Plain English and their values do not 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 to which you can
assign attributes. For instance, you can set the point type attribute to VOLTAGE, so
VOLTAGE is a system constant.
Note: Do not use system defined constants as names when you name programs, points,
or other items.
For a complete listing of Continuum system constants refer to Appendix B.
Schneider Electric 4-8
Variables
Variables are names that stand for numbers, words, or dates and times. A 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.
Numeric Variables
A numeric variable is a name that represents a number. Numeric variables are subject to
the same range limitations as numeric constants. Numeric constants, variables, points,
expressions (formulas), or functions can be compared to other numeric type items or
used in mathematical calculations. For more about numeric variables, see the NUMERIC
statement keyword in Chapter 7.
String Variables
A string variable is a name that represents a series of alphanumeric characters. String
constants, variables, points, expressions, or functions can be compared to other string
type items. Strings cannot be used in mathematical calculations unless they are
converted to a numeric type. For more about string variables refer to the STRING and
STRINGFILL statement keywords in Chapter 7.
DateTime Variables
A datetime variable is a name that represents a date and time. Datetime constants,
variables, points, expressions, or functions can be compared to other datetime items.
You can retrieve the date and time from the STRTODATE function or from the DATE
system variable. Chapter 7 provides a full discussion of both these keywords.
You can print out a datetime variable to see what date and time is in it, but the date and
time that prints is in a predefined format you cannot change.
The date and time prints in this format (in the 24-hour clock):
MONTH DD YYYY hh:mm:ss
Andover Plain English Language Reference 4-9
Local Variables
Whereas system variables are known to all controllers and workstations in the system,
local variables are only known to 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. Define local
variables using the following keyword statements (each is listed in Chapter 7).
Numeric
String
DateTime
Numeric Keyword
The Numeric keyword assigns the name that follows it as a local numeric variable:
Numeric RateOfRise
String Keyword
The String keyword assigns the name that follows it as a local string variable. The
maximum number of characters allowed is defined before the name:
String 40 DirtyFilterMsg
DateTime Keyword
The DateTime keyword assigns the name that follows it as a local variable that accepts a
date and time:
DateTime LocalDateTime
System Variables
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.
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 illustrates a portion of the system variables that appears in the Explorers
viewing pane for the selected controller.










Controller System Variables Appearing in Continuum Explorer
Programmable System Variables
Programmable system variables are names for values the controller sets initially, that you
can change later. The term programmable always means you can change a value.
The programmable system variables are listed and described on the following page.
Note: The i2 and BACnet controller programmable system variables and techniques are
covered extensi vely in the i2 and BACnet Controller Technical Reference Guides.

Schneider Electric 4-10
Andover Plain English Language Reference 4-
11
System Variable Listing
The following table provides a complete list of the system variables for 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.
Workstation & CX System Variables
Name Available on Description
AccessLog CX series
controllers
The number of personal records stored on
the access server.
AccessServer ACX & CX series
controllers
A programmable system variable that
indicates the ACCNet ID where the areas
and personnel are stored for access control.
Setting this system variable to 0 (zero)
instructs the access controller to perform
local access validation using its distributed
personnel objects.
Alarms All controllers &
CyberStation
The number of pending alarms. Increments
by one each time a new alarm occurs and
decrements by one each time an alarm
returns to normal.
AudioBell DCX250 controller A programmable system variable that sets
the number of seconds that the DCX250
display will beep for.
AvailRecords ACX & CX series
controllers
Expresses a close approximation of the
remaining slots left to store personnel
records in a controllers memory.
BackLight DCX250 controller A programmable system variable that sets
the number of seconds to turn on the
background light on the DCX250 display.
CabinetTamper ACX controller Indicates whether or not the controller has
been tampered with (True or False).
CPUPower CX series
controllers
A programmable system variable that is
used to turn off the battery power to the
controllers CPU.
DatabaseStatus CyberStation Shows the current state of the database as
Online or Offline.
Date *All controllers &
CyberStation
Retrieves current system date and time so
that you can then store it in a variable.
DayofMonth *All controllers &
CyberStation
Gives the current day of the month from 1
to 31.
DayofYear *All controllers &
CyberStation
Gives the current day of the year between 1
and 366.
DCXPower DCX250 controller A programmable system variable that
controls power to the controller when its
PowerFail system variable is ON.
Errors *All controllers &
CyberStation
Indicates the number of errors existing on
the system.

Schneider Electric 4-12
Workstation & CX System Variables
Name Available on Description
EventLogSize CX series
controllers
A programmable system variable that
indicates the number of access control
events the controller can store in its event
log.
FreeMem *All controllers Indicates the number of bytes of free
memory available on a controller. Does not
indicate available memory on a
CyberStation.
Hour *All controllers &
CyberStation
Indicates the current hour, from0 to 23.
HourofDay *All controllers &
CyberStation
Indicates the time in decimal form from 0 to
23.99.
HundredthofSecond CyberStation Indicates hundredths of a second as a
number between 0 and 99.
Infinet1Count CX series
controllers and
CMX 9924
controller
Gives the number of Infinet controllers
communicating with the CX or CMX 9924
using Commport 1.
Infinet2Count CX series
controllers and
CMX 9924
controller
Gives the number of Infinet controllers
communicating with the CX or CMX 9924
using Commport 2.
IOUCommFlt1 to
IOUCommFlt16
*All controllers Gives ON if there is a communication fault
(failure) to or from the controllers IOU
module or OFF if there is no communication
fault.
IOUPower CX series
controllers
A programmable system variable that
controls power to the IOU modules when the
associated controllers PowerFail system
variable is ON.
MessageWindow CyberStation A separate window that shows all of the
system text messages since the last time
the message window was emptied.
MicroPower CX series
controllers and
ACX781Infinet
controllers
A programmable system variable that
controls power to the ACX781 Infinet
controller when the associated controllers
PowerFail system variable is ON.
Minute *All controllers &
CyberStation
Gives the exact minute of the current hour,
from 0 to 59.
ModemPower CX series and
CMX series
controllers
A programmable system variable that
controls the battery power to the controllers
modem. Set to ON when AC power is up
and OFF when it is goes down.
Month *All controllers &
CyberStation
Gives the current month of the year, from
J anuary to December.
NewAlarmCount CX and CMX
series controllers
Indicates the number of new alarms on the
controller and all its Infinet controllers since
the last time the alarms were sent to the
workstation.
PowerFail *All controllers &
CyberStation
Indicates whether or not the AC power to
the controller has failed. See full description
on page 4-14.
Andover Plain English Language Reference 4-
13
Workstation & CX System Variables
Name Available on Description
PowerUpTime *All controllers &
CyberStation
Gives the date and time of the last AC
power application to the controller.
ReaderPower ACX series
controllers
Indicates whether or not any access card
reader on the controller has lost power.
Gives TRUE if the card reader lost power,
FALSE if not.
Scan *All controllers &
CyberStation
Indicates the controllers last scan time in
seconds.
Second *All controllers &
CyberStation
Gives the exact number of seconds of the
current minute, from 0 to 59.
Status1 to Status8 CX 9201 controller Programmable system variables that control
the eight status LEDs on the front of the
controller cabinet. ON turns on the LED and
OFF turns off the LED.
SystemStatus ACX and CX series
controllers
Indicates whether communications is
occurring between the access server and
the controller.
TimeofDay *All controllers &
CyberStation
Gives the time of day with the hour and
minute in the format HHMM where HH is a
number between 0 and 23 and MM is a
number between 0 and 59.
TouchedCell DCX250 controller Indicates the number (from 1 to 64) of the
first block (cell) that an operator touched on
the ACX 250 display during the last scan.
UniquePin ACX, CMX and CX
(except 9500)
series controllers
Indicates whether or not each person who
has access must have a unique personal
identification number (PIN).
Version *All controllers &
CyberStation
Gives the current version number of the
software running on the controller.
Weekday *All controllers &
CyberStation
Gives the current day of the week, from
SUNDAY through SATURDAY.
Year *All controllers &
CyberStation
Gives the current year from 1989 through
2088.
*Includes the following controllers: ACX series, CX series, LCX series, SCX series, TCX
series and the DCX 250.
Specific information pertaining to various characteristics of particular system variables
listed in the tables is provided in the following paragraphs.
STATUS# System Variables
The STATUS#system variables exist for up to eight status lights on the front of the CX
9201 controllers cabinet (STATUS1, STATUS2, 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.
Schneider Electric 4-14
PowerFail and other Power related System Variables
On all controllers that have battery backup, each time you lose AC power to the controller
its PowerFail system variable is automatically set to ON and the battery backup provides
power. This PowerFail system variable remains ON throughout AC power loss until AC
power is restored (see the 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.
Note: On all other controllers, when AC power is restored the PowerFail system variable
is ON only during the first scan after power restoration.
When AC power is applied to the controller, the current date and time is recorded to the
PowerupTime system variable. This system variable can be used to determine how
many hours have elapsed since AC power was restored to the controller.
When the system sets the PowerFail system variable to ON, some additional system
variables provide the user with power control for certain portions of the system. These
are settable by the user only if the system is operating in battery backup mode (meaning
the PowerFail system variable is ON). These power-related system variables can be ON
or OFF.

Associated PowerFail System Variables
System Variable Definition
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.

5
Operators and Expressions
This chapter describes the operators that Plain English uses for mathematical
expressions and includes the following topics:
Order of Action
Plus Sign, Minus Sign, Negation, BITNOT, and Percentage Operators
Fundamental Operators
Comparative Operators
List and Range Operators
Bit Operators
AND/OR and String J oining Operators
Schneider Electric 5-2
Order of Action
An operator is the part of an expression that causes a mathematical operation to occur,
such as addition, subtraction, multiplication, division, and so on, or tests a condition such
as equality.
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
Array Element
Left to Right
Blank or \ Path Name Connector Right to Left
+
-
NOT
BITNOT
%
Plus Sign on Number
Minus Sign on Number
Logical Negation
Bitwise Negation
Percentage
Right to Left
^ Exponentiation Left to Right
*
/
MOD
Multiplication
Division
Modulus
Left to Right
+
-
Addition
Subtraction
Left to Right
<
<=
>
>=
Less Than
Less Than or Equal
Greater Than
Greater Than or Equal
Left to Right
=
<>
IS IN
IS NOT IN
IS BETWEEN
IS THRU
Equal
Not Equal
Set Inclusion
Set Exclusion
Range
Range
Left to Right
BITAND
BITOR
BITXOR
Bitwise Logical And
Bitwise Logical Or
Bitwise Exclusive Or
Left to Right
&
!
Logical And
Logical Or
Left to Right
; J oining Operator Left to Right

Andover Plain English Language Reference 5-3
Plus Sign, Minus Sign, Negation, BITNOT, and
Percentage
The following table identifies and defines the Plus Sign, Minus Sign, Negation, BITNOT,
and Percentage operators.
Plus Sign, Minus Sign, Negation, BITNOT, and Percentage
Operator Definition
+number
Can be used in front of a number to show it is positive by 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
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.
number % Divides the number by 100 to give you the percentage.

Schneider Electric 5-4
Fundamental Operators
The following table identifies and defines the Fundamental Operators:
Fundamental Operators
Operator Example Definition

Addition

number +number
Adds the numbers. Works only on numbers or datetimes
and the resulting expression is numeric or datetime.
Alias: PLUS.
Subtraction

number number

Subtracts one number from another. Works only on
numbers or datetimes and the resulting expression is
numeric or datetime.
Alias: MINUS.
Multiplication number * number
Multiplies the numbers. Works only on numbers or
datetimes and the resulting expression is numeric or
datetime.
Aliases: TIMES, MULT, and MULTIPLIED BY.

Division

Number / number

Divides one number by another. Works only on numbers or
datetimes and the resulting expression is numeric or
datetime.
Alias: DIVIDED BY.

Modulus

number MOD number
Finds the amount left over when dividing the first number
by the second. For example 9 MOD 7 gives 2. Similarly,
9 MOD 7 also equals 2.
Alias: REMAINDER.

Exponentiation number ^number
Finds the result of the first number raised to the second
number power.
Alias: EXP

Andover Plain English Language Reference 5-5
Comparative Operators
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.
Comparative Operators
Operator Example Definition
Less Than number < number
Compares two numbers and determines whether the value
of the left number is less than the value of the right.
Aliases: IS LESS THAN, (THAN is optional), and IS
BELOW.
Less Than or
Equal
number <= number
Compares two numbers and determines whether the value
of the left number is less than or equal to the value of the
right.
Alias: IS LESS THAN OR EQUAL TO where THAN and
TO are optional.
Greater Than number > number
Compares two numbers and determines whether the value
of the left number is greater than the value of the right.
Alias: IS GREATER THAN (THAN is optional), and IS
ABOVE.
Greater Than
or Equal

number >= number

Compares two numbers and determines whether the value
of the left number is greater than or equal to the value of
the right.
Alias: IS GREATER THAN OR EQUAL TO where THAN
and TO are optional.

Equal

number = number
Compares two numbers and determines whether the value
of the left number is equal to the value of the right.
Aliases: EQUALS and IS EQUAL TO where TO is optional.
Not Equal number <> number
Compares two numbers and determines whether the value
of the left number is not equal to the value of the right.
Aliases: DOES NOT EQUAL and IS NOT EQUAL TO
where TO is optional.

Schneider Electric 5-6
Comparing String Values
You may also use greater than, less than, or equal to operators to compare 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.
Refer to the standard ASCII chart in Appendix A for a complete list of characters.
Type Conversion
If the compared expressions are not the same type, you must convert them to 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.
Andover Plain English Language Reference 5-7
List and Range Operators
The following table identifies and defines the List and Range Operators:
List and Range Operators
Operator Example Definition
IS IN
number IS IN list
Or
number IS list
Determines if the first number or expression is in the
listed set. If the number on the left-hand side of the
expression is in the list expression on the right-hand
side, the expression yields TRUE (numeric 1), or
FALSE (0) otherwise.
Alias: IS EITHER.
IS NOT IN number IS NOT IN list
Determines if the first number or expression is NOT in
the listed set. If the number on the left hand side of the
expression is not in the list expression on the right
hand side, the expression yields TRUE (numeric 1), or
FALSE (0) otherwise.
Alias: IS NEITHER.
IS THRU IS number THRU number
Gives a range starting with the number or expression
to the left of THRU and ending with the one to the
right. The result of a range is the same type as the
expressions.
(This statement is operationally equivalent to IS
BETWEEN)
IS BETWEEN
IS BETWEEN number
AND number
Gives a range starting with the number or expression
before AND and ending with the one after it.
(This statement is operationally equivalent to IS
THRU)



Schneider Electric 5-8
Bit Operators
The following table identifies and defines the Bit Operators:
BIT Operators
Operator Example Definition
BITAND integer BITAND integer
Compares the binary equivalents of the two integers,
digit by digit, as if the 1s were TRUE and the 0s
FALSE.
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.
BITOR integer BITOR integer
Compares the binary equivalents of the two integers,
digit by digit, as if the 1s were TRUE and the 0s
FALSE.
If both binary numbers contain a 1 in the same place,
that is TRUE OR TRUE, which gives TRUE. If both
numbers contain a 0 in the same place, that is FALSE
OR FALSE, which is FALSE. If one number contains a
1 and the other a 0 in the same place, that is TRUE
OR FALSE, which is TRUE.

Refer to the truth table on the next page for further
explanation.
BITXOR integer BITXOR integer
Compares the binary equivalents of the two integers,
digit by digit, as if the 1s were TRUE and the 0s
FALSE. While BITOR finds cases where either digit is
TRUE, BITXOR finds cases where one or the other is
TRUE, but not both.
If both binary numbers contain a 1 in the same place,
that is TRUE OR TRUE, which gives FALSE because
only one or the other can be TRUE, not both. If both
numbers contain a 0 in the same place, that is FALSE
OR FALSE, which is FALSE. If one number contains a
1 and the other a 0 in the same position, that is TRUE
OR FALSE, which is TRUE.

Refer to the truth table on the next page for further
explanation.


Andover Plain English Language Reference 5-9
Truth Table
The following is the truth table for the bit operators:
BIT Operator Truth Table
Operator Integer1 Integer2 Result
BITAND
BITAND
BITAND
BITAND
TRUE
TRUE
FALSE
FALSE
TRUE
FALSE
FALSE
TRUE
TRUE
FALSE
FALSE
FALSE
BITOR
BITOR
BITOR
BITOR
TRUE
TRUE
FALSE
FALSE
TRUE
FALSE
FALSE
TRUE
TRUE
TRUE
FALSE
TRUE
BITXOR
BITXOR
BITXOR
BITXOR
TRUE
TRUE
FALSE
FALSE
TRUE
FALSE
FALSE
TRUE
FALSE
TRUE
FALSE
TRUE
Schneider Electric 5-10
AND/OR and String Joining Operators
The following table identifies and defines the AND, OR, and String J oining Operators:
AND/OR and String Operators
Operator Example Definition
AND number & number
Includes two expressions (which must be numeric or
converted to numeric) in a comparison. The statement
returns TRUE (numeric 1) if both expressions are
nonzero, and FALSE (numeric 0) otherwise.
The Alias: AND.
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.
The Alias: OR.
String J oining string ; string
J oins two strings by adding the second one onto the
end of the first to form a new string. Both expressions
must be of type string or convert to type string.
Also known as the concatenation operator.

6
Functions, Arrays, and Logs
This chapter explains Plain English Language functions; in particular, the chapter defines
arguments, as well as explains how to call them and how to return a value to a function.
This chapter also defines arrays and logs, explains how to set them up, and how they can
be used in functions.
This chapter includes the following topics:
Functions
Arrays
Logs
Schneider Electric 6-2
Functions
A function is a routine designed to carry out a particular task or series of tasks and is
executed in one Plain English scan.
There are built-in and user-defined functions. An example of a built-in function is the Plain
English function SQRT that returns the square root of a given number:

RESULT = SQRT(25)
The number the function operates on (25) is included within parentheses. This function
returns the value 5.
When a function is used to calculate or provide a value, it returns the value to the
program that calls the function. A program may also provide (pass) the function some
values (called arguments) to use in calculations or actions it must take. Arguments
(separated by commas if these are several) are included in parentheses following the
function name. Not all functions require arguments, however, you should include the
parentheses even if it is empty (e.g., function ()).
You can run a function from:
The Command Line, if the function exists in a controller or on a workstation.
A Program, if the program and the function exist on the same controller.
User-defined functions are created using standard Plain English keywords within
something called a function file. The name you give the file becomes the word you use
to activate the function. The small Plain English program you write as a function becomes
a subroutine that may be called whenever that particular action needs to be done.
You can use the RETURN statement to tell the controller to return to the calling program,
function, or command line.
Andover Plain English Language Reference 6-3
Calling a Function without Arguments
The function need not have arguments if it works with the same points all the time. You
can define one that stops all fans and call it FANSTOP.
STOP FAN1, FAN2, FAN3 AND FAN4
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 Function with Arguments
Functions can have not only points for arguments, but local variables from the calling
program, program names, other function names; basically 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.
Schneider Electric 6-4
Functions that Return a Value
In addition to returning to the calling program, RETURN can also bring back the results of
a calculation.
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
Use a name instead of an expression in the RETURN statement because the name is
more readable as its meaning is automatically clear.
RETURN can return a string in quotation marks or a date and time as well as a number,
and all of these are values.
Andover Plain English Language Reference 6-5
Arrays
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.
Example of an Eight
Element Array
Index Value
1 8.000
2 8.510
3 9.000
4 9.620
5 10.000
6 10.750
7 11.000
8 11.250

CLOCK[1] is 8.000, CLOCK[2] is 8.510, CLOCK[3] is 9.000, and so on. Each entry in an
array is referred to as an element. A Continuum array can contain up to 32,767 elements.
You can also put a numeric variable in place of the index number, such as
CLOCK[COUNT]. The variable is called an "index variable."
Setting Up an Array of Variables
When you define an array variable, you must specify a type (numeric, string, or datetime)
and the number of elements. The following statement defines (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.
Logs
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 another 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 Updates
Continuum updates automatic logs by inserting new values into the first log 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
1 72
2 73
3 75
4 74
5 73
6 72
7 71
8 73
Most recent
value recorded
8
th
most recent
value recorded

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.
Schneider Electric 6-6
Andover Plain English Language Reference 6-7
How to Retrieve Log Values
When working with logs, you wont actually see structures like the one shown on the
previous page. Instead, youll 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 Intervals
Logs are updated at an interval that you specify. You can specify that a log 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.
Logs automatically update in one of four ways:
Instantaneous
Average
Minimum
Maximum
Each update takes all the values of the last scan and acts on either the most recent
(instantaneous), the average of them (average), the lowest of them (minimum), or the
highest of them (maximum).
String and datetime logs must be instantaneous. It is also possible to have a string log
that contains messages.
Note: You can always manually update a log.
Schneider Electric 6-8
Setting Up a Log
You can define two logs for any point: a short-term log, and an extended 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 Logs in Functions
In certain functions you can use an array or a log name to represent the entire series of
numbers. Usually the function has a special format for arrays or logs. Such functions
automatically understand that you want the function carried out on the entire array or log.
For example, applying the AVERAGE function to a log called OUTSIDEAIR automatically
averages all the temperatures in the 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.
For example, PRINT OUTSIDEAIR prints the current value of OUTSIDEAIR, rather than
each value in the log.
The current value of the log and the last value logged are not necessarily the same. The
current value is the one read by the current scan.
Functions automatically carried out on the entire log are:
AVERAGE MAXIMUM
MAXITEM MINIMUM
MINITEM STANDARDDEVIATION
SUM

See Chapter 7 for more information on these function keywords.
7
Keywords






This chapter provides a complete description of all the keywords used in Andover
Continuum Plain English programming language.

The chapter begins with a discussion of the formatting conventions used to describe each
keyword, followed by a listing of the keywords categorized into logical groups.

The main body of the chapter contains the keyword descriptions arranged in alphabetical
order.

Schneider Electric 7-2
This chapter contains the following topics.

Topic See Page
Section 1 Format Conventions 7-2
Keyword Formatting Standard 7-2
Text and Symbols Used in the Format Heading 7-4
Format Terms in Bold Italics 7-6
Section 2 Logical Keyword Groups 7-7
Logical Keyword Groups Listing 7-7
Section 3 Keywords A through C 7-12
Section 4 Keywords D through G 7-74
Section 5 Keywords H through N 7-146
Section 6 Keywords O through R 7-229
Section 7 Keywords S through Z 7-302



Andover Plain English Language Reference 7-3

Section 1 Format Conventions

Keyword Formatting Standard

Identical
Format for All
Keywords
The keywords are listed in alphabetical order beginning on page 7-13.
Each keyword starts at the top of a new page and its classification by
type is 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.

Note: If a particular heading does not apply to the keyword being
discussed, it will be omitted.

Format Shows the correct way to enter the keyword instruction. The correct
order must be followed when entering the keyword into the system to
avoid programming problems. Additional information regarding text
style and symbols appearing under this heading are described on
page 7-5.

Purpose Describes the exact action the keyword carries out.

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
Keywords that are often used with the keyword being described or
that are closely related to it.


Schneider Electric 7-4

Keyword Formatting Standard

Alias An equivalent word or symbol for the keyword such as an
abbreviation.

Products
Supported
The Andover Continuum products (controllers and/or CyberStation)
that the keyword can be used on.

Modes
Available
Lists whether the keyword can be used in the command line mode,
the program file mode, or both. Programs cover InfinityPrograms,
InfinityFunctions, Functions and Programs.

Program Only run at the workstation
Function Can only be called at the workstation
InfinityProgram For Controllers
InfinityFunction For Controllers


Andover Plain English Language Reference 7-5

Text and Symbols Used in the Format Heading

Format
Heading
Information
The information contained after the keyword Format heading shows
how and what you must enter to correctly use the indicated keyword.
Depending on the keyword, the Format may present certain words
that you must type exactly as they are shown, and indicate words that
you must replace with an appropriate name or number.

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-7.

Parentheses ( ) When parentheses are shown as part of the Format, they must be
typed as part of the keyword statement. For example:
Format ACOS (number)
might require the arccosine of the number ". 7071", so the keyword
statement would be entered as ACOS (.7071).


Schneider Electric 7-6

Text and Symbols Used in the Format Heading

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
Colon (:)
When a comma or colon is shown as part of the Format, it must be
typed as part of the keyword statement. For example:
Format SEARCH (string, search_string)
Indicates that the words substituted for string and search_string in
the keyword statement must be separated by a comma (,).

Period (.) The period is used as a character in names and is not interpreted as
punctuation. Never put a period at the end of a keyword statement or
command line.

Andover Plain English Language Reference 7-7

Format Terms in Bold Italics

Replacement of
Terms
When the following terms appear in bold italics after the keyword in
the Format heading, they must be replaced according to the following
rules.

Number Replace number with:
Any number.
Any name that stands for a number.
Any other expression that gives a number, a formula or a
function.
The number may have decimal places after it. In some cases number
can be a comparison such as TOD >1500. Such a comparison gives
a TRUE or FALSE result, which the controller interprets as a number.

Integer Replace integer or integer_expression with any non-decimal
positive or negative number, including zero

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.

Name Replace name with:
Any point (including input, output, numeric, string, and datetime
types.
A variable name.
An object name (program, controller, commport, etc.).

Note: name cannot be a keyword.

List Replace list with a list of either:
Numbers Integers
Strings Names

Separate the items in the list with commas. You can also use AND or
OR between the last two items in the list. Often, where a list is called
for, you can give a single item or a list of items.

Schneider Electric 7-8

Section 2 Keyword Groups

Logical Keyword Groups

Logical
Keyword
Groups Listing
This section presents the Andover Contiuum Plain English keywords
in their associated logical groups. Details on each keyword are in the
alphabetically ordered keyword descriptions that follow this section.
Table 7-1. Logical Grouping of PE Keywords
Group Keyword Type
Access Control ACCESSLOG
ACCESSSERVER
AVAILRECORDS
CABINETTAMPER
EVENTLOGSIZE
READERPOWER
SYSTEMSTATUS
UNIQUEPIN
System variable
System variable
System variable
System variable
System variable
System variable
System variable
System variable
Alarm Counting
ACTIVEALARMS
UNACKEDALARMS
System variable
System variable
BACnet READPROPERTY
RELINQUISH
WRITEPROPERTY
Function
Function
Function
Building Control
MOVE
TURN
Statement
Statement
Control of Inputs and Outputs
IOUCOMMFLT#
STATUS#
System variable
System variable
(programmable)
Control Over Communications
INITMODEM
DIAL
CLOSE
HANGUP
OPEN
READ
Function
Function
Function
Function
Function
Function (comm
port)
Creating/Manipulating Files CLOSEFILE
FILE
OPENFILE
POSITIONFILE
READFILE
WRITEFILE
EOF
Function
Statement
Function
Function
Function
Function
Constant

Andover Plain English Language Reference 7-9

Logical Keyword Groups

Logical Keyword Groups Listing continued

Table 7-1. Logical Grouping of PE Keywords
Group Keyword Type
Date and Time DATE
DATETIME
DAYOF MONTH
DAYOFYEAR
DIFFTIME
HOD
HOUR
MINUTE
MONTH
POWERFAIL
POWERUPTIME
SECOND
STRTODATE
TIMEPIECE
TOD
TS, TM, TH, TD
WEEKDAY
YEAR
System variable
Statement
System variable
System variable
Function
System variable
System variable
System variable
System variable
System variable
System variable
System variable
Function
Function
System variable
Attributes
System variable
System variable
Debugging DISABLE
ENABLE
P
Print
Statement
Statement
Statement
Statement
Display ASK
CLOSEWINDOW
PRINT
MESSAGEWINDOW
SHOW
SHOWREPORT
STATUSLINE
Function
Function
Statement
System variable
Statement
Statement
System variable
Email SendEmail Function
Flow Control BASEDON..GOTO
BREAK
CONTINUE
FOR..NEXT
GOTO
IF..THEN..ELSE
LINE
Statement
Statement
Statement
Statement
Statement
Statement
Statement


Schneider Electric 7-10

Logical Keyword Groups

Logical Keyword Groups Listing continued
Table 7-1. Logical Grouping of PE Keywords
Group Keyword Type
Flow Control continued REPEAT..UNTIL
RETURN
ROTATE
RUN
STOP
SELECTCASE
WHILE
Statement
Statement
Statement
Statement
Statement
Statement
Statement
Input/Output LOGOUT
P
PRINT
Statement
Statement
Statement
Logical AND
BITAND
BITNOT
BITOR
BITXOR
IS
IS BETWEEN
IS GREATER
IS LESS
NOT
OR
Operator
Operator
Operator
Operator
Operator
Operator
Operator
Operator
Operator
Operator
Operator
Logs DeleteExtLog
GetExtLog
UpdateExtLog
Function
Function
Function
Mathematical ABS
ACOS
ASIN
ATAN
ATAN2
AVERAGE
CEILING
COS
DIVIDED BY
EXPONENTIAL
FACTORIAL
FLOOR
LN
LOG
MAXIMUM
MAXITEM
MINIMUM
MINITEM
MINUS
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
Operator
Andover Plain English Language Reference 7-
11

Logical Keyword Groups

Table 7-1. Logical Grouping of PE Keywords
Group Keyword Type
Mathematical, continued MOD
PLUS
RANDOM
ROUND
SIN
SQRT
STANDARDDEVIATION
SUM
TIMES
TAN
TRUNCATE
Operator
Operator
Function
Function
Function
Function
Operator
Function
Function
Function
Function
Miscellaneous ARG
CD
THE
Statement
Statement
Article
Operating System Access SHELL Statement
Retrieving Lists of Objects CLOSELIST
GETOBJ ECT
OBJ ECT
OPENLIST
Function
Function
Statement
Function
String Manipulation ASC
CHR
LEFT
LENGTH
MID
NUMTOSTR
RIGHT
SEARCH
STRINGFILL
STRTODATE
STRTONUM
TAB
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
System Defined Constants FAILURE
OFF
ON
-ON
PASSED
SUCCESS
Constant
Constant
Constant
Constant
Constant
Constant
Using Names in Programs GETNAME Function
Value Assignment SET
MOVE
TURN ON
TURN OFF
Statement
Statement
Statement
Statement
Schneider Electric 7-12

Logical Keyword Groups

Restricted
Keywords
The use of this group of keywords is usually limited to system
administrators and other users with appropriate configuration level
clearance.
Table 7-2. Restricted Keywords
Group Keyword Type
Administration CURUSER
CURWORKSTATION
DELETEEXTLOG
ERRORS
FREEMEM
LOAD
SAVE
SCAN
VERSION
Function
Function
Function
Function
System variable
System variable
Statement
Statement
System variable

250 Display
Unit Keywords
This group of keywords only applies to the 250-display unit.
Table 7-3. Keywords for the 250 Display Unit
Group Keyword Type
Display Unit Basics AUDIOBELL
BACKLIGHT
BEGINPOLYLINE
CLEARSCREEN
CONTROL
DRAWELIPSE
DRAWLINE
DRAWRECTANGLE
ENDPOLYLINE
LINEPOINT
LOCATE
SETDISPLAY
TOUCHEDCELL
BLUE
FILL
NOFILL
WHITE
System variable
System variable
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
System variable
Constant
Constant
Constant
Constant

Andover Plain English Language Reference 7-
13

Section 3 Keywords A through C

ABS Function

Format ABS (number)

Purpose Returns the absolute value of number. The absolute value of any
positive or negative number is always the positive number.

Remarks The number is any number or expression.

Example 1 You find the absolute value of -3 as follows:
Program File
Result =ABS (-3)
This statement sets RESULT to 3.

Example 2 To maintain a setpoint temperature within plus or minus 3 degrees,
when the temperature changes in either direction, the fan should blow
in either the heating or cooling mode as required.
In this situation, you should find the absolute value of the change to
control the fan, since it doesn't matter whether the change is positive
or negative:
Program File
If Abs(Temp.SP - Temp.2) >=3 then Run Fan.2

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation

Modes
Available
Command lines and programs.

7-14 Schneider Electric

AccessLog System variable

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.

This system variable and the event log to which it refers exist only on
the controller. Since the event log contains all access events that
have occurred on the controller, the keyword applies only if you are
using the controller for access control.

Types of access events logged include the following:

Valid Access Invalid Attempt
Door Fault Door Violation
Door Ajar Request to Exit
Cabinet Tamper Door Channel Override
Remarks
Refresh Database Access Mode

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
. . .


Andover Plain English Language Reference 7-15

AccessLog, continued

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
Keywords
EventLogSize

Products
Supported
ACX series, BACnet series, CMX series, CX series, and i2 series
controllers.

Modes
Available
Command lines and programs.

7-16 Schneider Electric

AccessServer System variable

Format AccessServer

Purpose 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.

Remarks Applies to ACX 700/780 series Infinet controllers as well as
CX99xx series NetControllers (with AC-1 series IOU modules).
Setting the AccessServer System Variable to 0 (zero) in an ACX
controller allows local validation only (personnel objects with area
links must exist in the controller's memory).
Setting the AccessServer System Variable to its own Network ID
in the NetController allows local validation only (personnel objects
with area links must exist in the controller's memory).
Setting the AccessServer System Variable to the Network ID of a
Continuum CyberStation (191 or above) in the ACX 700/780 or
NetControllers allows local and remote validation (personnel
objects with area links can exist in the controller's memory or in
the Continuum database). In this case, the PrimaryAccessServer
workstation is used to perform remote validation. If that
workstation is not available, then the SecondaryAccessServer
workstation is used instead.
Users may set AccessServer from the object editor or from the
Command Line interface.
AccessServer is not a global System Variablesettings will affect
only the owner's validation modes.

Andover Plain English Language Reference 7-17

AccessServer, continued

Example 1 Local validation only.

Suppose you want a NetController, with a Network ID of 126, to store
personnel information for access control, and perform local access
attempt validation only. You set that NetController's AccessServer as
follows:

Set AccessServer =126

Note 1: If you want to have an ACX controller do a local validation
only, you set its AccessServer system variable to 0.
Note 2: You can set a controller's AccessServer system variable
directly from an editor at the workstation level.

Example 2 Enabling remote validation.
Suppose you want an access controller to validate access attempts
first in its local database and then in the workstation database (if the
local validation couldn't find the personnel record in the controller
database).
You set the AccessServer system variable of that access controller
(whether NetController or ACX controller) to 191 or higher (through
the command line or an editor)
Set AccessServer =225

Note The value of AccessServer is stored in the controllers EEPROM
memory. Changing the value of AccessServer does not require a
controller reset.

Products
Supported
ACX series and CX series controllers.

Modes
Available
Command lines.

7-18 Schneider Electric

ACOS Function

Format ACOS (number)

Purpose Returns the arccosine of the given number.

Remarks The number is any number or expression that gives a result between
-1 and 1 inclusive.

The value returned is between 0 and pi (3.14159) radians.
Radians =degrees TIMES (3.14159/180).
Degrees =radians TIMES (180/3.14159).

Example Program File
AN.VALUE =acos(.7071)

Related
Keywords
SIN, COS, TAN, ATAN, ATAN2, ASIN


Alias ARCCOSINE

Products
Supported
BACnet series, CMX series, CX series, DCX 250, i2 series controllers
(except i2885, i2887, i3885, i3887), and CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-19

Alarms System variable

Format ALARMS

Purpose Gives the number of alarms pending. ALARMS increments (increases
by one) each time a new alarm occurs and decrements (decreases by
one) each time an alarm returns to normal.

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
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

7-20 Schneider Electric

AND Operator

Format Format 1: number AND number

Format 2: namelist AND final_name

Purpose Format 1: Provides the logical AND between two expressions.

Format 2: When used in a list of names between the last two items,
indicates the end of the series.

Remarks The number is any number or expression.
The namelist is one or more names with commas between them.
The final_name is a single name at the end of a series of names.
AND before the last name is optional.
The controller carries out all other operations (such as adding and
subtracting) before it acts on AND or (OR).

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


Andover Plain English Language Reference 7-21

AND, continued

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...

If AND occurs before OR, the controller interprets AND first:
Program File
If Tod >9:00am and Wkd =Sat or Wkd =Sun then...
is interpreted so that the items in parentheses below are calculated first:
If (Tod >9:00am and Wkd =Sat) or Wkd =Sun then...

Note to Programmer: Use parentheses to enforce the order of interpretations to resolve
any ambiguities.
7-22 Schneider Electric

AND, continued

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
Keywords
IF..THEN..ELSE
IS...
OR

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-23

ARG System variable

Format Format 1: ARG integer_constant name

Format 2: ARG [ integer_expression ]

Purpose Format 1: Renames one of the 15 system defined argument
variables (ARG[1] to ARG[15]) with a name you choose. Can only be
used to name an argument in a function.

The ARG variables are arguments or parameters that are passed to a
function. After you assign an easy-to-remember name to an
argument variable, you can then refer to it by its name so your
function is easier to understand.

Format 2: Calls the argument variable by its number.

Remarks integer_constant is any integer between 1 and 15.

name is any name you choose for the argument; up to 16
alphanumeric characters, including underscore and period, but must
begin with a letter. May not be a keyword.

integer_expression is any integer or expression that gives an
integer.

Up to 15 arguments can be passed.

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


7-24 Schneider Electric

ARG, continued

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
Keywords
PASSED


Alias PARAM

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Programs (only in functions).

Andover Plain English Language Reference 7-25

ASC Function

Format ASC (string)

Purpose Returns the ASCII value of the first character of the string.

Remarks The string is any text (word or words) or text expression.

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
Keywords
CHR

Products
Supported
BACnet series, CMX series, CX series, DCX 250, i2 series controllers
(except i2885, i2887, i3885, i3887), and CyberStation.

Modes
Available
Command lines and programs.

7-26 Schneider Electric

ASIN Function

Format ASIN (number)

Purpose Returns the arcsine of the number.

Remarks The number is any number between -1 and 1 inclusive or any
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.

Radians =degrees Times (3.14159/180).
Degrees =radians Times (180/3.14159).

Example Program File
Result =asin (1)

Related
Keywords
SIN, ACOS, COS, TAN, ATAN, ATAN2

Alias ARCSINE

Products
Supported
BACnet series, CMX series, CX series, DCX 250, i2 series controllers
(except i2885, i2887, i3885, i3887), and CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-27

ASK Function

Format ASK (title, question, answer_var_or_point)

This function is available only on a workstation. You can use ASK in
multiple programs, however, only one ASK window displays at a time.

Element Replace with
title A string containing the title of the window. The string may
be a string point, a local STRING variable, or a series of
characters in quotation marks. It may also be any string
expression.
question A string containing the question you want to present. The
string may be a string point, a local STRING variable, or a
series of characters in quotation marks. It may also be any
string expression.
answer_var_or_point Point or local variable to receive an answer to the question.
May be numeric, string, or datetime.
Purpose

When the window displays, the current value of answer_var_or_point
displays in the answer text box. If the answer_var_or_point has
never been set before, the answer text box appears blank. You can
choose to change that value and then press OK. When you change
the value and press OK, the answer_var_or_point becomes equal to
the value you type in the text box.
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 FAILURE if another window generated by ASK is already
displaying, since only one such window can display at a time.
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.



ASK, continued

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:
Example 1
Program File
Numeric AnySetpt
Ask "Setpoint Information", "Enter the new setpoint", AnySetpt
The displayed window would appear as shown on Figure 7-1.





Figure 7-1. Window created with the ASK keyword

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.












7-28 Schneider Electric
Andover Plain English Language Reference 7-29

ASK, continued

Example 2 When you use ASK, you may want to check to see if it returns
SUCCESS, FAILURE, or FormCancel. If ASK returns FAILURE, you
can continue to try to set up the window until ASK returns SUCCESS,
as shown in the following fall thru program:

Program File

Numeric Result
String Anypoint, TitleString
Presenting:
Result =Ask ("Point Name", "Enter The Point Name", Anypoint)

Testing:
If Result =Failure then Goto Presenting
If Result =Success then Goto Working
If Result =Formcancel then Stop

Products
Supported
CyberStation

Modes
Available
Programs only

7-30 Schneider Electric

ATAN Function

Format ATAN (number)

Purpose Returns the arctangent of number.

Remarks The number is any number or expression.

Returns an angle value between -3.14159/2 and 3.14159/2.
Radians =degrees TIMES (3.14159/180).
Degrees =radians TIMES (180/3.14159).

Example Program File
VAL.ARC =atan (0)

Related
Keywords
ASIN, SIN, ACOS, COS, TAN, ATAN2

Alias ARCTANGENT

Products
Supported
BACnet series, CMX series, CX series, DCX 250, i2 series controllers
(except i2885, i2887, i3885, i3887), and CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-31

ATAN2 Function

Format ATAN2 (sin, cos)

Purpose Returns an angle with a sine of sin and a cosine of cos.

Remarks Replace sin with a number that is the sine of an angle.

Replace cos with a number that is the cosine of an angle.

The angle returned is between -3.14159 and 3.14159 radians.
Radians =degrees TIMES (3.14159/180).
Degrees =radians TIMES (180/3.14159).

Example Program File
Ang.Damper =atan2 (0.0, 1.0)

Related
Keywords
ASIN, SIN, ACOS, COS, TAN, ATAN

Alias ARCTANGENT2

Products
Supported
BACnet series, CMX series, CX series, DCX 250, i2 series controllers
(except i2885, i2887, i3885, i3887), and CyberStation.

Modes
Available
Command lines and programs.

7-32 Schneider Electric

AUDIOBELL System variable

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

Products
Supported
DCX 250 Display Unit.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-33

AvailRecords System variable

Format AvailRecords

Purpose Continuum controller System Variable used to express a close
approximation of remaining "slots" left to store personnel records in
the controller's memory.

Remarks Applies to all ACX, CX, and CMX series controllers.
Not user settableyou cannot set AvailRecords.
Approximation onlycalculation based on average memory
space taken by a personnel object and its corresponding
arealinks.
You are able to view the value from the object editor or print it
from the Command Line interface.

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.

Products
Supported
ACX series, CMX series, CX series controllers.

Modes
Available
Command lines.

7-34 Schneider Electric

AVERAGE Function

Format Format 1: AVERAGE (numeric_list)

Format 2: AVERAGE ( numeric_array)

Format 3: AVERAGE ( numeric_log)

Purpose Format 1: Returns the average of the listed items.

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.

Replace numeric_array with any defined array that contains
numbers.

Replace numeric_log with any defined log that contains numbers.

Items in the list must all be either numbers or variables that contain
numbers.

Element numbers are not required. Omitting element numbers
averages the entire array or log.

Example 1 To average several temperatures, 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)


Andover Plain English Language Reference 7-35

AVERAGE, continued

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
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

7-36 Schneider Electric

BACKLIGHT System variable

Format BACKLIGHT

Purpose Turns on the background light of the DCX 250-Display Unit for the
number of seconds to which you set. Once it has been set to a
number, each second it will automatically decrement its value by one.

Remarks You can use "TURN OFF BACKLIGHT" to turn off the light

Example 1 Inside a program or from the command line, you set BACKLIGHT as
follows to turn on the DCX 250 Display Unit background light for 20
seconds:
Program File
BackLight =20

Example 2 Inside a program or from the command line, you can turn on the DCX
250 Display Unit background light for 5 minutes when an operator
touches anywhere on the screen, as follows:
Program File
If TouchedCell then Set BackLight =300

Example 3 Inside a program, you can turn off the DCX 250 Display Unit
background light as follows:
Program File
Turn BackLight Off

Products
Supported
DCX 250 Display Unit.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-37

BASEDON..GOTO Statement

Format 1 BASEDON number GOTO linelist
or
BASEDON number GO TO linelist
or
BASEDON number GO linelist

Format 2 BASEDON number GOTO LINE linelist
or
BASEDON number GO TO LINE linelist


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, write a program that activates
certain lines based on the day. The lines are labeled with LINE (see
LINE), telling the line the routine starts on.


7-38 Schneider Electric

BASEDON..GOTO, continued

Example
continued
Remember that SUN is considered the first day of the week, so in the
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

BASEDON.. GOTO works well with logs and arrays.
Note: The following variations to the BASEDON statement
(above) are acceptable.
You can also include the word LINE in front of the line list:
Basedon Wkd Goto Line Sun.1, Mon.1, Tue.1, Wed.1, Thu.1, Fri.1
You can replace GOTO with the word GO:
Basedon Wkd Go Sun.1, Mon.1, Tue.1, Wed.1, Thu.1, Fri.1
You can separate the word GO from the word TO:
Basedon Wkd Go To Sun.1, Mon.1, Tue.1, Wed.1, Thu.1, Fri.1
You can include the word LINE after GO and TO:
Basedon Wkd Go To Line Sun.1, Mon.1, Tue.1, Wed.1, Thu.1, Fri.1


Andover Plain English Language Reference 7-39

BASEDON..GOTO, continued

Related
Keywords
GOTO
LINE

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Programs

7-40 Schneider Electric

BEGINPOLYLINE Function

Format BEGINPOLYLINE ( )

Purpose Indicates that you want to begin drawing either multiple graphic lines
(polylines) or a polygon on the DCX 250-Display Unit. Returns
SUCCESS or FAILURE. Parentheses are not required if you put
BEGINPOLYLINE at the beginning of a statement.

Remarks Before you use BEGINPOLYLINE, set the display to NOFILL to form
lines, to FILL to form a polygon. Then give a series of line points (see
LINEPOINT) you want connected. Finally, you indicate the series of
line points is over by closing the instruction with ENDPOLYLINE.

You cannot begin a new polyline with BEGINPOLYLINE between
LINEPOINT statements. You may only draw one polyline at a time.

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
Notice that the parentheses are not required because
BEGINPOLYLINE begins the statement.



BEGINPOLYLINE, continued

As shown on Figure 7-2, the DCX 250-Display Unit forms a line
(rather than a polygon) because you set the display to NOFILL.
Example 1
continued

















Figure 7-2. Drawing connected line points using BEGINPOLYLINE on
the DCX 250 Display Unit


Create a polygon connecting a series of line points on the DCX 250
Display Unit by entering the following (again, no parentheses are
required):
Example 2
Program File
SetDisplay (Fill)
BeginPolyLine
LinePoint (10, 10)
LinePoint (10, 100)
LinePoint (100, 50)
LinePoint (10, 10)
EndPolyLine


Andover Plain English Language Reference 7-41

BEGINPOLYLINE, continued

The DCX 250-Display Unit forms a polygon (rather than a line)
because you set the display to FILL as shown on Figure 7-3.
Example 2
continued



















Figure 7-3. Drawing a polygon using BEGINPOLYLINE on the
DCX 250 Display Unit


SETDISPLAY Related
Keywords LINEPOINT
ENDPOLYLINE

DCX 250 Display Unit. Products
Supported

Programs Modes
Available

7-42 Schneider Electric
Andover Plain English Language Reference 7-43

BITAND Operator

Format integer BITAND integer

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.

Carries out comparisons of checksums and similar operations.

Remarks The integer is any number from 0 to 65535. If you give a number
with a decimal point in it, BITAND uses only the integer from it and
drops the fraction.

Example Suppose you want to compare TOTAL1 and TOTAL2:
Total1 =13 (binary equivalent is 0000000000001101)
Total2 =11 (binary equivalent is 0000000000001011)
You would compare them with BITAND as follows:
Program File
Set Result =Total1 bitand Total2
The comparison would give 0000000000001001. Result would be set
to 9.

Related
Keywords
BITOR
BITXOR
BITNOT

Products
Supported
BACnet series, CMX series, CX series controllers and CyberStation.

Modes
Available
Command lines and programs.

7-44 Schneider Electric

BITNOT Operator

Format BITNOT integer

Purpose Switches 1s to 0s and 0s to 1s in the binary equivalent of the integer,
digit by digit. (This is called the "one's complement" of the binary
number.) Creates a new binary number and then converts it back to
its decimal equivalent.

Carries out bitmasking and similar operations.

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.

Example Suppose you want to find the one's complement of AMOUNT.

Amount =13 (binary equivalent is 0000000000001101)

You could reverse the number with BITNOT as follows:
Program File
Set Result =bitnot Amount
The BITNOT of the amount would be 1111111111110010. The
statement would set Result to 65522.

Related
Keywords
BITAND
BITOR
BITXOR

Products
Supported
BACnet series, CMX series, CX series controllers and CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-45

BITOR Operator

Format integer BITOR integer

Purpose Logically compares the binary equivalents of the two integers, digit by
digit. Creates a new binary number that contains a 1 for each digit
position where either the first number's bit or the second number's bit
is 1 and where both the first and second number's bits are 1. Sets all
other digits to zero. Converts the new binary number to its decimal
equivalent.
Carries out comparisons of checksums and similar operations

Remarks The integer is any number from 0 to 65535. If you give a number
with a decimal point in it, BITOR uses only the integer from it and
drops the fraction.

Example Suppose you want to compare Total1 and Total2:
Total1 =13 (binary equivalent is 0000000000001101)
Total2 =11 (binary equivalent is 0000000000001011)
You would compare them with BITOR as follows:
Program File
Set Result =Total1 bitor Total2
The comparison would give 0000000000001111. Result would be set
to 15.

Related
Keywords
BITAND
BITXOR
BITNOT

Products
Supported
BACnet series, CMX series, CX series controllers and CyberStation.

Modes
Available
Command lines and programs.

7-46 Schneider Electric

BITXOR Operator

Format integer BITXOR integer

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.
Carries out comparisons of checksums and similar operations.

Remarks The integer is any number from 0 to 65535. If you give a number
with a decimal point in it, BITXOR uses only the integer from it and
drops the fraction.

Example Suppose you want to compare Total1 and Total2:
Total1 =13 (binary equivalent is 0000000000001101)
Total2 =11 (binary equivalent is 0000000000001011)
You would compare them with BITXOR as follows:
Program File
Set Result =Total1 bitxor Total2
The comparison would give 000000000000110. Result would be set
to 6.

Related
Keywords
BITAND
BITOR
BITNOT

Products
Supported
BACnet series, CMX series, CX series controllers and CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-47

BLUE Constant

Format BLUE

Purpose Sets the graphics on the DCX 250-display unit screen to blue when
you use it with SetDisplay.

Remarks The graphics on the 250 screen may be blue or white.

Example You set color of the graphics on the 250 screen as follows:
Program File
Setdisplay (Blue)

Related
Keywords
Setdisplay
White

Products
Supported
DCX 250-display unit.

Modes
Available
Programs

7-48 Schneider Electric

BREAK Statement

Format BREAK

Purpose Halts the smallest enclosing FOR..NEXT, REPEAT..UNTIL ,WHILE
and SELECT..CASE statements.

Remarks After BREAK executes, the next statement the system carries out is
the one immediately following the end of the loop.

Example To check several stored temperatures to see if any is reading over 75
degrees, you use a FOR..NEXT loop (see FOR..NEXT statement,
later in this chapter). Normally, the loop below would end after it
checks the 20 temperatures. To exit the loop as soon as you find one
over 75 degrees, you use the BREAK statement:
Program File
Line Tempck
'This line loops until it finds a temperature over 75 degrees.
For Num =1 to 20
If Temp[NUM] >75 then Break
Next Num
Goto HighTemp
Line HighTemp

Related
Keywords
CONTINUE

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Programs

Andover Plain English Language Reference 7-49

CabinetTamper System variable

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.

Remarks Applies only to ACX controllers.
If it is TRUE, the cabinet door has been opened; if FALSE, the
cabinet door is closed.
You cannot set CabinetTamper. You can print it from the Command
Line interface or read its value from the object editor.
You must connect to the ACX controller before you can print
CabinetTamper from the command line. Or you can access
CabinetTamper using the full path.

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

Products
Supported
ACX controller.

Modes
Available
Command lines and programs.

7-50 Schneider Electric

CD Statement

Format Format 1: CD controller_name

Format 2: CD

Format 3: CD \ path_name

Purpose Format 1: Connects to a CX or Infinet controller on the local area
network. Does not connect to a controller at another network (see
Format 3).

Format 2: Reconnects you to the CyberStation you actually logged
on to.

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.

Remarks Controller_name is the name of a CX controller or path name to an
Infinet controller. The "path" names first the CX controller, then the
Infinet controller.

path_name is the path to a site or to the root (backslash alone) on an
CyberStation workstation only. The backslash must always precede
the path to a site. Can also be a path to a controller or workstation at
the same or another site.

After you open the connection, it remains open until you use CD
again to connect to another site, or until the connection is open and
inactive for longer than the SafetyInterval attribute of the site allows
(see Appendix C for a listing of Site attributes).


Andover Plain English Language Reference 7-51

CD, continued

Example of
Format 1
From a terminal on any CX controller, you can connect to the Floor1
CX controller as follows:
Command Line
CD Floor1
From a terminal on any CX controller, you can connect to the Room4
Infinet controller on the Floor1 CX controller as follows:
CD Floor1 Room4
Or, if you are already connected to the Floor1 CX controller, enter the
following:
CD Room4

Example of
Format 2
After connecting to another controller for a while, you can connect to
the one you logged on to by entering CD without a name after it:
Command Line
CD
To connect to the root from the command line, you enter CD followed
by the backslash alone:
CD \

Example of
Format 3
To connect to another network from the command line, you enter CD
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
To connect to an Infinet controller at another site from the command
line, you enter CD followed by the name of the site, controller, and
Infinet controller, in that order. (Remember that the backslash must
always precede the site name):
CD \Building6 Floor1 Room4




7-52 Schneider Electric

CD, continued

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines



CEILING Function

Format CEILING (number)

Purpose Rounds number to the nearest larger integer on the number line and
returns that integer.

Remarks The number is any number or expression.
See the keyword "ROUND" for a comparison of all rounding functions.

Example 1 Program File
Top =Ceiling (-2.7)
This statement returns -2. (See figure 7-4.)








Figure 7-4. Number line-showing Ceiling (-2.7)
0 1 2 3 -4 -3 -2 -1 4
Position of 2.7
CEILING of 2.7 is nearest higher i nteger

Example 2 Program File
RNDVAL =Ceiling (4.3)
This statement returns a 5.

Related
Keywords
FLOOR
TRUNCATE
ROUND


Andover Plain English Language Reference 7-53
7-54 Schneider Electric

Ceiling, continued

Products
Supported
BACnet series (except b3885, b3887), CMX series, CX series, DCX
250, i2 series controllers (except i2885, i2887), and CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-55

CHR Function

Format CHR (number)

Purpose Returns one character whose ASCII code is number.

Remarks The number is any number or expression.

Can be used to send non-printing characters to a terminal, computer,
or printer to initiate action.

Example 1 After several pages of messages print, you then want to send a report
to that printer.

You make sure the report starts on a clean sheet of paper by sending
an instruction to the printer telling it to bring the paper to the top of a
new page. This action is called a formfeed. The ASCII code to
generate a formfeed is 12. You would write it in the following format:
Program File
'Generate a formfeed and report title
Print chr(12); "Weekly Energy Report"

Example 2 Another way to use the CHR function is to send a bell to a terminal,
computer, or printer to warn that the ERRORS variable has reached a
critically high value. The ASCII code used to generate a bell sound is
7. You would write it in the following format:
Program File
'Decides too many errors are not acknowledged and generates a bell
If Errors >15 then Print chr(7)


7-56 Schneider Electric

CHR, continued

Related
Keywords
PRINT
ASC

Products
Supported
BACnet series (except b3885, b3887), CMX series, CX series, DCX
250, i2 series controllers (except i2885, i2887), and CyberStation.

Modes
Available
Programs

Andover Plain English Language Reference 7-57

CLEARSCREEN Function

Format CLEARSCREEN ( )

Purpose Erases everything on the DCX 250-Display Unit screen and resets all
display attributes (set with SETDISPLAY) to their original settings.
Returns SUCCESS or FAILURE.

Remarks You can use CLEARSCREEN in programs only, not from the
command line. This characteristic prevents users from erasing
screen settings.

You do not need the parentheses if CLEARSCREEN is at the
beginning of a statement

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

Products
Supported
DCX-250 Display Unit.

Modes
Available
Programs

7-58 Schneider Electric

CLOSE Function

Format CLOSE (comm_port)

Purpose After you have used OPEN, resumes normal interactions with the
comm port. Normally, input appears on the screen and output goes to
the Message window. Returns SUCCESS if the comm port closes
without a problem and FAILURE if the comm port does not close.
Once CLOSE executes, the controller automatically moves to the next
labeled line.
You never need GOTO after CLOSE.

Remarks The comm_port is the comm port the modem is on. Or it can be the
path to the comm port. You may use CLOSE as a function only on
comm ports.
CLOSE must always be the last statement on a labeled line or on a
line by itself. The line immediately following the CLOSE line must test
for SUCCESS or FAILURE; otherwise, the control system software
considers that a CLOSE error.
Once you open a comm port with OPEN, after you complete
communications on that port, you must close the port with CLOSE.

Example After you open a modem with OPEN, then send a message, you can
close the modem comm port with CLOSE. The following example
shows a program that uses close. Note that it is a fallthru program
and uses a customized function named CALL and this program is
named ModemMessage.
Program File
Numeric Startup, Result
Opening:
Startup =Open (Modem1)
Calling:
If Startup =Success then
Call (Modem1, "999999")
Else
Goto Ending
Endif
Andover Plain English Language Reference 7-59

CLOSE, continued

Example
continued
Sending:
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

Related
Keywords
LINE OPENFILE WRITEFILE
OPEN READFILE
READ CLOSEFILE

Products
Supported
CMX series, CX series controllers and CyberStation.

Modes
Available
Programs

7-60 Schneider Electric

CloseFile Function

Format CloseFile (file_variable_name)

Purpose Closes the text file you opened earlier with the OpenFile keyword.

Remarks The file_variable_name must be the local FILE variable name you
created with FILE to correspond to a text file name.
CloseFile returns SUCCESS or FAILURE.
If you have used FILE in the program to define a FILE variable name,
you can then open the file with OpenFile and close it with CloseFile.

Example 1 Once you create a text file with FILE and open it with OpenFile, you
must later close it with CloseFile, as shown in this example.
Program File
File ZoneData
Numeric Chars, OK
String Dataline 80
Line Opening
Set OK = OpenFile ("c:\text\zone.txt", WriteOnly, ZoneData)
If OK =Failure then
Print "File Open Failed"
Stop
Else
Goto Writing
Endif
Line Writing
. . .
Line Closing
Set OK =CloseFile (ZoneData)
If OK =Failure then
Print "File Close Failed"
Else
Stop
Endif


Andover Plain English Language Reference 7-61

CloseFile, continued

Example 1
continued
The control system software knows that the file in the string
("c:\text\zone.txt") is the file that the ZoneData File variable
represents.
Remember that CloseFile is a function, so you must set a variable to
its result or use it in an IF..THEN statement. In this case, you set the
OK numeric variable equal to the results of the CloseFile.

Example 2 If you want to close an array of files you opened earlier, you can use
a FOR..NEXT loop with CloseFile, as in the following example.

Notice that the FilesOpen variable gives the actual number of files
opened successfully. You would set this variable in the Opening line
and later use it in the Closing line to close the correct number of files.
Program File
File ZoneData [3]
Numeric OK, FileNum, FilesOpen
Line Opening
.
.
Line Closing
For FileNum =1 TO FilesOpen
Set OK to CloseFile (ZoneData[FileNum])
If OK =Failure then Break
Next FileNum
If OK =Success then Stop
Print "File Close Failed for ZoneData"; FileNum

Notice that when CLOSEFILE fails, the control system software
breaks out of the loop and prints a failure message.


7-62 Schneider Electric

CloseFile, continued

Related
Keywords
FILE
OPENFILE
READFILE
POSITIONFILE
WRITEFILE
FAILURE
SUCCESS

Products
Supported
CyberStation.

Modes
Available
Programs


CloseList Function

Format CloseList (object_var)

Purpose Closes the list of objects that the local OBJ ECT variable
stands for.

Note: An object is any defined item on a controller or workstation

Remarks







The list is always one you opened earlier in the same program with
the OpenList keyword. You must have defined the local OBJ ECT
variable with the OBJ ECT keyword.
Returns SUCCESS or FAILURE.




Andover Plain English Language Reference 7-63

CAUTION
Be sure you close every list you open with
OPENLIST.
!


Example 1 After you have opened a list with OpenList, you must close it with
CloseList. The name of the list to close must be a local OBJ ECT
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.


7-64 Schneider Electric

CloseList, continued

Example 1
continued
Program File
Object CurrentReport
Numeric OK
Opening:
OK =OpenList ("Program", CurrentReport, CentralStation)
If OK =Success then Goto Checking
Else
Print "Cannot Open List"
Stop
Endif
Checking:
If GetObject (CurrentReport) is not Sucess Then Goto Closing
Print CurrentReport
Closing:
OK =CloseList (CurrentReport)
If OK =Failure then Print "Cannot Close List"
Stop
Endif
This program does not print the actual reports, only their names.

Related
Keywords
GetObject
OBJ ECT
OpenList

Products
Supported
Format 1: BACnet series (except b3885, b3887), CMX series, CX
series, i2 series controllers (except i2885, i2887), and CyberStation.

Format 2: CyberStation.

Modes
Available
Programs

Andover Plain English Language Reference 7-65

CloseWindow Function

Format Format 1: CloseWindow (graphics_object_name)

Format 2: CloseWindow (graphics_object_name_list)

Purpose Format 1: Closes the window of the named Pinpoint graphic object.

Format 2: Closes the windows of one or more named Pinpoint
graphic objects in list.

Remarks Replace graphics_object _name with the name of a Pinpoint
graphics object, including a full path name.

Replace graphics_object_name_list with the name of one or more
Pinpoint graphic objects, including a full path name.

Returns SUCCESS or FAILURE as described below:
SUCCESS - If the Pinpoint application is running, and the
specified graphics object or objects are successfully closed, or
are already closed.
FAILURE - If the Pinpoint application is not running.
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.

Example 1 To close the Panel1 graphics object on the CyberStation:

Command Line
CloseWindow (CyberStation\Panel1)

7-66 Schneider Electric

CloseWindow, continued Function

Example 2 Command Line
CloseWindow(Net1\Controller1\Panel1, Net1\Controller1\Panel2)

Products
Supported
CyberStation

Modes
Available
Command lines, programs, and functions.

Andover Plain English Language Reference 7-67

CONTINUE Statement

Format CONTINUE

Purpose Stops thecurrent iteration of the smallest enclosing FOR..NEXT,
REPEAT..UNTIL, SELECT..CASE or WHILE statement and starts the
next iteration from the top of the loop.

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
Keywords
BREAK

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Programs

7-68 Schneider Electric

CONTROL Function

Format CONTROL (style, left, bottom, right, top, user_change,
point_or_attribute_path, title, frame, direction, bot_scale,
top_scale, tickmarks, steps, format)

Purpose Places a control graphic on the DCX-250 Display Unit's screen and
activates it. The type of control is determined by a style number (1 to
14) that you select from a group of predefined controls (see Appendix
D). Returns SUCCESS or FAILURE.

Remarks First, you must erase the 250 screen with the CLEARSCREEN
keyword and the backlight must then be turned on for the CONTROL
keyword to function. Once the backlight is on, the 250 positions the
selected control graphic in the center of the four coordinates (left,
bottom, right, and top) that you specify.

The example that follows is a very basic illustration of a control button
(style 1). Refer to Appendix D for complete details on all 13-control
styles.

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"



CONTROL, continued

Example
continued




















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.
Fan 2

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.

DCX-250 Display Unit. Products
Supported

Programs Modes
Available

Andover Plain English Language Reference 7-69
7-70 Schneider Electric

COS Function

Format COS (number)

Purpose Returns the cosine of number.

Remarks The number is any number or expression and represents an angle
measured in radians. The following formulas defineradians and
degrees:

Radians =degrees TIMES (3.14159/180).
Degrees =radians TIMES (180/3.14159).

Example 1 Program File
MY.COS =cos(3.14159/2)

Example 2 Program File
MY.COS =cos(Angle)

Related
Keywords
SIN, ACOS, TAN, ATAN, ATAN2, ASIN

Alias COSINE


Products
Supported
ACX series, BACnet series (except b3885, b3887), CMX series, CX
series, DCX 250, i2 series, LCX series, SCX series, TCX series
controllers (except i2885, i2887), and CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-71

CPUPower System variable (programmable)

Format CPUPower

Purpose A predefined variable you set to OFF to turn off battery power to the
central processing unit (CPU) of the CX series controller. You turn off
the CPU after AC power fails. This way you preserve the life of the
battery and extend the length of time the controller can retain memory
on battery backup.

Remarks For advanced users only. Most often used in programs that
respond to loss of AC power.

When you set CPUPower to OFF and AC power is not present, you
shut off power to the entire CX series controller, including its modem,
EnergyLink, and the 250-display unit.

Leave CPUPower set to ON while AC power is up. If AC power has
not failed, setting CPUPower to OFF has no affect. Instead of turning
off the CPU, it resets itself back to ON at the end of the scan after it
has determined that AC power is present and a shutdown has not
occurred.

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.


7-72 Schneider Electric

CPUPower, continued

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
Keywords
PowerFail
PowerUpTime
ModemPower

Products
Supported
CMX series and CX series controllers.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-73

CurUser Function

Format CurUser ( )

Purpose Returns the user object of whoever is logged on to the workstation.

Example 1 If you want to have a program or report check who is logged on to the
current workstation, type the following in a program:
Program File
If UserOnWS =CurUser ( ) then . . .

Example 2 If you want to create a USR function that gives the name of the
current user, you can create it by typing the following in a function file
called USR:
Function File
Object CU
CU =CurUser ( )
Print CU Name
Return CU Name
Why create a local OBJ ECT 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 OBJ ECT variable. By
making CU an OBJ ECT 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
Supported
CyberStation

Modes
Available
Command lines and programs.


7-74 Schneider Electric


CurWorkstation Function

Format CurWorkstation ( )

Purpose Returns the workstation object at which you are currently sitting.

Example 1 If you want to have a program or report check which workstation it is
running on, type the following in a program:
Program File
If CurWST =CurWorkstation ( ) then . . .

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 OBJ ECT 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
OBJ ECT variable. By making CurWST an OBJ ECT variable, you can
then print the attributes normally associated with the workstation,
such as NAME.

Products
Supported
CyberStation

Modes
Available
Command lines and programs.


Andover Plain English Language Reference 7-75

Section 4 Keywords D through G

DATE System variable

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 J anuary 1, 1989.

DATE is designed to be used with DIFFTIME, along with a datetime
variable (defined using the DATETIME statement).

You can set the DATE value for the system using the STRTODATE
keyword from a program or command line.

Example Once you have defined the datetime variable called Temp_Date using
the DATETIME statement (see page 7-77), you can then set the
value of that variable using the DATE system variable, as follows:
Program File
DateTime Temp_Date
Temp_Date =Date
This way, Temp_Date retrieves the exact system date and time at a
given moment.
You may, for instance, record the date and time that a point changes.
You can use the variable you have created in subsequent
calculations.

Related
Keywords
DATETIME
DIFFTIME
STRTODATE

7-76 Schneider Electric


DATE, continued

TIME Alias

ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Products
Supported

Command lines and programs. Modes
Available

Andover Plain English Language Reference 7-77

DATETIME Statement

Format DATETIME namelist [ array_size_number]

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.

Each variable may be a single variable or an array. You specify an
array by including the array_size_number when you define it.

Remarks Replace namelist with the name of a datetime variable you are
defining or a series of datetime variables separated by commas.

Replace array_size_number with a number up to 32,767 that tells the
controller the number of elements in the DATETIME array.

Because the datetime is stored in seconds, you can add seconds to it
as if it were a number.

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.


7-78 Schneider Electric


DATETIME, continued

Example 1 In this program, the first statement defines the TempTime as a
datetime variable. The next statement sets the variable to the time at
a given moment with the DATE system variable:
Program File
DateTime TempTime
TempTime =Date

Example 2 When you print a datetime variable, you cannot set the format:
Program File
Print TempTime
October 26, 2005 18:25:06

Example 3 You can define a series of datetime variables in a single statement.
Program File
DateTime TempTime, FirstTime, LastTime

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


Andover Plain English Language Reference 7-79

DATETIME, continued

Related
Keywords
DATE
DIFFTIME
STRTODATE
NUMERIC
STRING

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Programs

7-80 Schneider Electric


DAYOFMONTH System variable

Format DAYOFMONTH

Purpose Gives the day of month from 1 to 31.

Remarks You cannot change the DAYOFMONTH. The system automatically
updates it.

Example 1 To print out a headline that contains the date, you would use
DAYOFMONTH, as shown below:
Program File
Print 'The kwh History for", Month, DayofMonth, "," , Year
The resulting header would print the actual month, day of the month,
and year, like this:
The kwh History for October 15, 2005

Example 2 To make some events occur only on particular days of each month,
you can set up an IF..THEN statement that checks for the day of the
month:
Program File
IF DayofMonth is between 7 and 14 then

Related
Keywords
MONTH
YEAR
DAYOFYEAR


Andover Plain English Language Reference 7-81

DAYOFMONTH, continued

Alias DOM

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

7-82 Schneider Electric


DAYOFYEAR System variable

Format DAYOFYEAR

Purpose Gives the number of the day of the year, between 1 and 366.

Remarks You cannot change the DAYOFYEAR. The system automatically
updates it.

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
Keywords
MONTH
YEAR
DAYOFMONTH

Alias DOY


Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-83

DeleteExtLog Function

Format DeleteExtLog ( object, datetime )

Purpose Deletes old extended log entries for the point, group of points, or
controller. If you are not sure what an extended log is, refer to the
Continuum CyberStation Configurator's Guide for further information.
Note: The DeleteExtLog function is only available on a CyberStation
workstation. It is not available on any controller.

Remarks Note: In Continuum CyberStation Version 1.7 and higher, an
automated extended log feature replaces the use of the Plain English
keywords, DeleteExtLog and GetExtLog. If you still wish to use Plain
English for extended logging, you must check the Extended Logging
Backwards Compatibility checkbox on the Database Initialization
dialog (during the Continuum installation process) in order for these
keywords to work. (See the Andover Continuum CyberStation
Installation Guide, 30-3001-720.)
Replace object with the name or full path and name of a point, 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) that is set up as an extended log. Can also be a local
OBJ ECT variable.
Replace datetime with a datetime point, a local variable, an actual
datetime, or expression that results in a datetime. To delete all log
entries, enter a time in the future as the datetime.
You must use the DeleteExtLog statement on a line by itself. After
executing a statement formed with DeleteExtLog, the program
automatically proceeds to the next labeled line.
DeleteExtLog returns SUCCESS or FAILURE.
When you use UpdateExtLog to update an extended log, the log does
not automatically drop entries the way a regular log would. It keeps
storing entries until you delete them with DeleteExtLog.
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 thembeyond the 2880.

7-84 Schneider Electric


DeleteExtLog, continued

Remarks
continued
To avoid filling your database with log entries, you must instruct the
workstation to remove the extra log entries either automatically or
using DeleteExtLog.
DeleteExtLog removes only old entriesthose entries that have
expired. It determines an entry has expired by calculating the
expiration date of each entry as follows:
DateTime Entry Was Logged +ExtLogInterval ExtLogSize
Notice that the ExtLogInterval and ExtLogSize the workstation uses in
the calculation are the ones that existed when the entry was logged.
So, if you later changed the extended log interval or size, the
expiration date calculated remains as is.
As soon as the software sees the DeleteExtLog statement in a
program, it understands the purpose of the datetime variable you
definedto tell it to delete all log entries that have expired before that
date.


Example 1 Suppose you want to delete the expired extended log entries of all
points in the Floor1 controller that were logged more than 90 days
ago. You could delete the log entries with a fallthru program similar to
the following example:
Program File
Numeric Result
DeleteLog:
Result =DeleteExtLog (Building1 Floor1, Date - 90 * 24 * 3600)
CheckLogDeletion:
If Result is not success Then
Print "Failed to delete extended log entries for Floor1"
Stop
Endif
Give DeleteExtLog the controller name, then a calculation that
creates a datetime in seconds. The datetime value is the number of
seconds that are equivalent to the date and time by which the logs
must have expired.

Andover Plain English Language Reference 7-85

DeleteExtLog, continued

Example 2 Suppose you want to delete the expired extended log entries of a
single point up to the last day of J une 2005. You could delete them
from the Command line as follows:
Command Line
DeleteExtLog (Building1 Floor1 Temp1, StrToDate ("J une 30,
2005 23:59:00"))
This statement converts the date string into a date the controller
system can understand and then deletes the log entries that have
expired by that date.

Example 3 Suppose you want to delete the expired extended log entries of all
points in the Floor1 controller that have been logged and then expired
by a future datea month from now. You could delete them with a
fallthru program like the one that follows:
Program File
Numeric Result
DeleteLog:
Result =DeleteExtLog (Building1 Floor1, Date +30 * 24 * 3600)
CheckLogDeletion
If Result is not Success then
Print "Failed to delete extended log entries for Floor1"
Stop
Endif
Note: When the datetime argument is greater than or equal to log
timestamp, the entry is deleted immediately.

Related
Keywords
UpdateExtLog

Products
Supported
CyberStation

Modes
Available
Command lines and programs.

7-86 Schneider Electric


Dial Function

Format Format 1: Dial (phone_number, commport)

Format 2: Dial (phone_number)

Format 3: Dial (phone_number, commport)

Purpose Format 1: From a program, dials the Infinity modem (via the comm
port you indicate) to connect from a controller (often at a remote site)
to another device, usually a workstation.
Format 2: From a program, dials the Infinity modem to connect from
a controller (often at a remote site) to another device, usually a
workstation. Uses the DefaultPort of the program.
Format 3: From the Command line on a terminal, dials the Infinity
modem to connect from a controller (often at a remote site) to another
device, usually a workstation. The commport is required on the
Command line.

Remarks DIAL applies only on a controller with an Infinity modem.

The controller may also connect over modem to a third-party
controller with an ASCII interface, another Andover Contiuum
controller, a terminal, or a printer.

Replace phone_number with any string expression or series of
numbers and other characters, in quotation marks, that represent a
phone number. Or any local STRING variable or string point that
represents the phone number you must dial to connect to a remote
site.

Can be up to 132 characters total. Characters allowed are all letters,
numbers, and symbols you can print on a printer, but not characters
that you cannot print such as ESC, carriage return, or line feed. You
can use a comma (,) to force a pause, such as after dialing 9 to get
an outside line. For a full 0.5 second pause, use an at sign (@).
The phone number string can also contain valid AT Commands such
as ATD,T,, 978-470-0555.

Andover Plain English Language Reference 7-87

DIAL, continued

Remarks
continued
If the first character in the phone number is an A or a, the DIAL
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 3
rd
party modems or Cellular Modems that
require something other than ATDT to command dialing.
Note: commport is optional in a program and is required on the
Command line
Replace with the Controller port that physically connects to the
modem. The DefaultMode and Mode attributes of the port must be set
to AutoSet or Printer. If, in a program, you do not indicate the comm
port, DIAL uses the default port you set at the top of the program or in
the File Configuration window. From the command line, you must
indicate the comm port.
DIAL automatically turns on the DTR (data terminal ready) attribute of
the port to put the port in Raw mode. Once DIAL establishes the
connection to a workstation, programs can then and only then use
the READ comm port function to take data from the port or PRINT to
send data out the port. The port stays in Raw mode until you use
HangUp or CLOSE to close the connection.
You can use DIAL in a program or on the Command line. When you
use DIAL in a program, you must use it on a labeled line by itself.
After it executes, DIAL automatically moves the program to the next
labeled line. The next labeled line should then test for the returned
results of DIAL.
When you use DIAL from the Command line, it returns right away,
before the dialing actually begins. In this case, the results that DIAL
first return reflect the first response to DIAL rather than the final
results.

7-88 Schneider Electric


DIAL, continued

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.
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.
Remarks
continued


DIAL returns the last of the above that occurs. If the controller at first
does not detect a carrier, then it receives a busy signal, DIAL returns
DialBusyTone and does not indicate that it could initially not find the
carrier.
Once DIAL is successful, the Mode of the comm port is Raw.
After dialing, DIAL waits up to 90 seconds for a response. (The 90
seconds includes the 50 seconds from the S-7 register.) If it fails, DIAL
does not try again. Instead, DIAL responds as follows:
Returns one of the above results
Reactivates the program it is in.
Double checks to be sure DTR is ON
Returns the port to its default mode (either AutoSet or Printer)
based on the DefaultMode attribute.


DIAL, continued

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.
Remarks
continued

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.
!


Andover Plain English Language Reference 7-89

DIAL, continued

You can use DIAL to call a workstation and send it messages. The
following looping program exists on a controller that calls a workstation:
Example 1
Program File on Controller
Numeric InitResult, DialResult, HangUpResult
. . .
StartingDial:
DialResult =Dial ("5085551212", Comm1)
Using alternate AT Command
Issue the ATD command, then pause, issue the T command and
pause again
DialResult =Dial ("ATD,T,, 5085551212", Comm1)
CheckingStatus:
If DialResult is Success then
Goto SendingData
Else
Goto StoppingComms
Endif
Sending Data:
Print Message 1 to Comm1
Print Message 2 to Comm1
Print Message 3 to Comm1
. . .
Goto CheckingDone
CheckingDone:
If Comm 1 PrintDone then Goto CompletingComm
CompletingComm:
HangUpResult =HangUp (Comm 1)
Checking Hangup:
If HangUpResult is not Success then Print "Could Not Hang Up Comm Port"
Goto StoppingComms
StoppingComms:
Stop

7-90 Schneider Electric

Andover Plain English Language Reference 7-91

DIAL, continued

Example 1
continued
The program starts by creating a few local numeric variables to hold
the results of initializing the modem, dialing the call, and hanging up.
It then initializes the modem (see the InitModem keyword for more
details).
Then, in the StartingDial line, the program uses the DIAL keyword to
call a phone number, indicated in quotation marks, and to find the
modem on a particular port, Comm1. Notice that the phone number is
in quotation marks because it is an actual phone number rather than
an object, point, or variable in the control system.
Since DIAL immediately sends the program to the next labeled line,
you do not need a GOTO to proceed to CheckingStatus. If DIAL is
successful, then the program goes to the SendingData line. Since the
port is in Raw mode, the program can now use PRINT to send
messages out the port to the workstation. So, on this line the program
proceeds to send a series of messages to the workstation.
After sending data to the port, the program goes to the CheckingDone
line, where it checks the PrintDone attribute of the port. When the
attribute is True, the port has finished transmitting data. The program
remains on this line until the attribute is True. Once PrintDone is True,
the program goes to CompletingComm, where it uses HangUp to
hang up on the port (see the HangUp keyword for details).

Example 2
Program File on Controller
Numeric InitResult, DialResult, HangUpResult
String PhoneNum
. . .
DeterminingSite:
If Tod is less than 17:00 then
Set PhoneNum ="5085551212"
Else
Set PhoneNum ="6175551212"
Endif


7-92 Schneider Electric


DIAL, continued

Example 2
continued
Goto StartingDial

StartingDial:
DialResult =Dial (PhoneNum, Comm1)
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

Andover Plain English Language Reference 7-93

DIAL, continued

Example 3 You can call a site from the controller Command window. First, you
must use InitModem to initialize the modem, and then you can dial
with DIAL. When you dial from the Command window, you must
include the comm port with DIAL:
Command Window
DialResult =Dial ("6175551212", Comm1)
Pr Comm1 Mode
DIAL immediately returns SUCCESS or FAILURE. If it does not
succeed within 90 seconds, it returns the port to its DefaultMode
setting.
To verify that DIAL has succeeded, you can print the Mode of the
comm port from the Command line to be sure the port is in Raw
mode. Later, you must be sure to hang up with the HangUp keyword.

Related
Keywords
InitModem
HangUp

Products
Supported
CX series controllers.

Modes
Available
Command lines and programs.

7-94 Schneider Electric


DIFFTIME Function

Format Format 1: DIFFTIME (SECOND, date_time1, date_time2)

Format 2: DIFFTIME (MINUTE, date_time1, date_time2)

Format 3: DIFFTIME (HOUR, date_time1, date_time2)

Format 4: DIFFTIME (WKD, date_time1, date_time2)

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 2: Calculates the difference in whole minutes 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.


Andover Plain English Language Reference 7-95

DIFFTIME, continued

Remarks
continued
With WKD, any time beyond a complete day is not counted. So, 2
days and 15 hours becomes 2 days.
If date_time1 is later than date_time2, DIFFTIME returns a negative
number.

Example 1 You can use DIFFTIME with SECOND to determine how many
seconds have passed. The sample program below calculates the
difference between two readings of the datetime variable Timer.
Program File
DateTime Timer[2]
IF DiffTime (Second, Timer[1], Timer[2]) >30 Then Run Test
The statement determines the result of Timer [2] - Timer [1]. If the
difference is greater than 30 seconds, Test runs.

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)

The statement sets RESULT to the number of days that
DATE - OldDate gives.



7-96 Schneider Electric


DIFFTIME, continued

Related
Keywords
DATE
DATETIME
STRTODATE
TIME

Alias DT

Products
Supported
BACnet series, CMX series, CX series, i2 series controllers and
CyberStation.

Modes
Available
Command lines and programs.




Andover Plain English Language Reference 7-97

DISABLE Statement

Format Format 1: DISABLE program_name

Format 2: DISABLE point_name

Format 3: DISABLE namelist

Purpose Format 1: Stops running the program named by program name at
the current line. It also 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.

Format 2: Disables a point called "point_name".

Format 3: Stops program control of a list of programs named by
namelist all at once, each at the current line.

Remarks Replace program name with any program file name.

Replace point_name with any point, piece of equipment, terminal,
computer or printer.

Replace point_name with any point.

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 Basic Attribute Listing in Chapter 1). The
STATE attribute allows the item to be enabled or disabled.

All disabled items remain disabled until you enable them (see
ENABLE keyword).



7-98 Schneider Electric


DISABLE, continued

Example 1 To stop a blower program named BlowerProg that is in the process of
executing, enter the following command:
Command Window
Disable the BlowerProg

Example 2 When debugging, you can disable a point called Fan temporarily to
see how that affects the program. You can do so by placing the
following statement in a program or entering it from the command
line:
Program File
Disable the Fan

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
Keywords
ENABLE

Alias DIS

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.


Andover Plain English Language Reference 7-99

DIVIDED BY Operator

Format number DIVIDED BY number

Purpose Divides one number by another.

Remarks The number is any number or expression.

The division operator (/) may be substituted for DIVIDED BY.

Example 1 Program File
Usage =kwh Divided by 24

Example 2 Program File
Usage =kwh/24

Alias /
DIV

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

7-100 Schneider Electric


DRAWELLIPSE Function

Format DRAWELLIPSE (left, bottom, right, top)

Purpose Draws an ellipse inside an imaginary rectangle that is positioned by the
lower left and upper right corner line point locators on the DCX 250
Display Unit screen.
Returns SUCCESS or FAILURE.

Remarks Applies the current display settings.
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.
You do not need the parentheses if DRAWELLIPSE is at the beginning
of a statement.
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.


DRAWELLIPSE, continued

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.












Figure 7-6. Ellipse drawn with DRAWELLIPSE showing imaginary
rectangle with bottom left and top right corner locations

The left-bottom and right-top positions are the crosses shown in the
lower and upper corners of the rectangle.
(10, 20)
(250, 100)

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.)





Andover Plain English Language Reference 7-
101

DRAWELLIPSE, continued

Example 2
continued
















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:

If DrawEllipse (10, 10, 100,100) =Failure then
Print "DCX Could Not Draw Ellipse" To Floor1 Comm3
Endif
If DrawEllipse is successful, the controller draws the circle, otherwise,
the message prints.
250 SCREEN

Related
Keywords
DRAWLINE
DRAWRECTANGLE

Products
Supported
DCX 250 Display Unit

Modes
Available
Programs

7-102 Schneider Electric


Andover Plain English Language Reference 7-
103

DRAWLINE Function

Format DRAWLINE (begin_left, begin_bottom, end_left, end_bottom)

Purpose Draws a line that is positioned on the DCX 250-Display Unit screen by
using the arguments you supply to the function as line point locators
(dots). Returns SUCCESS or FAILURE.

Remarks Applies the current display settings with the SETDISPLAY keyword.
The DCX 250-Display Unit forms the line on its screen by joining dots
(line points) that mark each end. You indicate the position of these
dots as follows:
Replace begin_left with the number of dots (line points) from the left
of the screen that the line should begin. Can be an integer from 1 to
320, or a name or expression that gives one.
Replace begin_bottom with the number of dots (line points) from the
bottom of the screen that the line should begin. Can be an integer
from 1 to 200, or a name or expression that gives one.
The begin_left and begin_bottom positions give the location of the
beginning of the line.
Replace end_left with the number of dots (line points) from the left of
the screen that the line should end. Can be an integer from 1 to 320,
or a name or expression that gives one.
Replace end_bottom with the number of dots (line points) from the
bottom of the screeen that the line should end. Can be an integer
from 1 to 200, or a name or expression that gives one.
The end_left and end_bottom positions give the location of the end
of the line.






DRAWLINE, continued

Example
Program File
SetDisplay (White)
DrawLine 10, 100, 200, 50
Notice that the parentheses are not required in this case, because
DRAWLINE is at the beginning of a statement.
Figure 7-8 shows how the begin_left, begin_bottom, end_left, and
end_bottom values mark the dots that begin and end the line.













Figure 7-8. Line drawn with DRAWLINE showing begin
and end line locations.

SETDISPLAY first sets the color to white, so the line appears on the
250 screen in white.
Begin_Left
=10
Begin_
End_Left =200
Bottom
End_Bottom

=50
=100

Related
Keywords
DRAWELLIPSE
DRAWRECTANGLE

Products
Supported
DCX 250 Display Unit

Modes
Available
Programs

7-104 Schneider Electric


Andover Plain English Language Reference 7-
105

DRAWRECTANGLE Function

Format DRAWRECTANGLE (left, bottom, right, top)

Purpose Draws a rectangle on the screen of the DCX 250-Display Unit by
using the arguments you supply to the function as line point locators
(dots) for the lower left and upper right corners. Returns SUCCESS or
FAILURE.

Remarks Applies the current display settings.

You do not need the parentheses if DRAWRECTANGLE is at the
beginning of a statement.

Replace left with the number of dots (line points) from the left of the
screen that the left side of the rectangle should be positioned. Can be
an integer from 1 to 320, or a name or expression that gives one.

Replace bottom with the number of dots (line points) from the bottom
of the screen that the bottom side of the rectangle should be
positioned. Can be an integer from 1 to 200, or a name or expression
that gives one.

The left and bottom positions give the location of the lower left
corner of the rectangle.

Replace right with the number of dots (line points) from the left of the
screen that the right side of the rectangle should be positioned. Can
be an integer from 1 to 320, or a name or expression that gives one.

Replace top with the number of dots (line points) from the bottom of
the screen that the topside of the rectangle should be positioned. Can
be an integer from 1 to 200, or a name or expression that gives one.

The right and top positions give the location of the upper right corner
of the rectangle.





DRAWRECTANGLE, continued

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.













Figure 7-9. Rectangle drawn with DRAWRECTANGLE showing
bottom left and top right corner locations

You can have DRAWRECTANGLE tell you whether or not it drew
successfully by putting it inside an IF..THEN statement and including
the parentheses:

If DrawRectangle (10, 20, 250,100) =Failure then
Print "DCX Could Not Draw Rectangle"
Endif

If DRAWRECTANGLE is successful, the controller draws the
rectangle, otherwise, the message prints.
Left
=10
Bottom
Right =250
=20
Top =100




7-106 Schneider Electric


DRAWRECTANGLE, continued

Example 2 You can draw a perfect square (Figure 7-10) by giving the same
values for left and bottom, then the same values for right and top,
such as 10, 10, and 100, 100, as follows:
Program File
DrawRectangle 10, 10, 100, 100

250 Screen










Figure 7-10. Square drawn with DRAWRECTANGLE

DRAWELLIPSE Related
Keywords DRAWLINE
SETDISPLAY

Products
Supported
DCX 250 Display Unit

Modes
Available
Programs


Andover Plain English Language Reference 7-
107
7-108 Schneider Electric


ENABLE Statement

Format Format 1: ENABLE program_ name

Format 2: ENABLE point_name

Format 3: ENABLE namelist

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.

Format 3: Allows the listed programs named by namelist to be run by
RUN or ROTATE. Places several items under program control at
once, or enables points.

Remarks Replace program name with any program file name.

Replace point name with any point.

Replace namelist with any list of programs or names, as defined
above, separated by commas.

The named program, name, or each item in the namelist must have
a STATE attribute (see page 1-12). The STATE attribute allows the
item to be enabled or disabled.

Example 1 Suppose you have disabled a program that controls cooling. Type the
following to allow the controller run the program:
Command Line
Enable Cooling




Andover Plain English Language Reference 7-
109

ENABLE, continued

Example 2 When you temporarily disable a point to debug a program, it remains
disabled until you enable it again. You can enter the following as a
program statement or command line:
Program File
Enable the Fan

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
Keywords
DISABLE

Alias EN

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.


7-110 Schneider Electric


ENDPOLYLINE Function

Format ENDPOLYLINE ( )

Purpose After a BEGINPOLYLINE statement and a series of drawing
statements, ENDPOLYLINE indicates drawing on the DCX 250-
Display Unit is complete.

Returns SUCCESS or FAILURE.

Remarks After you use BEGINPOLYLINE, and you give a series of line points
(see LINEPOINT keyword) you want connected, you then indicate the
series of line points is over by entering ENDPOLYLINE.

You do not need the parentheses if ENDPOLYLINE is at the
beginning of a statement.

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

Neither BEGINPOLYLINE nor LINEPOINT actually causes the lines
to be drawn. Instead, ENDPOLYLINE takes its cue from those
statements and actually executes the drawing.




ENDPOLYLINE, continued

Without ENDPOLYLINE, BEGINPOLYLINE does nothing.

Without ENDPOLYLINE, LINEPOINT only places dots (line points); it
does not draw lines. The DCX 250-Display Unit stores the line points
in memory until it sees ENDPOLYLINE which then makes it draw the
lines as shown on Figure 7-11.
Example
continued



Andover Plain English Language Reference 7-
111















250 Screen

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:

If EndPolyLine ( ) =Failure then
Print "DCX Cannot Draw Polygon"
Endif

If ENDPOLYLINE is successful, the controller draws the polygon,
otherwise, the message prints.



7-112 Schneider Electric


ENDPOLYLINE, continued

Related
Keywords
BEGINPOLYLINE
LINEPOINT

Products
Supported
DCX 250 Display Unit

Modes
Available
Programs



Andover Plain English Language Reference 7-
113

EOF Constant

Format EOF

Purpose EOF means end-of-file. Used in expressions to indicate a process or
function has failed because it tried to access information past the end
of a file read by CyberStation.

Remarks EOF is always numeric.

Example Program File
If WriteFile (ZoneData, RecordLine, 80, Chars) =EOF then
Print "Not enough room in file for record"
Goto WriteCheck
Endif

Related
Keywords
FAILURE
SUCCESS

Products
Supported
CyberStation

Modes
Available
Programs

7-114 Schneider Electric


EQUALS Operator

Remarks See the IS keyword.


Andover Plain English Language Reference 7-
115

ERRORS System variable

Format ERRORS

Purpose 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.
The controller increments ERRORS when any of the following occurs:
A Plain English program error disables a program (which also
sets the program ERROR attribute, depending on the severity of
the error). In other words, it is always the case.
The controllers input reference voltage goes out of its normal
range, usually when you apply too much voltage to one or more
inputs.
The controllers output reference voltage goes out of its normal
range, usually when drawing too much current from one or more
inputs.
The Infinet has trouble transmitting or receiving data.
Someone resets an Infinet controller.
Someone turns off the AC power to any Infinet, CX series or CMX
series controller so that the AC power shuts down, but the battery
retains memory.

Example Since the ERRORS variable automatically decrements after you
acknowledge an error, the value of the variable should never get very
large.
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

7-116 Schneider Electric



ERRORS, continued

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.


Andover Plain English Language Reference 7-
117

EventLogSize System variable

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 controllers
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






7-118 Schneider Electric


EventLogSize, continued

Related
Keywords
AccessLog

Products
Supported
CMX series and CX series controllers.

Modes
Available
Command lines and programs.


Andover Plain English Language Reference 7-
119


EXPONENTIAL Function

Format EXPONENTIAL (number)

Purpose Returns a value equal to the base e raised to the number power.

Remarks The number is any number or expression.

Example 1 Program File
EVAL =Exponential (0)

The result of e to the 0 power is 1.
Because the EXPONENTIAL function returns 1, EVAL is set to 1.

Example 2 Program File
R.VAL =Exponential (-1)

The result of e to the -1 power is 0.368, so R.VAL is set to 0.368.

Alias EXP

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers (except i2885,
i2887, b3885, b3887), and CyberStation.

Modes
Available
Command lines and programs.


7-120 Schneider Electric


FACTORIAL Function

Format FACTORIAL (integer_expression)

Purpose Returns the factorial of integer_expression.

Remarks The integer_expression is an integer greater than or equal to zero.
The largest number you can use FACTORIAL on is 34.

Example The following statement sets FVAL to the result of factorial 3:
Program File
FVAL =Factorial (3)

The function returns 6, so FVAL =6.

Alias FACT

Products
Supported
BACnet series (except b3885, b3887), CMX series, CX series, DCX
series, i2 series controllers (except i2885, i2887), and CyberStation.

Modes
Available
Command lines and programs.



Andover Plain English Language Reference 7-121

FAILURE Constant

Format FAILURE

Purpose Used in expressions to indicate a function has failed to complete.

Remarks FAILURE is always numeric and equal to one. It can be used to
replace numbers in a comparison expression.

Example Program File
If OpenFile ("Com1", ReadWrite, FileVar) =Failure then
Print "Error opening file"
Endif

Related
Keywords
SUCCESS

Products
Supported
CX series and CyberStation.

Modes
Available
Command lines and programs.





7-122 Schneider Electric


File Statement

Format FILE file_variable_namelist [array_size_number]

Purpose Creates and defines one or more names as local FILE variables, just
as NUMERIC, STRING, and DATETIME create local variables. You
define the FILE variables inside a program for use only in that
particular program.
You cannot use FILE on the command line.
Each variable may be a single variable or an array. You specify an
array by including the array_size_number when you define it.
Each FILE variable name is a control system software name that
corresponds to any actual Windows file name. Later you use this
name to open the file with OPENFILE, and act on the file with
READFILE, POSITIONFILE, WRITEFILE, and CLOSEFILE
keywords.

Remarks A FILE variable is a file name that the control system software
understands; this is useful because the control system software does
not comprehend Windows file names. After you define the FILE
variable, you can later use OPENFILE to open a Windows file that
goes with it.
Although the variable is like a NUMERIC, STRING, or DATETIME
local variable, it is also differentyou do not set it to a Windows file
name with a SET statement. Instead, the control system software sets
the name within an OPENFILE, CLOSEFILE, READFILE,
POSITIONFILE, or WRITEFILE statement, where you give the FILE
variable name and a string containing the Windows file name. (See
each related keyword for more detail.)

FILE is a variable because you can change the Windows file name to
a FILE variable name with which it associates. You always make that
change within a statement you form with a related keyword.
Replace file_variable_namelist with one or more local FILE variable
names to which you want Windows text files to correspond. The name
may be up to 32 characters, including letters, numbers, periods, and
underscores, starting with a letter.


Andover Plain English Language Reference 7-123

File, continued

Remarks
continued
Replace array_size_number with a number up to 32,767 that tells the
controller how many positions are in the array of file names. Each
position in the array is like a separate FILE variable that corresponds
to a single Windows text file.

Example 1 You use FILE in a program to define a file called ZoneData. Then you
can open a Windows file and put data in it with other related
keywords:
Program File
File ZoneData
Numeric Chars
String 80 Dataline
Line Opening
.
.
Line Working
.
.
Line Closing
.
.

Example 2 You can create an array of variables with FILE and once you have
defined them, you can assign each a Windows file name using a
FOR..NEXT statement with OpenFile.


7-124 Schneider Electric


FILE, continued

In this example, you open the Windows files in the left column below.
Each corresponds to the control system software name you created
with a local FILE variable defined in the array, shown in the right
column:
Windows File
Control System
File Variable
\text\zone1.txt ZoneData[1]
\text\zone2.txt ZoneData[2]
\text\zone3.txt ZoneData[3]
Example 2
continued
Program File
File ZoneData[3]
Numeric OK, NumFile
Line Opening
For NumFile =1 To 3
OK =OPENFILE ("c:\text\zone"; NumFile;".txt", WriteOonly,~
ZoneData [NumFile])
If OK =Failure Then Break
Next NumFile
Line Working
.
.
Line Closing
.

Related
Keywords
CLOSEFILE OPENFILE POSITIONFILE
READFILE WRITEFILE

Products
Supported
CyberStation

Modes
Available
Programs

Andover Plain English Language Reference 7-125

FILL Constant

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
Keywords
NOFILL
SETDISPLAY

Products
Supported
DCX 250 Display Unit

Modes
Available
Programs


FLOOR Function

Format FLOOR (number)

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.)

Example 1 Program File
TmpVar =Floor (42.7)
This statement returns 42.

Example 2 Program File
Result =Floor (-1.1)
This statement returns -2. Figure 7-12 illustrates how the controller
arrives at -2 for the floor of -1.1.







Figure 7-12. Number line showing FLOOR (-1.1)
7-126 Schneider Electric


Related
Keywords
CEILING, TRUNCATE, ROUND

Products
Supported
BACnet series (except b3885, b3887), CX series, DCX 250, i2 series
controllers (except i2885, i2887), and CyberStation.

0 1 2 3 -4 -3 -2 -1 4
Position of 1.1 on the number l ine
ition of
OR (1.1)
Pos
FLO
Andover Plain English Language Reference 7-127
Modes
Available
Command lines and programs.

FOR..NEXT Statement

Format Format 1: For numeric_name =begin to end
statement
statement
. . .
Next numeric_name

Format 2: For numeric_name =begin to end step number
statement
statement
. . .
Next numeric_name

Purpose Carries out all statements in a loop a fixed number of times.

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.

A FOR..NEXT loop looks like this:

For Count =2 to 10 step 2
Print Count, " ";
Print (10 +Count)
Next Count



FOR..NEXT, continued

Remarks
continued
The statement sets the value of the numeric_name to the begin
value, then carries out the statements after FOR until it reaches
NEXT. At NEXT, the program goes back to FOR and gets the next
value of numeric_name by adding number to begin.

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.

As long as numeric_name is less than or equal to end, the
statements inside the loop are carried out. When numeric_name is
greater than end the program then goes to the statement after NEXT.

Here is the output printed by the loop above:

2 12
4 14
6 16
8 18
10 20
If you do not specify a STEP number, the name automatically
increases by one (increment) each time the loop executes.

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.
The setting of counter numeric_name cannot be changed from within
the loop.






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.

!





7-128 Schneider Electric

Andover Plain English Language Reference 7-129

FOR..NEXT, continued

Example 1 Before you run functions that use the Arg variables, you may want to
set them all to zero. You can set them all with one programming
statement using FOR..NEXT:
Program File
For Count =1 to 15
Set Arg [Count] =0
Next Count
The first time through the loop, Arg[1] is set to 0, the second time
Arg[2] is set to 0, the third time Arg[3] is set to 0, and so on.

Example 2 To set every third value in an array to zero, you can go to the third
item, then sixth, then ninth, and so on using STEP with FOR..NEXT:
Program File
Number Count
For Count =3 to 15 Step 3
Set Pump [Count] =0
Next Count

Example 3 To find a filtered average, you could set up a function called Filt.Total.
The function, shown below, uses FOR..NEXT to loop from Arg[3]
through Arg[15], and add only the numbers with a value between that
of Arg[1] and Arg[2]:
Function File
Number Total, Count, Num
Set Num, Total =0
For Count =3 to 15
If Arg[Count] is between Arg[1] AND Arg[2] then
Total =Arg[Count] +Total
Num =Num +1
Endif
Next Count
Return (Total/Num)

FOR..NEXT, continued
7-130 Schneider Electric


Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Related
Keywords
BREAK, CONTINUE

Modes
Available
Programs

Andover Plain English Language Reference 7-131

FREEMEM System variable

Format FREEMEM

Purpose Contains the number of bytes of free memory.

Does not indicate memory available on a workstation.

Remarks For system manager only. Primarily designed to be used on the
command line because the value of FREEMEM does not change
dynamically. It can also be used in programs but doing so the
controller will slow 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
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, and TCX series controllers.

Modes
Available
Command lines and programs.

7-132 Schneider Electric


GetExtLog Function

Format GetExtLog (object_name , value_var , start_time , end_time)

Purpose Retrieves the value from an entry in the extended log and gets the
time it was stored in the log. Obtains this information for a particular
point and a range of times that begins with the start_time and ends
with the end_time.

Remarks Note: In Continuum CyberStation Version 1.7 and higher, an
automated extended log feature that replaces the use of the Plain
English keywords, DeleteExtLog and GetExtLog. If you still wish to
use Plain English for extended logging, you must check the
Extended Logging Backwards Compatibility checkbox on the
Database Initialization dialog (during the Continuum installation
process) in order for these keywords to work. (See the Andover
Continuum CyberStation Installation Guide, 30-3001-720.)

When you use GetExtLog, you must use it on a labeled line by itself.
Once GetExtLog executes, the controller automatically goes to the
next labeled line, where the program should test to see if GetExtLog
returns SUCCESS or FAILURE.
Replace object_name with the full path name of the object.
Replace value_var with a local variable or point to hold the
value of the next extended log entry that GetExtLog retrieves.
Replace start_time with a time of first entry that the GetExtLog
should retrieve from the log. Can be a datetime point or local datetime
variable.
Replace end_time with the Time of last entry that the GetExtLog
should retrieve from the log. Can be a datetime point, local datetime
variable, or datetime data file field. If you do not give an end time,
GetExtLog continues to retrieve the time and log values until the
current date and time. May be a numeric or string expression that
results in a datetime (or number of seconds representing one).
The program starts getting extended log values at the start_time you
give. The program continues to retrieve the extended log times and
associated values until it reaches the end_time you give.

Andover Plain English Language Reference 7-133


GetExtLog, continued

Example Fall-Thru program that retrieves all the extended log entries of a
numeric point since 30 days ago.

Program File
Numeric result, logvalue
DateTime LogTime, endLogTime

SetEndLogTime1:
EndLogTime =StrToDate(12/10/2005 09:50:00 AM)
Print Start Log Extraction to MessageWindow
GettingLogEntry:
Result =GetExtLog(MyNetwork\MyCX\n1log, logvalue, logtime,~
endLogTime)
PrintingLogEntry:
If Result =Success then
Print logtime, endLogTime, logvalue to MessageWindow
do we need to finish thelog?
if logtime >=endLogTime then
Print "Log Extraction Finished" to MessageWindow
Stop
Endif
Goto GettingLogEntry
Else
Print Failed getting extended log to MessageWindow
Stop
Endif


7-134 Schneider Electric


GetExtLog, continued

Related
Keywords
DeleteExtLog
UpdateExtLog

Products
Supported
CyberStation

Modes
Available
Programs

Andover Plain English Language Reference 7-135

GETNAME Function

Formats Format 1: GETNAME ( string )

Format 2: GETNAME ( string, bacnet_broadcast_flag )


Purpose Changes the string to a name, such as the name of a defined point,
so it can then be set to a value or used in the language whenever a
point name is allowed. Can be used to give one name to a series of
items in the database that has the same root in their names. Each of
the names is made up of a root abutted with (joined to) a variable.

CAUTION: This function is time consuming and should be used
sparingly. It is recommended that it only be used in reports.

Remarks string The string can be either text (word or words) or a text
expression. The text expression can be a known character or
characters combined with a changeable character or characters to
form one word. A semicolon joins the parts of the combined string
(TEMP; X gives TEMP1, TEMP2, TEMP3, as X becomes 1, then 2,
then 3).

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.

bacnet_broadcast_flag This argument is for BACnet controllers. It
allows a PE program to execute a GETNAME function
asynchronously, as a BACnet broadcast, to find an object usually
on another BACnet controller. The GETNAME function executes
Who Has I Have BACnet broadcast. Inserting this argument makes
execution of this function asynchronous. Enter either:

TRUE, 1, or any other numeric expression not equal to zero

FALSE, 0, or any other numeric expression equal to FALSE

7-136 Schneider Electric


GETNAME, continued

Enter TRUE (or equivalent numeric expression) to send this Who Has
I Have broadcast to other BACnet controllers on the network, in
search of the object.

Enter FALSE (or equivalent numeric expression) to perform a search
on the local controller.

See Example 3 for an example of the bacnet_broadcast_flag
argument.

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

Andover Plain English Language Reference 7-137

GETNAME, continued

Example 2 You can use GETNAME to get the value of a point from more than
one controller. In this example, the controllers are VAV box controllers
called Room1, Room2, Room3, and so on, up to Room10. Since
each ROOM controller has a TEMP point, GETNAME can easily
retrieve that point from each controller:
Program File
Numeric ROOM
Line SettingRoom
ROOM =1
Goto CheckingTemp
Line CheckingTemp
If GetName("Room";ROOM;" Temp") >75 Then
Print "Room |##is |###", ROOM, GetName("Room"; ~
ROOM;" Temp")
Endif
Goto GetNextRoom
Line GetNextRoom
If ROOM >=10 Then Stop
ROOM =ROOM +1
Goto CheckingTemp

"Room"; ROOM;" Temp" gets the path to the Temp point on the
ROOM1 controller first. Once the program gets the value of
Temp from each controller, it compares that value to the
setpoint of 75. If the temperature is not at setpoint, the program
prints a message.


Example 3 Here is a program example using the bacnet_broadcast_flag
argument:
Program File
Object ObjRef
Line GettingObject
ObjRef =GetName(BCX2 \ ANALOGVALUE1)
Line SettingObject
ObjRef =72
7-138 Schneider Electric


GETNAME, continued

Example 4 To get an attribute with GETNAME, you must include the attribute
name in the GETNAME string. (You cannot get the name and then
put an attribute after it.) Include the attribute as follows:
Program File
Print GetName("Room"; ROOM; "Temp VALUE")

Example 5 You can also get attributes of a point other than the value. This
example retrieves the STATE attribute (enabled or disabled):
Program File
Print "The Lights are |*", GetName("Room";ROOM;"Lights State")

Example 6 You can also get attributes of any other name defined in the control
system software, for instance, the STATUS of a program called
HEATING (active or inactive):
Program File
Print "Status of Heating is |*", GetName("Floor";FloorNum;"~
"Heating STATUS")



Andover Plain English Language Reference 7-139

GETNAME, continued

Example 7 You can use GETNAME to generate a report on several points at a
particular time. For example, you can get the setting of the lights in a
particular space, the status of the lighting program, the setpoint at that
time, the actual temperature at that time, the airflow setpoint, and the
actual airflow:
Program File
Numeric ROOM
Line SetRoom
ROOM =1
Print "Today's Date and Time are ";DATE
Go CheckRoom
Line CheckRoom
Print "Room |##Status", ROOM
Print "The lights are |$###", GetName("Room";ROOM;" Lights")
Print "The lighting program is |*",~
GetName("Floor";Num,"Lighting STATUS")
Print "The temperature setpoint is ##..#",~
GetName ("Room"; ROOM;" Sept")
Print "The actual temperature is ##..#",~
GetName ("Room"; ROOM;" Temp")
Print "The airflow setpoint is ##.#cmf",~
GetName ("Room"AirSetpt")
Print "The actual airflow is ##.#cmf", ~
GETNAME ("Room"; ROOM;" AirFlow)
Goto GetNextRoom
Line GetNextRoom
If ROOM >=10 then Stop
ROOM =ROOM +1
Goto CheckRoom

Products
Supported
BACnet series (except b3885, b3887), CX series, CMX series, i2
series controllers (except i2885, i2887), and CyberStation.

Modes
Available
Programs
7-140 Schneider Electric


GetObject Function

Format GetObject ( object_var )

Purpose Gets the next object from a list of objects you opened with
OPENLIST. The list is always of one particular class of objects, such
as INPUT, OUTPUT, and PROGRAM.

Remarks The object_var is a local OBJ ECT variable you defined with the
OBJ ECT statement.

Returns SUCCESS or FAILURE. After it obtains 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 OBJ ECT variable with the OBJ ECT
keyword, you can then open the list of objects of a particular class
(see OpenList) and get each object with GETOBJ ECT. 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


Andover Plain English Language Reference 7-141

GetObject, continued

Example 1
continued
If VavPoint State is Disabled then
Print VavPoint Name
Line ClosePoints
.
.
Stop
The program is looping, which means that it stays on the GetPoints
line until GETOBJ ECT fails to retrieve another point. GETOBJ ECT
cannot find anymore points when it returns FAILURE rather than
SUCCESS. Notice that because the program is looping, you use the
STOP keyword to prevent it from repeating the actions on the
ClosePoints line.
This program checks the state of each point it retrieves from a
particular controller. If the point is disabled, the program prints the
point name. When the control system software has finished getting all
the points, you have a list of the disabled points.
See the related keywords for details on how to open and close the
lists.

Example 2 You can print a list of disabled programs on a particular controller
using GETOBJ ECT. 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
.

7-142 Schneider Electric


GetObject, continued

Example 2
continued
This program checks the state of each program it retrieves from a
particular controller. If the program is disabled, the control system
software prints the program name. When the control system software
has finished getting all the programs, you have a list of the disabled
programs.


Example 3 You can print a list of the CX series controllers that are off-line using
GETOBJ ECT. The sample program is looping:
Program File
Object EnetCtrlr
Line OpenController
.
.
Line GetController
If GetObject (EnetCtlr) is not Sucess then
Goto CloseController
Endif

IF EnetCtlr CommStatus Is OffLine then
Print EnetCtlr Name
Endif
Line CloseController
.
This program checks the CommStatus of each CX series controller on
the network. If the controller is off-line, the control system software
prints the controller name. When the control system software has
checked the entire list of controllers, you have a complete list of the
CX controllers that are off-line.
Since this information can change, you might run a program like this
every hour (trigger it from the HOUR system variable) or more
frequently.

Andover Plain English Language Reference 7-143

GetObject, continued

Example 4 You can also get a list of all points or all files rather than a particular
type of point or file. GETOBJ ECT gets all points in the following
example.
Program File
Object VAVPoint
Line OpenVAVPoints
.
.
Line GetVAVPoints
If GetObject (VAVPoint) is not Success then
Goto CloseVAVPoints
Endif

Pr VAVPoint
Line CloseVAVPoints
.
.
This program gets each point from the VAVPoint list. PR prints the
name, value, and units of each point. You can use this type of
program to retrieve all point values from a single controller quickly
and easily.

Related
Keywords
CloseList
OBJ ECT
OpenList

Products
Supported
BACnet series (except b3885, b3887), CX series, CMX series,
i2 series controllers (except i2885, i2887), and CyberStation.

Modes
Available
Programs

7-144 Schneider Electric


GOTO Function

Format Fromat 1: GOTO linename Format 2: GOTO LINE linename

Format 3: GO linename Format 4: GO TO linename

Format 5: GO TO LINE linename

Purpose Branches to the line labeled linename.

Remarks The linename is any line label created with the LINE statement.
Must be in the same program. (See LINE.)

Note: Do not use GOTO in FOR..NEXT, WHILE, or REPEAT..UNTIL
loops. The controller gives an error if you do.

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.

Andover Plain English Language Reference 7-145

GOTO, continued


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 3 You can leave out TO and type only GO:
Program File
Line Beginning
If Temp is less than 68 then Go Heating
If Temp is greater than 76 then Go Cooling
Line Heating
Turn On Heater1
Go Beginning
Line Cooling
Turn On Cool1
Go Beginning

Example 4 You can separate GO and TO as follows:
Program File
Line Beginning
If Temp is less than 68 then Go To Heating
If Temp is greater than 76 then Go To Cooling


7-146 Schneider Electric


GOTO, continued

Example 4
continued
Line Heating
Turn On Heater1
Go To Beginning
Line Cooling
Turn On Cool1
Go To Beginning

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
Keywords
BASEDON..GOTO
LINE

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Programs

Andover Plain English Language Reference 7-147

Section 5 Keywords H through N

HangUp Function

Format Format 1: HangUp (commport)
Format 2: HangUp ( )
Format 3: HangUp (commport)

Purpose Format 1: From a program, hangs up on the Infinity modem
connection using the comm port you indicate. The Infinity modem is
on the comm port.
Format 2: From a program, hangs up on the Infinity modem
connection. Determines the comm port based on the DefaultPort
attribute for the program.
Format 3: From the Command line on a terminal, hangs up on the
Infinity modem connection over the comm port you give.

Remarks HangUp applies only to a controller with an Infinity modem.
The controller may also be connected over a modem to a third-party
controller with an ASCII interface, another Andover Contiuum
controller, a terminal, or a printer.
Replace commport with the controller port that physically connects to
the modem. (Optional in a program but required on the command
line.)
If you do not indicate the comm port in a program, HangUp uses the
default port you set at the top of the program or in the File
Configuration window. You must indicate the comm port from the
command line.
You can use HangUp in a program or on the command line. When
you use HangUp from a program, you must use it on a labeled line by
itself. After it executes, HangUp automatically moves the program to
the next labeled line. The next labeled line should then test for the
returned results of HangUp.

7-148 Schneider Electric

HangUp, continued

Remarks
continued
When you use HangUp from the command line, it returns right away,
before the hanging up actually begins. In this case, the response that
HangUp first returns reflects the first response to HangUp rather than
the final result.
HangUp can return one of the following results:
SUCCESSController has successfully disconnected from the
workstation or other device.
FAILUREIf 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.


HangUp, continued

Remarks
continued
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.
Discards all characters the controller has not yet printed to the port.
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.

Andover Plain English Language Reference 7-149







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

Hanging Up While InitModem is in Process
If you use HangUp or CLOSE while the InitModem keyword is preparing
the modem for communication, the controller ignores these two
statements.




7-150 Schneider Electric

HangUp, continued

Example 1 Suppose you are on a controller and have written a program to call a
device with DIAL. After you have the program call the device
successfully, and once you determine the PrintDone attribute of the
port is True, you can hang up. To have the program hang up, use
HangUp and give it the name of the port on which to hang up:
Program File
CheckingDone:
If Comm1 PrintDone then Goto CompletingComm
CompletingComm:
HangUpResult =HangUp (Comm1)
CheckingHangUp:
If HangUpResult is not Success then
Print "Could Not Hang Up Comm Port"
Endif
Immediately after you use HangUp on the line, you must check for the
result of hanging up. If it was successful, HangUpResult is equal to
SUCCESS; otherwise it is equal to FAILURE.

Example 2 You use HangUp to have a program hang up after it has successfully
called a device. If you do not give HangUp the name of the comm
port, it automatically assumes you want it to hang up on the
DefaultPort you set in the File Configuration window or at the top of
the program, as in the following example.
Program File
Preparing:
Set Floor1 CallingUp DefaultPort =Comm3
. . .
CheckingDone:
If Comm1 PrintDone then Goto CompletingComm
CompletingComm:
HangUpResult =HangUp ( )
CheckingHangup:
If HangUpResult is not Success then
Print "HangUp of Comm Port Failed"
Endif
Remember that if you used DIAL to make the call on the comm port
and used PRINT to send messages through the port, you should
check the PrintDone attribute of the port before hanging up.

Andover Plain English Language Reference 7-151

HangUp, continued

Example 3 You can hang up on a port from the Command window of a controller
as follows:
Command Window
HangUp (Comm3)
You must always name the comm port from the Command line.
Before you attempt to hang up from the Command line, you should
check the PrintDone attribute of the port from the Command line:
Pr Comm3 PrintDone
If PrintDone is True, then proceed to hang up.


Related
Keywords
DIAL
CLOSE
OPEN
READ
InitModem
WRITE

Products
Supported
Available only on CX and CMX series controllers.

Modes
Available
Command lines and programs.

7-152 Schneider Electric

HOD System variable

Format HOD

Purpose Give the time in a decimal form from 0.0 to 23.99.

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 OutsideAir 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

Related
Keywords
HOUR MINUTE
SECOND TOD

Alias HOUROFDAY

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-153

HOUR System variable

Format HOUR

Purpose Gives the current hour, from 0 to 23.

Remarks If the time is 5:23:02, the hour is 5.

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
Keywords
HOD
MINUTE
SECOND
TOD

Alias HR

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

7-154 Schneider Electric

IF..THEN..ELSE Statement

Format Format 1: If expression then statement

Format 2: If expression then
statement
statement
statement
.
.
Endif

Format 3: If number then statement Else statement

Format 4: If expression then
statement
statement
statement
.
.
Else
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.
In a multi-line statement, ELSE must always be on a physical line
by itself (Format 4).
ELSE can be followed by one statement on the same physical
line or multiple statements on the physical lines that follow it
(Format 4).
ENDIF is required to close an IF..THEN block when multiple
statements occur after THEN or when one or more statements
occur after ELSE.



IF..THEN..ELSE, continued

Format Rules
continued
When you use an IF statement after THEN, it must be nested
under THEN and end with ENDIF (see "If Statement after Then"
example).



Andover Plain English Language Reference 7-155




CAUTION
To use WHILE, FOR..NEXT, REPEAT..UNTIL or
similar looping statements with IF..THEN..ELSE,
you must use Format 2 or 4.
!

Carries out a given statement or series of statements if the
expression is true.
Purpose

May also carry out a given statement or series of statements if the
given expression is false.

Replace expression with any number or expression. The expression
can be a TRUE or FALSE comparison.
Remarks
Replace statement with any complete instruction that tells the
program what to do next or what action to take.

The following action takes place for all formats,: Actions
If the expression is TRUE, the controller carries out the
statement or statements following THEN.
If the expression is FALSE, the controller skips those statements
after THEN and does either of these:
Carries out the statements after ELSE (if ELSE is used).
Moves on to the next statement after the IF..THEN block.
Whether the number is TRUE or FALSE, when the IF..THEN
statement is complete, program flow goes to the statement following
the IF..THEN statement unless it is directed to another line using
GOTO, Break or Continue.
If you have multiple statements after THEN, they must occur on
consecutive (physical) lines, and the end of the statement must be
marked with ENDIF.


7-156 Schneider Electric

IF..THEN..ELSE, continued

Example of
Format 1
To take a single action if the expression is true, you use Format 1,
the single-line IF..THEN statement:
Program File
If Tod >=1200 then Goto Noon

If the time of day is greater than 12:00 noon, then program flow
moves to the Noon line. Otherwise, the program continues with the
next statement.

Note: If you put THEN on a separate physical line from IF, a syntax
error will occur.

Example of
Format 2
You use format 2 to take several actions if the expression is true and
to take no action if it is false:
Program File
If Wkd =Mon and Tod >800 and TOD <1600 then
Run the HeaterProg
Run the FanCheckProg
Stop the PumpProg
Endif
If the expression is false, the controller ignores the statements
following THEN and moves to the statement after ENDIF.

Example of
Format 3
You use Format 3 to take a single action if an expression is true and
another single action if it is false,:
Program File
If Tod >800 & TOD <1700 then Run DayPrg Else Run NiteProg

Notice that IF, THEN, AND ELSE must all be on one line in this
format.



Andover Plain English Language Reference 7-157

IF..THEN..ELSE, continued

Example of
Format 4
You use Format 4 to take several actions if the expression is true or
to take several others if it is false,:
Program File
If Temp <72 and Pump.Stat is Off then
Turn ON the Fan
Close the Damper
Else
Turn Off the Fan
Open the Damper
Endif
ELSE stands on a line by itself in this format and the end of the IF..
THEN..ELSE statement must be marked by ENDIF.

Example of
Nested IFs
IF statements may be included (nested) within other IF statements.
Program File
If the Wkd is Either Saturday or Sunday then
Set Occupancy to Off
Stop the DailyProgram
If the Temp is greater than 70 then
Turn On the Fan
Open the Damper
Else
Turn Off the Fan
Open the Damper
Endif
Else
Set Occupancy to On
Start the DailyProgram
Endif



IF..THEN..ELSE, continued

Notice that each IF ends with an ENDIF. The inner (indented) ENDIF
goes with the inner IF and ELSE, the outer ENDIF with the outer IF
and ELSE.
Example of
Nested Ifs
continued

The ELSE and ENDIF that belong to the indented IF are aligned
under that IF. Notice that the last IF ends first.

Take a look at the following statement with an IF after THEN: Example of an
IF Statement
after THEN
Program File
The ELSE goes with this IF
If the Wkd is Sat then If the Hour is 1 then Goto 1 Else Goto 2
Which If does the Else belong to? In this case the Else belongs to
the If the arrow points to because it belongs to the closest previous If
on the same physical line.

An IF..THEN statement that starts right after Then is always a self-
contained statement that ends on that 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
7-158 Schneider Electric

If the Wkd is Sat then
If the Hour is 1 then
Goto 1
Endif
Else
Goto 2
Endif
In this nested If statement, the Else belongs to the first If, the one the
arrow points to.



IF..THEN..ELSE, continued

Example of a
Nonzero Value
number
Program File
If 10 then Start Burner
Here, since 10 is a nonzero value, it is interpreted as TRUE and will
cause the burner to fire up.



Andover Plain English Language Reference 7-159





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.
!

AND Related
Keywords IS. . .
OR

ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.
Products
Supported

Command lines and programs. Modes
Available

7-160 Schneider Electric

INFINET#COUNT System variable

Format INFINET#COUNT

Purpose Gives the number of Infinet controllers on-line on COMM1 or COMM2
of the CX series controller you to which are connected.

Or gives the number of Infinet controllers on-line on the single Infinet
on the CMX 9924 series controller on which you are working.

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




Andover Plain English Language Reference 7-161

INFINET#COUNT, continued

Products
Supported
CX series controllers and CMX 9924 controller.

Related
Keywords
SELECT..CASE

Modes
Available
Command lines and programs.


7-162 Schneider Electric

InitModem Function

Format Format 1: InitModem (commport)

Format 2: InitModem ( )

Format 3: InitModem (commport)

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.

Format 2: From a program, initializes the Infinity modem so it can
connect from a controller (often on a remote network) to another
device, usually a workstation, using a default commport.

Format 3: From the Command line on a terminal, initializes the
Infinity modem so it can connect from a controller (often on a remote
network) 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.

InitModem applies only on a controller with an Infinity modem.

The controller may also connect over a modem to a third-party
controller with an ASCII interface, another Andover Contiuum
controller, a terminal, or a printer.

Replace commport with a Controller port that physically connects to
the modem. (Optional in a program.) 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, InitModem 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. If the port is in Printer mode when InitModem tries to
initialize it, all characters waiting to print are discarded.



InitModem, continued

InitModem automatically sets the following attributes of the port: Remarks
continued
Andover Plain English Language Reference 7-163
Attribute Setting
TrackCXD True
Baud Equal to the DefaultBaud attribute of the port.
Parity None
StopBits StopBit1
DataLength DataBits8
FlowControl CtsRts
DTR On

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.





Tffsasfff




CAUTION
Be careful not to use InitModem to initialize Comm3 of a
controller if you want to keep that port set up for a
terminal since Comm3 does not automatically revert to
the terminal settings if the the controller resets.
After initializing Comm3, you can revert it to its original
settings, by manually setting the FlowControl attribute
of 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.



InitModem, continued

Wait the 10 seconds before checking the result of InitModem to be
certain 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.
Remarks
continued

7-164 Schneider Electric




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.

!
InitModem can return one of the following results:
Success when the modem has been initialized successfully.
Failure when one of the following situations exists:
Comport is not in the correct mode.
Default port is not defined.
Modem initialization failed.
The modem AT commands that InitModem executes are listed below.
Command Resulting Action
AT&F Sets all modem setting to factory defaults.
ATE Turns off screen display of commands and responses.
ATV Enables short-form result codes.
AT&C1 Sets CXD (DCD) to ON while carrier is present; to OFF if it is not.
AT&D3 If DTR drops (becomes OFF), hang up the phone and reset the
modem.
AT&S1 Activates DSR when connection has been established.
ATS0=1 Sets the modem to answer automatically after one ring.
AT\N3 Sets autoreliable mode to ON, turning on MNP error correction
protocols.
AT\A3 Sets the maximum block size in MNP to 256.
AT%E1 Monitors line quality and automatically falls back/forward in error
correcting mode.
AT%C1 Turns on the modem's MNP5 data compression/error correction
protocol.
ATX3 Monitors busy signals. Sends only OK, Connect, Connect XXXX,
Ring, No Carrier, Error, No Dialtone, No Answer
AT&W Stores the current modem setup in memory.



Andover Plain English Language Reference 7-165

InitModem, continued

Example 1 In order to correctly initialize the port, use the InitModem keyword before
dialing a call over the modem,.
Because the actual initialization process may take a few seconds, you
should wait for a few seconds before checking the result. In this example,
the line after InitializeModem waits 10 seconds before going to the
CheckModemInit line, where it checks the result of InitModem.
Program File
Numeric DialDelay, InitResult, DialResult, HangUpResult
SettingDelay:
DialDelay =20
Goto InitializeModem
InitializeModem:
InitResult =InitModem (Comm3)
Goto WaitForModInit
WaitForModInit:
If TS >10 THEN Goto CheckModemInit
CheckModemInit:
If InitResult =Success then Goto StartingDial
. . .
CheckingDone:
If Comm1 PrintDone then Goto CompletingComm
CompletingComm:
HangUpResult =HangUp (Comm3)
CheckingHangup:
If HangUpResult is not Success then Print "Could Not Hang Up Port"

Example 2 If you are using InitModem inside a program, you can have the program
automatically initialize the DefaultPort that you set in the File
Configuration window or at the top of the program. J ust give InitModem
without a comm port name, as shown on the next page.


7-166 Schneider Electric

InitModem, continued

Example 2
continued
Program File
Numeric DialDelay, InitResult, DialResult, HangUpResult
SettingDelay:
DialDelay =20
Goto InitializeModem
InitializeModem:
InitResult =InitModem ( )
WaitForModInit:
If TS >10 then Goto CheckModemInit
. . .

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
Keywords
DIAL
HangUp

Products
Supported
Available only on CX series controllers.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-167

IOUCommFlt# System variable

Format IOUCommFltnumber

Purpose Gives ON if there is a communication fault (failure) on an input/output
unit (IOU) or OFF if there is no communication fault.

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 (#).

Example Program File
If Floor1 IOUCommFlt2 =On then
Print "IOU #2 has failed"
Endif

This statement can be for IOUCommFlt1, IOUCommFlt2,
IOUCommFlt3, and so on, up to IOUCommFlt16 if you have that
many IOUs.

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.


7-168 Schneider Electric

IS Operator

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

Andover Plain English Language Reference 7-169
IS, continued

Format
continued
List-exclusion-expression:
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

Purpose Carries out the logical test you specify.

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.

Note: Because THAN is optional in the following pairs of statements,
each statement gives the same instructions to the controller.




7-170 Schneider Electric

IS, continued

Example 1
continued
Program File
If Zone.Temp is greater than 70 then
If Zone.Temp is greater 70 then
If Zone.Temp is above 70 then
If Zone.Temp is less than 70 then
If Zone.Temp is less 70 then
If Zone.Temp is below 70 then

Example 2 The following statements are grouped together and give the same
instructions to the controller, because TO is optional and EQUALS
can stand alone without IS:

Program File
If Zone.Temp is equal to 70 then
If Zone.Temp is equal 70 then
If Zone.Temp equals 70 then
If Zone.Temp is not equal to 70 then
If Zone.Temp does not equal 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
If Zone.Status is not in Occupied, WarmUp then
If Zone.Status is neither Occupied, WarmUp then
If Zone.Status is not 80 Through 81 then


Andover Plain English Language Reference 7-171

IS, continued

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...


7-172 Schneider Electric

IS, continued

Related
Keywords
AND
IF..THEN..ELSE
OR
WHILE

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.


Modes
Available
Command lines and programs.


Andover Plain English Language Reference 7-173

LCDPassword System variable

Format LCDPassword

Purpose Contains the password to the keypad of an Infinet controller.

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.

Example To set the password for the keypad of an Infinet controller:
Select the controller from the Continuum Explorer window.
Select the Infinity System Variable folder.
Select the LCDPassword system variable.
Enter the password in the Value text box of the System Variable
dialog box. Be sure the password is a number and only three
digits, such as 237.
Click on the Apply button and then the OK button.

Products
Supported
BACnet series, SCX 900 and 920, i2 series, and LCX 810 controllers
(with keypads only).

Modes
Available
N/A

7-174 Schneider Electric

LEFT Function

Format LEFT (string, integer)

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.

Example1 Program File
LVAL =Left("ABCDEF",2)
This statement returns "AB".

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
Supported
ACX series, BACnet series (except b3885, b3887), CX series, DCX
250, i2 series controllers (except i2885, i2887), and CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-175

LENGTH Function

Format LENGTH (string)

Purpose Returns the number of characters in the string.

Remarks The string is any text (word or words) or text expression.

Example 1 Program File
Result =Length ("ABCDE")
The LENGTH function returns 5 and the statement sets RESULT to 5.

Example 2 Program File
Result =Length ("")
The LENGTH function returns 0 and the statement sets RESULT to 0.

Alias LEN

Products
Supported
ACX series, BACnet series (except b3885, b3887), CMX series, CX
series, DCX 250, i2 series controllers (except i2885, i2887), and
CyberStation.

Modes
Available
Command lines and programs.

7-176 Schneider Electric

LINE Statement

Format Format 1: Line linename

Format 2: linename:

Format 3: Line integer

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.)

The line name can contain up to 16 characters, each an
alphanumeric, underscore, or period character.

You must begin the name with an alphabetic character. In the GOTO
statement, the label must be spelled exactly as it is in the LINE
statement; however, you may interchange upper- and lowercase.

Replace integer with a single whole number, except zero (0). LINE 0
is predefined for stopping the program, so you may not label a line
LINE 0, but you can use GOTO line 0 to stop a program.

Format 2 is the linename followed by a colon (:) on its own line.




Andover Plain English Language Reference 7-177

LINE, continued

Remarks
continued
Format 4 is the integer followed by a colon (:) on its own line. In this
case, the line has a line number for a name.

You can label lines to redirect program flow to any part of the
program. For instance, you could return program flow to an earlier
line, such as the first line. Or you could send program flow to a later
line to branch into a specific set of actions.

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




7-178 Schneider Electric

LINE, continued

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




Andover Plain English Language Reference 7-179

LINE, continued

Example 4 This example shows an integer with a colon as a line label:
Program File
1:
Start Fan1
Goto 2
2:
If Fan1.Status is On then Goto 3
3:
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



7-180 Schneider Electric

LINE, continued

Example 5
continued
Line PrintMenus
Run MenuDisplay
.
.
.
If Comm3 PrintDone =True Then Goto ClosePort3
Line ClosePort3
Result =Close (Comm3)
Line TestingClose
If Result =Success then Stop
Line E
Result =Close (Comm3)
Print "Emergency Exit MenuProgram failed."

If you have a line E, when an error occurs, line E appears in the file
status information.

Remember that line E is available only on CyberStation, and CX
series and CMX series controllers.

Related
Keywords
BASEDON..GOTO
GOTO (can also use LINE with GOTO)
ROTATE
RUN

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Programs

Andover Plain English Language Reference 7-181

LINEPOINT Function

Format LINEPOINT (horizontal, vertical)

Purpose Places a dot (vertex) on the DCX 250 Display Unit screen at the
horizontal and vertical dots you indicate. This dot is where a long
graphic line should bend or a polygon should begin a new side. The
dots are called line points. The line points do not actually appear on
the screen, but form the corners when lines or polygons print.
Returns SUCCESS or FAILURE.

Remarks All LINEPOINT statements for the same line or polygon must always
be between a BEGINPOLYLINE statement and an ENDPOLYLINE
statement. You can have up to 100 line points in a single graphic line
(polyline) or polygon.
You cannot begin a new polyline with BEGINPOLYLINE between
LINEPOINT statements. You may draw only one polyline at a time.
Replace horizontal with the number of dots (line points) from the left
of the screen that the DCX 250 Display Unit should position the dot
horizontally. Can be an integer from 1 to 320, or a name or
expression that gives one. (See Appendix D for a description of the
250 screen layout.)
Replace vertical with the number of dots (line points) from the bottom
of the screen that the DCX 250 Display Unit should position the dot
vertically. Can be an integer from 1 to 200, or a name or expression
that gives one. (See Appendix D for a description of the 250 screen
layout.)
Horizontal and vertical positions set the location of the line point.
You do not need parentheses if LINEPOINT is at the beginning of a
statement.

Example 1 You can create a graph using LINEPOINT (see Figure 7-13) by giving
the dots (line points) you want to graph in a program.
First, you must have a SETDISPLAY statement that sets the display
to NOFILL. NOFILL always gives a graphic line rather than a polygon.



LINEPOINT, continued

Example 1
continued
Second, you must have a BEGINPOLYLINE statement.

Third, you enter one LINEPOINT statement for each line point.

Finally, you enter the ENDPOLYLINE statement.

The program looks like this:
Program File
SetDisplay (NOFILL)
BeginPolyLine
LinePoint 20, 30
LinePoint 60, 80
LinePoint 90, 50
LinePoint 150, 90
EndPolyLine


















Figure 7-13. Graph drawn with LINEPOINT.

250 SCREEN



7-182 Schneider Electric

LINEPOINT, continued

Example 2 You can create a polygon (see Figure 7-14) using LINEPOINT by
giving the dots (line position) at the corners of the polygon.
First, you must have a SETDISPLAY statement that sets the display
to FILL. FILL gives a polygon rather than a graphic line.
Second, you must have a BEGINPOLYLINE statement.
Third, you enter one LINEPOINT statement for each line point.
Finally, you enter the ENDPOLYLINE statement.
Program File
SetDisplay (FILL)
BeginPolyLine
LinePoint 20, 30
LinePoint 60, 80
LinePoint 90, 50
LinePoint 20,30
EndPolyLine


















Figure 7-14. Polygon drawn with LINEPOINT.
250 SCREEN


Andover Plain English Language Reference 7-183
7-184 Schneider Electric

LINEPOINT, continued

Example 3 You can use an array of values to create a graph with LINEPOINT.
First, decide how far apart you want the values horizontally for easy
viewing. Then make each array element a vertical value.

For instance, to graph temperatures, you can use an array that stores
the temperatures for the vertical (vertical) values.

To space the values 20 dots apart horizontally, you can multiply the
index variable (1, 2, 3, 4, and 5) times 20 for the horizontal values,
so the values are placed at 20, 40, 60, 80, and 100 dots across the
screen.

The program looks like this:
Program File
SetDisplay (NOFILL)
BeginPolyLine
For Index =1 to 5
LinePoint Index *20, OutsideAir[Index]
Next Index
EndPolyLine
You enter the expression Index * 20 for the horizontal value, since the
controller understands an expression that gives a number just as it
does an actual number.
Suppose these are the first five array values:
OutsideAir[1] =45
OutsideAir[2] =60
OutsideAir[3] =52
OutsideAir[4] =48
OutsideAir[5] =30
The resulting line points are as follows:
20, 45
40, 60
60, 52
80, 48
100, 30
The graph appears on the 250 screen as shown on Figure 7-15.



LINEPOINT, continued

Example 3
continued



















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; the vertical
distance between values is greater.

The graph also appears more centered on the 250 screen, as shown
on Figure 7-16.
250 SCREEN


Andover Plain English Language Reference 7-185

LINEPOINT, continued

Example 3
continued
You can also label the graph and add scales as described under the
Locate keyword.




















Figure 7-16. Expanded vertically centered graph drawn with LINEPOINT
using and array of values.
250 SCREEN

Related
Keywords
BEGINPOLYLINE
ENDPOLYLINE
LOCATE

Products
Supported
DCX 250 Display Unit

Modes
Available
Programs


7-186 Schneider Electric
Andover Plain English Language Reference 7-187

LN Function

Format LN (integer_expression)

Purpose Returns the natural logarithm of integer_expression.

Remarks The integer_expression is any integer not equal to zero.

Example Program File
LGVAL =LN(3.2)
The natural log of 3.2 is returned and placed in LGVAL.

Products
Supported
ACX series, BACnet series, CX series, DCX 250, i2 series, LCX
series, SCX series, TCX series controllers, and CyberStation.

Modes
Available
Command lines and programs.

7-188 Schneider Electric

LOAD Statement on controller

Format Format 1: LOAD

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 191.

Note: Restricted to users with administration level access.

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.




LOAD (controller), continued

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, 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.)

The following example loads a dump file onto a controller so that it
adds to the items on the controller. However, it does not replace items
already present:
Example 1
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

Andover Plain English Language Reference 7-189
7-190 Schneider Electric

LOAD (controller), continued

Example 2 The following example loads a dump file from a disk into the controller
to replace any points, programs, or other items (objects) on the
controller with information from the dump file:
Command Line window on controller
LOAD o
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 with information from the file on the
controller. The controller also sends messages to the Messages
window on the terminal during the reload.



Andover Plain English Language Reference 7-191

LOAD (controller), continued

Example 4
continued
Command Line window on controller
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
Keywords
SAVE

Alias RELOAD

Products
Supported
CX series controllers and CM X220.

Modes
Available
Command lines.

7-192 Schneider Electric

LOAD Statement on workstation

Format Format 1: LOAD object_list -o

Format 2: LOAD object_list -c -o

Format 3: LOAD object_list any_combination_of_options -o

Format 4: LOAD filename -u -a -o -x

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

For information about how to use LOAD on a terminal connected to a
CX series or CMX 220 controller, see the previous keyword
description.

On a CyberStation, use this command to reload a controller using
information you have saved and stored in the database on the server.

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.





Andover Plain English Language Reference 7-193

LOAD (workstation), continued

Purpose
continued
Format 4: Loads a filename with either a .CSV (Comma Separated
Variable) or .dmp extension. You must choose only one of these
three options:
u (update) this is the default
a (append)
o (override)
The x option stands for distribute personnel.

Remarks Restricted to users with a minimum of configure level access.
Replace object_list with a list of controllers, Infinet controllers, or
other objects that are stored in a controller, since you are loading the
information into a controller. The objects should all be of the same
class; for instance, all numeric points or all programs. If the list is of a
class other than Controller or InfinetCtlr, the class list should contain
only objects from the same controller and each name should include
the full path.
Replace any_combination_of_options with one or more of the
options:c (confirm) and/or v (validate). 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, give the name of the
controller and then -o, as follows:
Command Line
LOAD Floor1 o


7-194 Schneider Electric

LOAD (workstation), continued

Example 2 The following example loads only the information about the Temp1,
Temp2, and Temp3 points into the Floor1 controller from a
workstation:
Command Line
LOAD Floor1 Temp1, Floor1 Temp2, Floor1 Temp3 o
Other information on the controller, such as Infinet controllers and
other points, remains intact.

Example 3 You can use LOAD from a program as well as from the command
line. For instance, to reload a controller that has been reset by some
strong, external interference, you may want to load the information
from the database when the FREEMEM system variable is greater
than a predetermined value:
Program File
Line CheckingMem
If FreeMem >18,000 then Goto UpdateMem
Line UpdateMem
LOAD Floor4 o
Line EndingLoad
Goto CheckingMem
Notice that the program does not require a GOTO after the LOAD
statement. The program automatically proceeds to the next line.

Example 4 Normally, when you use LOAD from the command line, the software
automatically displays a window where you can confirm the load. To
have the software display that window when you use LOAD in a
program, you must use -c with the LOAD command:
Program File
Line UpdateMems
LOAD Floor4, Floor5, Floor6, Floor7 c o


Andover Plain English Language Reference 7-195

LOAD (workstation), continued

Example 5 Command Line
LOAD Personnelfile.CSV a
Personnel distribution is automatically done with CSV files.

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
Keywords
SAVE

Alias RELOAD

Products
Supported
CyberStation

Modes
Available
Command lines and programs.

7-196 Schneider Electric

LOCATE Function

Format LOCATE (left, bottom)

Purpose Places the next text you print on the DCX 250 Display Unit screen at
the location you indicate with left and bottom, which indicates the
number of dots from the left and from the bottom. The next text you
print appears at the location. Returns SUCCESS or FAILURE.

Remarks To place text accurately, locate it in the position where the lower left
corner of the first character should begin.
You usually follow each LOCATE statement with a PRINT statement.
Replace left with the number of character dots from the left of the
screen that the DCX 250 Display Unit should position the text
horizontally. Can be an integer from 1 to 320, or a name or
expression that gives one. (See Appendix D for a description of the
250 screen layout.)
Replace bottom with the number of character dots from the bottom of
the screen that the DCX 250 Display Unit should position the text
vertically. Can be an integer from 1 to 200, or a name or expression
that gives one. (See Appendix D for a description of the 250 screen
layout.)
You do not need parentheses if LOCATE is at the beginning of a
statement.

Example 1 Suppose you want to print text on the screen to label two buttons.
First, you draw the buttons with, for instance, DRAWRECTANGLE.
Then you locate the text with the LOCATE function and print the
button label, as follows:
Program File
SetDisplay (Blue)
DrawRectangle 50, 100, 100, 120
DrawRectangle 50, 50, 100, 80
Locate 125, 105
Print "Open Valve"
Locate 125, 85
Print "Close Valve"


LOCATE, continued

Example 1
continued
Notice that you do not need the parentheses in this case, because
LOCATE is at the beginning of a statement. (You can, however, use
the parentheses to make the program easier to read.)
The labels appear next to the buttons as show in Figure 7-17.



















Figure 7-17. Using the LOCATE function to label buttons.
CLOSE VALVE
OPEN VALVE
Lower left corner at 125, 85
Lower left corner at 125, 105
250 SCREEN

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 TempOccupied Hours"
SetDisplay (NOFILL)
BeginPolyLine
For Index =1 to 5
LinePoint Index *20, OutsideAir[INDEX] * 2
Next Index


Andover Plain English Language Reference 7-197

LOCATE, continued

Example 2
continued
EndPolyLine
Locate 20, 130
Print "70"
Locate 20, 100
Print "50"
Locate 20, 70
Print "30"
Locate 35, 45
Print " 8 10 12 14 16"
DrawLine 30, 42,110, 42
DrawLine 30, 42, 30, 145

The title appears where you position the text as shown in Figure 7-18.



















Figure 7-18. Using the LOCATE function to label a graph.

You must place each temperature individually for the temperature
scale along the left side. For the horizontal list of hours, you can use
a single LOCATE statement followed by a single PRINT statement.
Outside Ai r TempOccupied Hours
70
50
30
8 10 12 14 16
250 SCREEN



7-198 Schneider Electric
Andover Plain English Language Reference 7-199

LOCATE, continued

Related
Keywords
PRINT

Products
Supported
DCX 250 Display Unit

Modes
Available
Programs


7-200 Schneider Electric

LOG Function

Format LOG (integer_expression)

Purpose Returns the base 10 logarithm of integer_expression.

Remarks The integer_expression is an integer greater than zero.

Example Program File
Result =log(10)
This statement sets RESULT equal to 1.

Products
Supported
ACX series, BACnet series (except b3885, b3887), CX series, DCX
250, i2 series (except i2885, i2887), LCX series, SCX series, TCX
series controllers, and CyberStation.

Modes
Available
Command lines and programs.


Andover Plain English Language Reference 7 - 201

MAXIMUM Function

Format Format 1: MAXIMUM (numeric_list)

Format 2: MAXIMUM (numeric_log)

Format 3: MAXIMUM (numeric_array)

Purpose Format 1: Finds the maximum number in a list of numeric values.

Format 2: Finds the maximum number in a numeric log.

Format 3: Finds the maximum number in a numeric array.

Remarks Replace numeric_list with one or more numbers or names that stand
for numbers, separated by commas.

Replace numeric_log with any defined log that contains numbers.

Replace numeric_array with any defined array that contains
numbers.

Items in the list must all be numeric expressions, numbers, or
variables that contain numbers.

If any of the items in the list in Format 1 is an array or a log but does
not indicate an element number, the controller retrieves the current
value of the point and treats it like any other single item in the list.

Example 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.




Schneider Electric

7-202

MAXIMUM, continued

Example 2 There is a log called AV.TEMP that holds the average temperature for
each of the last five days. You can use the MAXIMUM function to
find the maximum temperature:
Program File
WklyMax =maximum (AV.TEMP)

If AV.TEMP contains 110, 114, 112, 108, 109, MAXIMUM returns 114
and the program statement sets WKLYMAX to 114.

Example 3 You can find the maximum number of kilowatts in the array of
variables as follows:
Program File
Top =maximum (KW)

Example 4 You find the highest of several temperatures, including the current
value of TempLog, as follows:
Program File
HourlyAvg =maximum (Tmp801, Tmp802, TempLog)
In this instance, TempLog is interpreted as the current value of
TempLog.

Alias MAX

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7 - 203

MAXITEM Function

Format Format 1: MAXITEM (numeric_list)

Format 2: MAXITEM (numeric_log)

Format 3: MAXITEM (numeric_array)

Purpose Format 1: Finds the position (in a list) of the largest number. For
instance, returns 1 if the largest number is the first one in the list.

Format 2: Finds the index position of the largest number in the log.

Format 3: Finds the index position of the largest number in the array.

Remarks Replace numeric_list with one or more numbers or names that stand
for numbers, separated by commas.
Replace numeric_log with any defined log that contains numbers.
Replace numeric_array with any defined array that contains
numbers.
If any of the items in the list in Format 1 is an array or a log, the
controller retrieves the first item from the array or log and treats it like
any other single item in the list.

Example 1 To find the position of the largest number in a series of numbers, you
enter the series in the parentheses:
Program File
Temp1 =60
Temp2 =65
Temp 3 =70
Temp 4 =67
maxitem (Temp1, Temp2, Temp3, Temp4)

The MAXITEM statement returns 3, because the third item in the list
contains the largest number.



Schneider Electric

7-204

MAXITEM, continued

Example 2 To find the index position of the largest number in a log, give the log
name in parentheses:
Program File
maxitem (Temp)

Example 3 To find the index position of the largest number in an array, give the
array name in parentheses:
Program File
maxitem (KW)

Example 4 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
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7 - 205

MessageWindow Constant

Format MessageWindow

Purpose Refers to the message window on a CyberStation.

Remarks To have PRINT statement text appear in the message window of a
CyberStation, use MessageWindow in a statement.

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
Keywords
STATUSLINE

Products
Supported
CyberStation

Modes
Available
Command lines and programs.


Schneider Electric

7-206

MicroPower System variable

Format MicroPower

Purpose A predefined variable that you set to OFF to turn off battery power to
the ACX 781 controller. Turn off the battery power after AC power
fails, so that you preserve the life of the battery and extend the length
of time the controller can retain memory on battery backup.

Remarks For advanced users only. Most often used in programs that respond
to loss of AC power.

When you set MicroPower to OFF and AC power is not present, you
shut off power to the ACX 781 controller.

Leave MicroPower set to ON while AC power is up. If AC power has
not failed, setting MicroPower to OFF has no effect. Instead of turning
off the CPU, it resets back to ON at the end of the scan once it has
determined that AC power is present and a shutdown has not
occurred.

After AC power goes down, the battery power takes over. Setting
MicroPower to OFF turns off battery power to the CPU at the end of
the scan that was in process before the AC power failure. As a result,
the controller does not operate at all until AC power returns.

When AC power returns to normal, the ACX 781 controller begins the
scan at the first program in the firing order list. All programs continue
on the line that they were on before you turned off the battery power
to the CPU.

To retain memory for the longest possible time, you should turn off
MicroPower as soon as possible after PowerFail becomes ON.


Andover Plain English Language Reference 7 - 207

MicroPower, continued

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.

Products
Supported
ACX 781 controller.

Modes
Available
Command lines and programs.


Schneider Electric

7-208

MID Function

Format MID (string, offset, number)

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.

Example 1 Program File
MIDSTR =MID("ABCDE", 2, 3)
MID returns "BCD" and the statement sets MIDSTR to "BCD".

Example 2 Program File
PARTSTR =MID("ABCDE", 9, 2)
Since the offset (9) is greater than string length, the statement returns
an empty string ("").

Products
Supported
BACnet series (except b3885, b3887), CX series, CMX series, DCX
250, i2 series controllers (except i2885, i2887), and CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7 - 209

MINIMUM Function

Format Format 1: MINIMUM (numeric_list)

Format 2: MINIMUM (numeric_log)

Format 3: MINIMUM (numeric_array)

Purpose Format 1: Finds the minimum number in a list of numeric values.

Format 2: Finds the minimum number in a numeric log.

Format 3: Finds the minimum number in a numeric array.

Remarks Replace numeric_list with one or more numbers or names that stand
for numbers.

Replace numeric_log with any defined log that contains numbers.

Replace numeric_array with any defined array that contains
numbers.

Items in the list must all be numbers, numeric expressions, or
variables that contain numbers.

If any of the items in the list in Format 1 is an array or a log but does
not indicate an element number, the controller retrieves the current
value of the point and treats it like any other single item in the list.

Example 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.




Schneider Electric

7-210

MINIMUM, continued

Example 2 Suppose you have a log or array called AV.TEMP that holds the
average temperature for each of the last five days. You can use the
MINIMUM function to find the minimum temperature:
Program File
WklyMin =minimum (AV.TEMP)
If AV.TEMP contains 110, 114, 112, 108, 109, MINIMUM returns 108
and the program statement sets WKLYMIN to 108.

Example 3 You can find the minimum number of kilowatts in the array of
variables as follows:
Program File
Bottom =minimum (KW)

Example 4 You can find the minimum of several temperatures, including the
current value of TempLog, as follows:
Program File
HourlyAvg =minimum (Tmp801, Tmp802, TempLog)
In this instance, TempLog is interpreted as the current value of
TempLog.

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7 - 211

MINITEM Function

Format Format 1: MINITEM (numeric_list)

Format 1: MINITEM (numeric_log)

Format 1: MINITEM (numeric_array)

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.
Replace numeric_log with any defined log that contains numbers.
Replace numeric_array with any defined array that contains
numbers.
If any of the items in the list in Format 1 is an array or a log, the
controller retrieves the first item from the array or log and treats it like
any other single item in the list.

Example 1 To find the position of the smallest number in a series of numbers,
you enter the series in the parentheses:
Program File
Temp1 =60
Temp2 =65
Temp3 =70
Temp4 =67
minitem (Temp1, Temp2, Temp3, Temp4)
The MINITEM statement returns 1, because the first item in the list
contains the smallest number.



Schneider Electric

7-212

MINITEM, continued

Example 2 To find the index position of the smallest number in a log, you give
the log name in parentheses:
Program File
BotNumber = minitem (TEMP)

Example 3 To find the index position of the smallest number in an array, you give
the array name in parentheses:
Program File
BotNumber = minitem (KW)

Example 4 You find the position of the lowest of several temperatures in a list,
including the current value of TempLog, as follows:
Program File
HourlyAvg =minitem (Temp801, Tmp802, TempLog)
In this instance, TempLog is interpreted as the current value of
TempLog.

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7 - 213

MINUS Operator

Format number MINUS number

Purpose Subtracts number from number.

Remarks The number is any number or expression.

Example 1 Program File
KWH.PM =KWH.DAY minus KWH.AM

Example 2 Program File
KWH.PM =KWH.DAY - KWH.AM

Alias - (minus sign)

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.


Schneider Electric

7-214

MINUTE System variable

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.


Andover Plain English Language Reference 7 - 215

MINUTE, continued

Example
continued
The Temp.Check and Temp.Rept programs now run at 30 minutes
after the hour every hour of every day, 24 hours a day and 365 days
a year.

The Fan.Check and Damper.Check programs now run at 45 minutes
after the hour every hour of every day, 24 hours a day and 365 days
a year.

The Heater.Check and Co.Check programs now run on the hour
every hour of every day, 24 hours a day and 365 days a year.

Related
Keywords
HOD
HOUR
SECOND
TOD

Alias MIN

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.


Schneider Electric

7-216

MOD Operator

Format number MOD number

Purpose Returns the remainder of one number divided by another.

Remarks Each number must be a number or expression.

Example Program File
EXTRA =5 Mod 2
The equation divides 5 by 2 and gives a remainder of 1, so EXTRA is
set to 1.

Alias REMAINDER

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7 - 217

ModemPower System variable (programmable)

Format ModemPower

Purpose A predefined variable you can set to OFF to turn off battery power to
the modem inside the door of the CX series controller. Turn off the
modem when AC power fails. This way you preserve the life of the
battery and extend the length of time the controller can operate on
battery backup.

Remarks For advanced users only. Most often used in programs that
respond to loss of AC power.

Leave ModemPower set to ON while AC power is up. If AC power has
not failed, setting MODEMPOWER to OFF has no immediate affect
as long as the modem is operating on AC power, not DC. However,
once AC power goes down and battery power takes over,
ModemPower turns off power to the modem without warning.

You can turn the modem on and off with the ModemPower keyword
as long as AC power is off.

Example When the AC power fails, the PowerFail system variable turns ON.
You can have PowerFail trigger the following looping program to turn
off the modem if the power remains off for 10 minutes.
Program File
Line WaitForFail
IF PowerFail is On then
Goto TimePowerDown
Else
Stop
Endif
Line TimePowerDown
If Tm >10 then Goto TurnOffModem




Schneider Electric

7-218

ModemPower, continued

Example
continued
Line TurnOffModem
If PowerFail is On then
Turn ModemPower 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 ModemPower to OFF.

Related
Keywords
PowerFail
CPUPower
DCXPower
MicroPower

Products
Supported
CX series and CMX series controllers.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7 - 219

MONTH System variable

Format MONTH

Purpose Gives you the current month of year, from J anuary to December.

You cannot change the MONTH. The system automatically updates it.
When printed, the month is spelled out as J anuary, February, and
March, and so on through December. You may, however, compare the
MONTH to:
The numbers (1 through 12).
The abbreviated three-letter names (first three letters).
The entirely spelled out month
All values for MONTH are listed below:
Constant Short Name Long Name
1 J AN J anuary
2 FEB February
3 MAR March
4 APR April
5 MAY May
6 J UN J une
7 J UL J uly
8 AUG August
9 SEP September
10 OCT October
11 NOV November
Remarks
12 DEC December

Example 1 You can use the spelled out (long) names for printing or for
comparing to an actual month:
Program File
If Month Is December then Print Month
Output
December




Schneider Electric

7-220
MONTH, continued

Example 2 You can use the short names for comparing the month:
Program File
If Month is either J un, J ul, 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
Keywords
DAYOFMONTH
DAYOFYEAR
YEAR

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7 - 221

MOVE Statement

Format Format 1: MOVE output_point_list TO number

Format 2: MOVE output_point_list TO number %

Purpose Set the point or points in output_point_list to number.

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.

MOVE converts engineering units to electrical units to control the
output point, using the top and bottom of scale for that point.

The percent sign is optional.

Example 1 If Valve2 has engineering units of 0 to 90 degrees, and the
corresponding electrical units are 0 to 20 mA, when you move the
setting of Valve2 to 45, it sets to 10 mA. To have the engineering
units automatically converted to electrical units, you use MOVE as
follows:
Program File
Move Valve2 to 45

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%




Schneider Electric

7-222

MOVE, continued

Related
Keywords
SET

Alias MODULATE

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7 - 223

NewAlarmCount System variable

Format NewAlarmCount

Purpose Indicates the number of new alarms on a CX series controller and all
of its Infinet controllers since the last time the alarms were sent to the
workstation. The controller maintains this system variable.

Remarks You cannot set NewAlarmCount. The controller automatically updates
NewAlarmCount whether it is enabled or disabled.
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 again.
NewAlarmCount exists only on CX series and CMX series controllers
and counts all alarms that occur on them and on any of its Infinet
controllers.
The controller also adjusts NewAlarmCount when you take any of the
following actions:
Delete the point associated with an alarm
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




Schneider Electric

7-224

NewAlarmCount, continued

Products
Supported
CX series, CMX series controllers.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7 - 225

NOFILL Constant

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
Keywords
FILL
SETDISPLAY

Products
Supported
DCX 250 Display Unit.

Modes
Available
Programs


Schneider Electric

7-226

NOT Operator

Format NOT number

Purpose Logically negates or inverts a number or expression, changing 0
(FALSE or OFF) to 1 (TRUE or ON) or vice versa.

Remarks The number is any number or expression. However, the number is
interpreted as zero or nonzero, where zero is OFF or FALSE and
nonzero is ON or TRUE. If you prefer, you may use parentheses
around the number.

Example In the statement below, suppose OCCUPIED can be ON or OFF.
When OCCUPIED is ON, placing NOT in front of it tests for the
opposite condition, OFF.
Program File
If not Occupied then

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7 - 227

NUMERIC Statement

Format NUMERIC namelist [array_size_number]

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.

Each variable may be a single variable or an array. You specify an
array by including the array_size_number when you define it.

Remarks Replace namelist with the name of the numeric variable you are
defining, or a series of numeric variables separated by commas.

Replace array_size_number with a number up to 32,767 that tells the
controller how many positions are in the array.

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 2 You can define a series of numeric variables in a single statement:
Program File
Numeric Ave.Oat, Ave.Temp, Fan.Sp



Schneider Electric

7-228

NUMERIC, continued

Example 3 You can define an array of numeric variables in a single statement:
Program File
Numeric Fan.Sp [20]

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
Keywords
DATETIME
STRING

Alias NUMBER

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Programs

Andover Plain English Language Reference 7 - 229

NUMTOSTR Function

Format NUMTOSTR( number )

Purpose Converts a number in a numeric variable, or other numeric form, to a
string variable so it can be used in string operations. Returns the
converted string value.

Remarks The number is any number or expression.

Once a number is in a string variable, it can be used in string
operations.

Example The following program translates the number 240 into a string:
Program File
String Trans
Trans =NumToStr(240)
Print Trans 'prints string 240.

Related
Keywords
STRTONUM

Products
Supported
BACnet series (except b3885, b3887) , CX series, CMX series, DCX
250, i2 series controllers (except i2885, i2887), and CyberStation.

Modes
Available
Command lines and programs.


Schneider Electric

7-230

Section 6 Keywords O through R

OBJECT Statement

Format OBJ ECT var_namelist

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 OBJ ECT variable is somewhat like a numeric, string, or
datetime local variableonly it stands for any item (also called an
object) in a workstation, network controller or Infinet controller. The
local OBJ ECT variable name can be up to 16 alphabetic and numeric
characters, as long as it begins with a letter of the alphabet.

Use OBJ ECT with OPENLIST, GETOBJ ECT, and CLOSELIST. See
these related keywords for extensive examples.

Example 1 You can use OBJ ECT to assign a local OBJ ECT 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.



Andover Plain English Language Reference 7-231

OBJECT, continued

Example 2 You can use OBJ ECT to assign local OBJ ECT 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
Keywords
CLOSELIST
GETOBJ ECT
OPENLIST

Products
Supported
BACnet Series, CMX series, CX series, i2 series controllers, and
CyberStation.

Modes
Available
Programs

Schneider Electric 7-232

OFF Constant

Format OFF

Purpose Used in expressions to indicate an item is OFF or set to bottom of
scale

Remarks OFF is always numeric, so it can be compared to input, output, and
numeric points or variables in a comparison expression.

Example 1 Program File
Turn the Lobby_Light Off

Example 2 Program File
If the Lobby_Light is Off then Turn Off the Heat

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-233

ON Constant

Format ON

Purpose Used in expressions to indicate an item is ON or set to top of scale.

Remarks ON is always numeric, so it can be compared to input, output, and
numeric points or variables in a comparison expression.

Example 1 Program File
Turn On the Lobby_Light

Example 2 Program File
If the Lobby_Light is On then Turn On the Heat

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Schneider Electric 7-234

-ON Constant

Format -ON

Purpose Used in expressions to indicate a tristate point is set to -ON.

Remarks -ON is always numeric, so it can be compared to input, output, and
numeric points or variables in a comparison expression.

Example Program File
If the Flow is greater than Setpoint then set the Damper to -On

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-235

OPEN Function (comm port)

Format OPEN (comm_port)

Purpose Allows you to direct information to or from a comm port, rather than
automatically sending information to the terminal screen or Message
Window. You can open a port to call on a modem or to receive a call.
Returns SUCCESS if the comm port opens without a problem.
Returns FAILURE if the comm port does not open. Once OPEN
executes, the controller automatically moves to the next labeled line.
You never need GOTO after OPEN.

Remarks The comm_port names the comm port, or path to a comm port, that
you wish to use. You may use OPEN as a function only on comm
ports.
Verify that the mode of the comm port you open is set to RAW mode.
OPEN must always be the last statement on a labeled line or on a
line by itself. The line immediately following the OPEN line must test
for SUCCESS or FAILURE; otherwise, the control system software
considers it an OPEN error.
After you complete communications on the comm port and you open
the comm port with OPEN, you must close the port with CLOSE.

Example You can open the connection to a comm port and check to see if it
was successful. Then, either read or write data to the port with a
CALL function you create:
Program File
Numeric Result
Line Opening
Result =Open (Comm1)
Line Sending
If Result =Success then
Read up to 80 characters into the point Rcv_String
Read (Comm1,80,Rcv_String)
Else
Print "Open Commport Failed" to Terminal1
Endif

Schneider Electric 7-236

OPEN, continued

Example
continued
The situation shown in this example, checks to be sure OPEN was
successful before performing Commport operations.

Related
Keywords
CLOSE
PRINT
READ

Products
Supported
CX series controllers.

Modes
Available
Programs


Andover Plain English Language Reference 7-237

OpenFile Function

Format OpenFile (file, mode, file_variable_name)

Purpose Opens a text file so that you can retrieve (read) text from it, put text
into (write to) it, or both read from it and write into it.

Remarks Replace a file with the name of any text file. If the file does not
already exist, the control system software creates it.
mode must be either ReadOnly, WriteOnly, or ReadWrite.
ReadOnly means you can only retrieve (read) text from the file, not
put (write) any text into it.
WriteOnly means you can only add (write) text into the file, not
retrieve (read) it.
ReadWrite means you can both retrieve (read) text from the file and
put (write) text into the file.
file_variable_name must be a control system software FILE variable
name you created earlier with FILE to correspond to a text file name.
Once you use FILE to create a FILE variable, you can use the name
to then open a text file with OpenFile.
OpenFile returns either SUCCESS or FAILURE.

Example 1 First you create a FILE variable name with FILE. You can then open a
text file under that name with OpenFile, as shown in this example.
Program File
File ZoneData
Numeric Chars, OK
String 80 Dataline
Line Opening
If OpenFile ("c:\text\zone.txt", WriteOnly, ZoneData) =Failure then
Print "File Open Failed"


Schneider Electric 7-238

OpenFile, continued

Example 1
continued
Goto Closing
Else
Goto Writing
Endif
Line Writing
.
.
Line Closing
If CloseFile (ZoneData) =Failure then Print "File Close Failed"
The control system software takes the text file name in the string
("c:\text\zone.txt") and assigns it to the ZoneData variable.

Notice that because OpenFile returns SUCCESS or FAILURE, you
can place it inside an IF..THEN statement.

After you open the file and take action on it, you must close the file
with CloseFile using the name you created with FILE.

Example 2 Once you have defined the array of FILE variables, you can open
multiple text files. The following example shows opening \zone1.txt,
\zone2.txt, and \zone3.txt in a FOR..NEXT loop. The loop uses the
index variable (FILENUM) when forming the string for the text file
name. If OpenFile fails for any of the files, the control system software
breaks out of the loop (using the BREAK keyword) and carries out the
rest of the statements in the line.

Both breaking out of the loop and successfully completing the loop
send the control system software to the next statement. If the result of
OpenFile is SUCCESS, then the control system software goes to the
READING line and does not execute any more statements under
OPENING. If the result is FAILURE, the control system software skips
the Goto Reading instruction and goes to the next statement, where it
prints a message, sets FILESOPEN to the number of files
successfully opened (so it knows how many to close), then goes to
the CLOSING line.



Andover Plain English Language Reference 7-239

OpenFile, continued

Example 2
continued
Program File
File ZoneData [3]
Numeric OK, FileNum, Index, FilesOpen
Line Opening
For FileNum =1 to 3
OK =OpenFile ("c:\zone";FileNum;".txt", WriteOnly, ZoneData[FileNum])
If OK =Failure Then Break
Next FileNum
If OK =Success then Goto Reading
Print "File Open Failed for ZoneData";FileNum
Set FilesOpen =FileNum 1
Goto Closing
Line Reading
Set FilesOpen to FileNum
.
.
Line Closing
For Index =1 to FilesOpen
Set OK to CloseFile (ZoneData[Index])
If OK =Failure then Print "File Close Failed for ZoneData";Index
Next Index
If OK =Success then Print "File Processing Completed Successfully"

Related
Keywords
CLOSEFILE FILE POSITIONFILE READFILE
WRITEFILE FAILURE SUCCESS

Products
Supported
CyberStation.

Modes
Available
Programs

Schneider Electric 7-240

OpenList Function

Format OpenList ( class, object_var, controller_or_site )

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 OBJ ECT variable you defined earlier
with the OBJ ECT statement. The variable cannot stand for an already
opened list.

Replace controller_or_site with a name or path to a particular
controller or workstation on the EnergyNet or Infinet or a local
OBJ ECT variable that stands for one. If you do not give a name or
path, the control system software assumes you mean the workstation
or controller to which you are connected. Or, if you give the Network,
Device or Folder class and no controller, the control system software
assumes you mean the root level.

Returns SUCCESS or FAILURE.



Andover Plain English Language Reference 7-241

OpenList, continued

The classes listed below are each spelled a particular way.
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
Remarks
continued

Device Graphics MultistateInput User

Controller refers to CX series controllers or BACnet series, whereas
InfinityInfinetCtlr refers to Infinet I and i2 series controllers. Be sure
that you do not inadvertently pluralize the class you name; for
instance Point" not Points and Group not Groups.
For a program in a controller, omit the Infinity prefix from the class
name.
Once you have set the controller or path within the OpenList
statement, the control system software stays on the list for that
controller or path until you give it another controller or path. Because
the control system software remembers the location of the list you last
opened, you can give the name of another controller or path under
the one you just opened while it is still open.
For example, once you open a CX or b4920 controller path, you can
then open an Infinet controller under it by using only the Infinet
controller name rather than the path to it. (See Example 5.)
To open a list of networks or alarms you can give the corresponding
class and not follow it with a path name. The control system software
assumes you want the list of objects from under the root of the current
workstation.

Schneider Electric 7-242

OpenList, continued

Example 1 After you have defined a local OBJ ECT variable called VAVPoint, you
can open the list of outputs with OpenList, as in the following
program.
Program File
Object VAVPoint
Numeric OK
Line OpenPoints
OK =OpenList ("InfinityOutput", VAVPoint, Floor1 Room2VAV)
If OK =Success then
Goto GetPoints
Else
Print "Cannot Open List"
Stop
Endif
Line GetPoints
If GetObject (VAVPoint) is not Success then Goto ClosePoints
If VAVPoint State is Disabled then Print VAVPoint Name
Line ClosePoints
OK =CloseList (VAVPoint)
If OK =Failure then Print "Cannot Close List"
Stop
Notice that the class (InfinityOutput) is in quotation marks.

Once the list is open, the program then gets each point on the Floor1
Room2VAV controller with GetObject (see GetObject keyword for
more detail). Notice that because the program is looping, you use the
STOP keyword to prevent it from repeating the actions on the
ClosePoints line.

Example 2 You can print a list of disabled programs on a controller and vary the
controller by using a local OBJ ECT variable to contain the controller
name. Once you have defined the OBJ ECT variable, you can use that
variable with OpenList.


Andover Plain English Language Reference 7-243

OpenList, continued

Example 2
continued
Program File
Object Prog, CXFloor
Numeric OK
Line OpenProg
Set CXFloor =Floor2
OK =OpenList ("InfinityProgram", Prog, CXFloor)
If OK =Success then
Goto GetProgs
Else
Print "Cannot Open List"
Stop
Endif
Line GetProgs
If GetObject (Prog) is not Success then Goto CloseProg
If Prog State is Disabled then Print Prog Name
Goto GetProgs
Ling CloseProg
OK =CloseList (Prog)
If OK =Failure then Print "Cannot Close List"
Stop
This fallthru program checks the state of each program it retrieves
from Floor2. 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.

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 OBJ ECT 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.



Schneider Electric 7-244

OpenList, continued

Example 3 You can open a list of the Infinet controllers on the CX controller. (In this
example, the program is looping.)
If the controller is running the program, you do not have to give the name of
the controller. If it is another controller, however, you must give the full path
to the controller.
Program File
Object infController
Numeric Count, OK
Line OpenController
OK =OpenList ("InfinityInfinetCtlr", InfController)
If OK =Success then
Goto GeTController
Else
Print "Cannot Open List"
Stop
Endif
Line GeTController
If GetObject (InfController) is not Success then Goto CloseController
If InfController CommStatus is OffLine then
Print InfController Name
Count =Count +1
Endif
Line CloseController
OK =CloseList (InfController)
If OK =Failure then Print "Cannot Close List"
Pr Count
Stop
Notice that the class name for an Infinet controller is InfinetCtlr, spelled
exactly that way. Use the "Infinity" prefix in the class name, as in
"InfinityInfinetCtlr", when you run the program at the workstation level. If a
program is to be run at the controller level, then do not use the prefix.
This program checks the CommStatus of each Infinet controller on the
EnergyNet controller. If the controller is off-line, the control system software
prints the controller name and adds 1 to the Count numeric variable. When
the control system software has finished checking all the controllers, you
have a list of the Infinet controllers that are off-line and a total of the number
of controllers that are off-line.


Andover Plain English Language Reference 7-245

OpenList, continued

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


Schneider Electric 7-246

OpenList, continued

Example 4
continued
IF Index <=2 then Goto OpenPoints Else Goto Done
Done:
Print "End of Input/Output Point List"
Stop
Once the program closes the first list, it adds 1 to the value of INDEX.
As long as the INDEX value is less than or equal to the number of
entries (2), the program goes to OpenPoints and opens the list of the
class of objects stored in the next entry of the IOPoints array.

You could have an array with more entries and call it CLASSGRP. By
changing the INDEX value, you can open lists of as many classes as
you need in the same program.

Example 5 You can retrieve the name of every disabled program on every Infinet
controller on every CX controller. You can do so by using a local
OBJ ECT variable for the controller called ENETCTLR, another for the
Infinet controller called INETCTLR, and another for the program
called CURRENTPROG.
The way the sample looping program works is similar to how nested
IFs work in a fall thru program. The arrows indicate the opening and
closing statements nested within the program on the next page.
The first OpenList statement opens the list of CX controllers, the next
list of Infinet controllers, and the last of the programs. (They do not
appear indented as nested IFs do.)
The CloseList statements appear in the opposite order. Once you
have retrieved all the programs, you close the program list; then you
close the Infinet controller list, and finally you close the CX controller
list.
Notice that the first OpenList statement does not give a path. That is
because this sample program is on a CX controller, and the current
controller is the path to other controllers.




OpenList, continued

Example 5
continued
If you want all controllers on all sites, you have to open the 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:
If OpenList("InfinityProgram", CurrentProg, InetCtlr) =Success then
Count =0
Goto CheckProg
Else
Print "Cannot Open Program List: ", EnetCtlr Name, InetCtlr Name
Goto GetInfinet
Endif

Andover Plain English Language Reference 7-247

OpenList, continued

Example 5
continued
CheckProg:
If GetObject (CurrentProg) is not Success then Goto CloseProg
If CurrentProg State is Disabled then
Print EnetCtlr Name, InetCtlr Name, CurrentProg Name
Count =Count +1
Endif
CloseProg:
If CloseList(CurrentProg) =Success then
Print "Total disabled progs in |* |* is |###", EnetCtlr Name,~
InetCtlr Name, Count
Else
Print "Cannot Close Program List"
Endif
Goto GetInfinet
CloseInfinet:
If CloseList(InetCtlr) is not Success then
Print "Cannot Close Infinet List: ", InetCtlr Name
Endif
Goto GetEnergyNet
CloseEnergyNet:
If CloseList(EnetCtlr) is not Success then
Print "Cannot Close EnergyNet List"
Endif
Stop
The following is an exact description of what the program does. A flow
chart for the program is shown on Figure 8-19. The control system
software opens the list of CX (Infinity) controllers on EnergyNet, and then
gets the first CX (EnetCtlr) controller.

If the GETOBJ ECT successfully retrieves the CX controller, the control
system software opens the list of Infinet controllers on that CX controller.
It then gets the first Infinet controller.



Schneider Electric 7-248
Andover Plain English Language Reference 7-249

OpenList, continued

Example 5
continued
If the GETOBJ ECT successfully retrieves the Infinet controller, the
control system software opens the list of programs on that controller
and then gets the first program.

If the first program is disabled, the control system software prints the
program name. Then, it adds 1 to the COUNT numeric variable to
start adding up how many programs are disabled.

The control system software then gets the next program on the Infinet
controller and sees if it is disabled. The process continues for all
programs on that Infinet controller.

When GETOBJ ECT cannot find another program, the control system
software proceeds to the CLOSEPROG line where it closes the list of
programs. Next, it goes to the GETINFINET line to get the next Infinet
controller. Once it has the next Infinet controller, the control system
software goes to the OPENPROG line and tests the state of each of
those programs. This process continues for all Infinet controllers.

When GETOBJ ECT cannot find another Infinet controller, it goes to
the CLOSEINFINET line where it closes the Infinet list. Then, it goes
to the GETENERGYNET line to get the next CX controller.

Once it has the next CX controller on EnergyNet, the control system
software goes to the OPENINFINET line and gets the first Infinet
controller on that CX controller. Then, the same process occurs for
each program as with the last Infinet controller.

The same process occurs for every Infinet controller that occurred for
each on the last CX controller.

Finally, when GETOBJ ECT cannot get another CX controller, the
control system software proceeds to CLOSEENERGYNET, where it
closes the list and stops the program.





OpenList, continued

Example 5
continued

Open
EnergyNetList
























Close Infinet
List
Open Infinet
List
Close
EnergyNet
Close
Program List
Open
Program List
STOP
Get
Another
Program ?
Process
Program
Get
EnergyNet
Controller ?
Get
Infinet
Controller ?
Yes
Yes
No
No
No
Yes

Figure 7-19. OpenList (Example 5) Program Flow Chart

Schneider Electric 7-250
Andover Plain English Language Reference 7-251

OpenList, continued

Example 6 You can retrieve a list of sites under the root by giving the Site class
an OBJ ECT 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
Keywords
GetObject
Object
CloseList

Products
Supported
Format 1: BACnet series (except b3885, b3887), CMX series, CX
series, i2 series controllers (except i2885, i2887), and Cyberstation

Format 2: CyberStation.

Modes
Available
Programs


Schneider Electric 7-252

OR Operator

Format Format 1: number OR number

Format 2: namelist OR final_name

Purpose Format 1: Provides the logical OR between two expressions.

Format 2: When used in a list of names between the last two items,
indicates the end of the series.

Remarks Replace number with any number, name that stands for a number,
formula or function that gives a number.
Replace namelist with one or more names with commas between
them.
Replace final_name with a single name at the end of a series of
names.
OR with the last name is optional.
The controller carries out all other operations (such as adding and
subtracting) before it acts on OR (or AND).
In Chapter 6 under "Order of Action" the listing compares the order
the system software acts on all operators. Because OR (and AND)
are acted on last, you can form logical statements without using too
many parentheses. See Example 4 for how to use AND and OR
together.
The exclamation mark (!) is the alias for the logical OR only.

Example 1 To take an action only if one of several conditions exists, you use OR
between the numbers. If one of them is true, the resulting action
occurs:
Program File
If the Heat is On or the Cool is On then
Notice that in the above statement, you could substitute exclamation
mark (!) for OR.


Andover Plain English Language Reference 7-253

OR, continued

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


Schneider Electric 7-254

OR, continued

Related
Keywords
AND
IF..THEN..ELSE
IS

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-255

P Statement

Format P list

Purpose Prints the values of one or more variables, points, constants, or other
expressions representing a value (including strings of characters and
datetimes) each on a separate line. The list can contain different
types of items. Prints units with point values.

Remarks The list is one or more expressions with commas between them.
Each expression can be a number or text as defined under Format
Conventions at the beginning of this chapter. The list can also
include functions or attributes.

Prints the values to the screen on which you are currently working.
For points, system variables, and attributes, prints the name of the
point (or variable or attribute), followed by an equal sign, the value of
the point, and the units. Otherwise, only the value prints.

Also, can print to comm ports and string objects (including program
string variables).

This keyword is most useful in the command window. However, you
may use it in a program.

Example 1 Command Line
P SupplyAir, ReturnAir, BurnerStat, CoilStatus
SupplyAir =46 degrees F
ReturnAir =68 degrees F
BurnerStat =ON
CoilStatus =OFF
Notice that the name of the point and the units print for each point.




Schneider Electric 7-256

P, continued

Example 2 Command Line
P OutsideAir, AVG (Temp), AvgSetPt, OutsideAir Type, Tod
OutsideAir =46 degrees F
86
AvgSetPt =64
OutsideAir TYPE =Input
TimeOfDay =8 : 32 am

Alias PR

Products
Supported
CMX series, CX series, BACnet series controllers, i2 series
controllers, and CyberStation.

Modes
Available
Command lines and programs.



Andover Plain English Language Reference 7- 257

PASSED Function

Format PASSED (arg_number)

Purpose Indicates whether or not the argument with the arg_number has
been passed into the current function. Returns TRUE (numeric 1) if
the argument is passed and FALSE (numeric 0) if it is not.

Remarks Uses the arguments ARG[1] to ARG[15].

Example You can create a function that takes an argument and checks to see
if the argument is passed. The function below returns the number of
the argument that has the highest value. It returns when it finds the
first argument that is not passed. The function called MAXITEM,
predefined in the language and described earlier in this chapter, is as
follows:
Program File
Numeric Count, LastMax
LastMax =1
For Count =1 to 15
If not (passed(Count)) then Return (LastMax)
If Arg[Count] >LastMax then LastMax =Count
Next Count

Related
Keywords
ARG

Products
Supported
ACX series, BACnet series, CX series, DCX 250, i2 series, LCX
series, SCX series, TCX series controllers, and CyberStation.

Modes
Available
Programs

7- 258 Schneider Electric

PlayAudio Statement

Format Format 1: PlayAudio file

Format 2: PlayAudio file, playback_mode

Purpose Plays a prerecorded audio sample on the CyberStation.

Format 1: Plays a prerecorded audio sample on the CyberStation
one time only.

Format 2: Plays a prerecorded audio sample on the CyberStation
either once or continuously, depending on the playback_mode you
indicate.

Remarks The PlayAudio keyword is available only on the CyberStation.

Replace file with the name and path of any * .wav prerecorded audio
sample. The file name and path must be in quotation marks.

Replace playback_mode with either PlayOnce or PlayContinuous.

PlayOnce plays the prerecorded audio sample one time only. The
PlayAudio keyword defaults to this value, so the audio sample plays
only once if you omit playback_mode altogether.

PlayContinuous plays the prerecorded audio sample continuously
until you click on the Silence menu in the Active Alarms window.


Example You may want to play a prerecorded audio sample from the command
line on the CyberStation. To play the audio sample in the buzzer.wav
file one time only, use PlayAudio as follows:
Command Line
PlayAudio "buzzer.wav"

Andover Plain English Language Reference 7- 259

PlayAudio, continued

Products
Supported
Cyberstation

Modes
Available
Command lines and programs.





7- 260 Schneider Electric

PLUS Operator

Format number PLUS number

Purpose Adds two expressions.

Remarks The number is any number or expression.

Example 1 Program File
TotalKwh =KwhMonth plus KwhDay

Example 2 Program File
TotalKwh =KwhMonth + KwhDay

Alias +

Products
Supported
ACX series, BACnet series, CX series, DCX 250, i2 series, LCX
series, SCX series, TCX series controllers, and CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7- 261

PositionFile Function

Format PositionFile (file_variable_name, offset, starting_position)

Purpose Tells READFILE or WRITEFILE where to begin reading or writing in a
text file.

Remarks After you open the file with OpenFile, a new read or write process
(READFILE or WRITEFILE) automatically starts at the top of the file
(FILEBEGIN) without using PositionFile to set it.
If you have been reading a file, the next read automatically begins
where you last finished reading, unless you set a new starting
position with PositionFile. The same applies for writing.
Returns SUCCESS or FAILURE.
file_variable_name must be a control system software FILE variable
name you created earlier with FILE to correspond to an file name.
Replace offset with the direction and number of characters from the
starting_position to start reading/writing in the file. You may indicate
to move forward with a plus sign (+) or backward with a minus sign
().
Starting_position tells where to begin reading or writing in the file.
Must be one of the following:
FILEBEGIN
FILECURRENT (where you left off last read or write)
FILEEND.

Example 1 After you define a local FILE variable name and open the file (with
OpenFile), you can start either reading (with ReadFile) or
writing (with WriteFile) at a particular position in the file. Use
PositionFile to set the starting position.
Suppose you want to read data from a file that lists controllers that
had a temperature more than 2 degrees from setpoint for more than 2
minutes in the last 24 hours. The file contains three records and looks
like this:


7- 262 Schneider Electric

PositionFile, continued

Example 1
continued
Text File
10:12 Building2 Room8
11:26 Building1 Room6
12:35 Building2 Room3
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 can have PositionFile set the starting position from FileBegin;
however, since ReadFile starts at the beginning anyway, it is more
effective to have PositionFile set the starting position from
FileCurrent. The starting position should be set from FileCurrent so
that when the control system software loops, it always moves to the
beginning of the next record as opposed 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"
Goto Closing
Endif

PositionFile sets up
ReadFile to begin
reading here, at
character eight.
Andover Plain English Language Reference 7- 263

PositionFile, continued

Example 1
continued
OK = ReadFile (ZoneData, DataLine, 16, Chars)
If OK =Failure then
Print "File Read Failed"
Goto Closing
Endif
If OK =Success then
Print DataLine to StatusLine
Else
Goto Closing
Endif
Line Closing
If CloseFile (ZoneData) =Failure then
Print "File Close Failed"
Stop
Endif

Example 2 To set the position to begin writing to the end of the file, use
PositionFile with an offset of 0, as follows:
Program File
PositionFile (ZoneData, 0, FileEnd)

Example 3 After writing to somewhere within the file, you can reset the position to
start writing at the beginning of the file, by using PositionFile with
FILEBEGIN, as follows:
Program File
PositionFile (ZoneData, 0, FileBegin)



7- 264 Schneider Electric

PositionFile, continued

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
Keywords
CloseFile
FILE
OpenFile
ReadFile
WriteFile
FAILURE
SUCCESS

Products
Supported
CyberStation.

Modes
Available
Programs

Andover Plain English Language Reference 7- 265

PowerFail System variable

Format POWERFAIL

Purpose Indicates whether or not the AC power has failed. For CX series
controllers it will equal ON if power has failed and OFF if power is
available. For all other controllers it is set equal to ON for one scan
when power returns. All CX series controllers, that have configured
with UPS, can continue to run on battery backup while power is down.
The only Infinet controller that can run on battery backup is the 780.

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 and then sets to OFF.

Example You can test to see if AC power is down and then turn off a
programmable system variable as follows:
Program File
If PowerFail is on then Set ModemPower to Off

Related
Keywords
PowerUpTime
CPUPower
ModemPower

Products
Supported
ACX series, BACnet series, CX series, DCX 250, i2 series, LCX
series, SCX series, TCX series controllers, and CyberStation.

Modles
Available
Command lines and programs.

7- 266 Schneider Electric

PowerUpTime System variable

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
Keywords
POWERFAIL

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7- 267

PRINT Statement

Format Format 1: PRINT string

Format 2: PRINT list

Format 3: PRINT string_format, list

Format 4: Any of formats 1 through 3 above TO commport

Format 5: Any of formats 1 through 3 above ; TO commport

Format 6: Any of formats 1 through 3 above TO
string_point_or_variable

Format 7: Any of formats 1 through 3 above TO file_variable

Purpose Prints a series of characters (text strings, often called simply strings)
to the message window, the status line, a string object or attribute, a
local variable, a printer, a communications port, or a text file.

You may also print into a string point or local variable to fill it with a
string of text or numbers. In addition, on the CyberStation, you can
print into an ASCII file.

Format 1: Prints a string of text to the default comm port of the
program or report.

Format 2: Prints the values of one or more variables, points,
constants, or other expressions representing a value. The list can
contain different types of items.

Format 3: Prints the variables, points, or other expressions in the list
in the format you specify.

Format 4: Prints any of formats 1 through 3 above from a controller to
a command terminal or printer you specify (excluding printer queues).
Note: For a controller to print to a modem, you must first use OPEN
to open the port (see OPEN keyword).


7- 268 Schneider Electric

PRINT, continued

Purpose
continued
Format 5: Prints any of formats 1 through 3 above, printing the next
PRINT statement on the same line because semicolon means stay
on the same line.

Format 6: Prints any value or string, including messages, points, or
variables, into a string point or variable (including MessageWindow
and StatusLine system variables) to set the value of that string.

Format 7: Prints any value or string, including messages, points, or
variables, into an ASCII file associated with a local FILE variable. You
must open the file for writing with the OpenFile keyword. Each time it
prints into the file, PRINT prints on a new physical line, unless you
use the semicolon at the end of the print statement.

Remarks Replace string with a series of characters in quotation marks.

Replace string_format with a known character or string of characters
combined with changeable characters to form one print line. The
parts are joined by a vertical bar (|). Most of the changeable
characters are represented with pound signs (###), each holding a
place for one character. A comma follows the string.

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.


Andover Plain English Language Reference 7- 269

PRINT, continued

Remarks
continued
Replace string_point_or_variable with any defined string point or
string variable.
Replace file_variable with the name of a local FILE variable. You
must open the file for writing with the OpenFile keyword. Each time
you use PRINT, it prints to a new line in the file, unless you use a
semicolon.

You may choose the layout of the print line and indicate it using the
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.
Formatting
Characters
The format must be enclosed in quotation marks. The comma is
required after the format (outside the quotation marks) if an item to
insert in the format follows (see Example 3).

7- 270 Schneider Electric

PRINT, continued

The following examples illustrate the various PRINT formats:

No. Program File Output /Explanation
1 Print "WARNING-Trouble on the 4th Floor!"
WARNING-Trouble on the
4th Floor! /The string of
characters prints; the quotation
marks do not.

2 Print TEMP1, TEMP2, TEMP3, TEMP4
67 72 77 75 / The value
of each variable in the list
prints, with a space after it.

3
Print "The temperature is ###.#at ##:##:##",~
Temp4, Hour, Minute, Second
The temperature is 75.0
at 4:32:05 / The string
prints with the value of the first
point (or variable) in the first
format and the value of the
next point or variable in the
next format. If there are more
than two formats, the
subsequent point or variable
values are printed in the
corresponding formats in
order.

4 Print "#######", Total_Watts
1340 / Leaves 3 leading
spaces before the value of
Total_Watts. The value prints
on the terminal called
TERMINAL.

5
Print WeekDay;
Print " ";
Print Month;
Print " ";
Print DayOfMonth
Tuesday January 2
/ Prints all text and spaces on
the same line because each
PRINT statement ends with a
semicolon (;).

6 Print "HEAT.SETPT" to PointName
/ Prints the value into the
string and changes its setting.
You can set a string point or
variable this way.
Examples 1-21





Andover Plain English Language Reference 7- 271

PRINT, 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.
8 Print "#,###.##}", Total_Watts
1,340 / Drops extra decimal
places (trailing zeros).
9 Print "The Fan Status is $###, FanStatus
The Fan Status is ON
/ Prints ON, -ON, or OFF for a
digital or tristate point, left-
justifying On in the format.
10 Print "The Damper Setting is ##.##", Damper
The Damper Setting is
20.00 / Prints the pulsing
value of the damper in the
format. Here the damper is ON
for 20 seconds. For -ON, the
value is negative.
11 Print "*", Murphy FullName
Murphy Johnson /
Outputs any number of
characters of any type that are
in the FullName attribute. The *
is particularly useful when you
do not want to limit the number
of characters in a variable.
12
Print "@@@@@@@@@@@@@@",~
STRMSG to Building1 Console
Heater Failed! / The
message inside STRMSG prints
left justified in the 14 characters
allowed by the @ signs.
13 Print ">#######.##}", 21.70
21.7 / Right justifies
and drops the trailing 0.
Examples 1-21
continued
14 Print "-##.##", 88.8
+88.8 / Prints leading minus
sign if the number is negative
and the leading plus sign if the
number is positive. Prints all
trailing zeros.


7- 272 Schneider Electric

PRINT, 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.
16 Print "###^##is the "TOTAL."", 97000
8,97e03+05 is the
"Total." / Prints the
number in scientific
notation. Also prints the
quotation marks around
VALUE, because a vertical
bar is before each
quotation mark that should
print.
17 Print "###^##"", .8970
8,97e-01 / Prints in
scientific notation with
negative exponent.
18 Print "-##.##^##"", 1340000
+1.340e+06 / Prints in
scientific notation with a
leading plus sign for a
positive number.
19
Print "The blower's current state is @@@@@@@@.",~
Blower State
The blower's current
state is ENABLED.
/ Prints the text string left
justified in the format and
leaves a blank for the
unfilled character at the
end.
Examples 1-21
continued
20 Print "The value is set to %###open.",~Water_Valve
The Valve is set to
45% 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%.




Andover Plain English Language Reference 7- 273

PRINT, continued

No. Program File Output /Explanation
Examples 1- 21
continued
21
Print "Date:", Month, ",~
DayOfMonth, ", ", Year
Print " "
Print "Test Report"
Date: December 4, 2005
Test Report / Prints the 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



7- 274 Schneider Electric

PRINT, continued

Example 22
continued
ClosingFile:
OK =CloseFile (NewData)
If OK =Failure then Print "Cannot close text File"
Ending:
Stop
In this example, the local FILE variable called NewData represents an ASCII
file. After the OpenFile keyword opens the ASCII file, PRINT can refer to the
file by the local FILE variable name and put data into it. In this case, the
local FILE variable is NewData, so PRINT prints the KWH usage and cost
into the ASCII file.
OutPutTo 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
Since PRINT is inside a FOR..NEXT loop that counts to 10, it prints
10 KWH usage totals and their costs into the file. Each time it prints,
PRINT starts a new physical line in the ASCII file.

To print to a shared network printer, use the following:
If Openfile("\\ServerName\SharedPrinterName", WriteOnly, NewData) then...

Andover Plain English Language Reference 7- 275

PRINT, continued

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 "J anuary: |####>|####.##> ", KWUsage, Cost; To NewData
Print "February: |####>|####.##> ", KWUsage, Cost To NewData
The resulting output appears as follows:
OutPutTo the File
J anuary: 4567 548.04 February: 589 70.68

Related
Keywords
CHR
P
TAB
FILE
OpenFile

Products
Supported
BACnet series* (except b3885, b3887), B4920, CMX series, CX
series, i2 series* (except i2885, i2887), DCX 250 controllers, and
Cyberstation.

Format 7 only available on the CyberStation

* Due to the lack of an available Comm port, BACnet and i2 series
controllers support printing only to string variables. However, the
i2/b3885 and i2/b3887 models of these controllers do not support the
PRINT statement at all.

Modes
Available
Command lines and programs.

7- 276 Schneider Electric

RANDOM Function

Format RANDOM (number)

Purpose Returns a random number from 0 to 32,767 using number. Used to
simulate real-life values to test programs.

Remarks The number is any number or expression.
You may omit number, but the parentheses are required, as with all
functions.
Note: You must vary the number to generate different random
sequences. If you do not vary the number, you may see a repetitious
pattern of values emerging over time.

Example To simulate fluctuations of temperature between 50 and 70 degrees,
you put any number in the number. To generate a result in the range
of 20 possible temperatures, you divide the random number you
generate by 32767, which gives you a number between 0 and 1.
Then multiply the result by 20.
Finally, you add 50 degrees to the bottom of the range you are trying
to simulate to the random number:
Program File
Temp =(Random (8) /32767 Times 20) +50

Alias RND

Products
Supported
BACnet series (except b3885, b3887), CMX series, CX series, i2
series (except i2885, i2887), DCX250 controllers, and Cyberstation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7- 277

READ Function (comm port)

Format READ(comm_port, number_chars, string_point, timeout,
end_char)

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
from which you want to read information.
Replace number_chars with the number of characters you expect
the function to read from the port. Any number or expression that
gives a number, up to 132.
Replace string_point with a string point that can contain the number
of characters the function is reading. This string is where the
characters read are stored. It can be up to 132 characters.
Note: string_point must be a string point (external to the program),
and not a string variable (local to the program).
Replace timeout (optional) with the length of time, in increments of 10
ms, if you want the controller to continue trying to read when it
detects no characters. If the controller does not read any characters
before the timeout period is over, it stops trying and goes to the next
line. If you do not set a timeout period, it is automatically 10 minutes.
Setting timeout to zero forces the controller to wait indefinitely or until
it reads characters. (See also the TIMEDOUT attribute in Appendix
B.)


Schneider Electric 7-278

READ (comm port), continued

Remarks
continued
Replace end_char (optional) with a single character that indicates the
end of the text being read. Indicated by an ASCII code (inside
quotation marks to make it a string), string point, or local string
variable. If you give more than one character, the control system
software uses only the first character.
Note: The control system software stops reading when either it has
read the number of characters in number_chars, the amount of time
in timeout has elapsed, or it has read the end_char. You can give all
three pieces of information and whichever occurs first ends the
reading process. For instance, if READ reads the end character
before it reads the number of characters, it stops based on the end
character.



Example 1 You can read input from a modem on Comm3 into a string called
ModemData as follows (you must also close the port afterwards):
Program File
Opening:
OpenResult =Open(Comm3)
Testing:
If OpenResult =Success then
Goto Reading
Else
Goto Failing
Endif
Reading:
Result =Read(Comm3, 132, ModemData, 100)
Printing:
If Comm3 TimedOut then Goto Closing
If Result =Success then
Print ModemData to InputFile
Else
Goto Closing
Endif
The timeout of 100 is 100 increments of 10 ms each, for a total of
1000 ms or 1 second.
Andover Plain English Language Reference 7- 279


READ (comm port), continued

Example 2 You can give a carriage return as the character that indicates the end
of the text to be read in a READ statement. Specify the carriage
return using the ASCII code for it, "|13". You must place the ASCII
code inside quotation marks to make it a string. (See "Formatting
Characters" under the PRINT keyword for a discussion of
thesymbol.)
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
Keywords
CLOSE
OPEN

Products
Supported
CMX and CX series controllers.

Modes
Available
Programs
Schneider Electric 7-280

ReadFile Function

Format ReadFile (file_variable_name, string_variable_or_point,
chars_to_read, numeric_variable_or_point, end_character)

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.
file_variable_name must be a control system software name you
created earlier with FILE to correspond to a file name.
Replace string_variable_or_point with either a local string variable
or a string point to store the text the control system software reads
from the file.
Replace chars_to_read with the number of characters to read into
the string variable or point. May be any number or expression that
gives a number up to 255.
Replace numeric_variable_or_point with a numeric variable or
numeric point to store the number of actual characters ReadFile has
read once the reading is complete.
Replace end_character (optional) with a single character that
indicates the end of the text being read (not the end of file). ReadFile
reads up to, but not including, this character. Can be indicated by an
ASCII code (inside quotation marks to make it a string), string in
quotation marks, string point, or local string variable. If you give more
than one character, the control system software uses only the first
character.
For example, you might have a file with lines of data that each end in
a carriage return. To read up to the carriage return, give the ASCII
code for a carriage return in quotation marks ("|13") as the end
character in the ReadFile statement. (See "Formatting Characters"
under the PRINT keyword for a discussion of thesymbol.)


Andover Plain English Language Reference 7- 281

ReadFile, continued

Remarks
continued
In another case, you might have a comma between pieces of data
and then you can give the comma (in quotation marks) as the
end_character (see Example 3).

Once you use FILE to define a FILE variable and you open a file with
OpenFile, you can then read the text file with ReadFile.

If ReadFile is successful, it returns the number of characters it has
read (in the numeric variable or numeric point you designate). If it is
not successful, it returns FAILURE. If it has reached the end of the
file, it returns EOF.

Example 1 In this example, you first create a FILE variable called ZoneData with
FILE and then open a file under ZoneData with OpenFile. Then, read
from that text file with ReadFile.

Here, ReadFile reads the file opened under ZoneData and stores the
text it reads in DataLine. It reads 80 characters and stores them in the
DataLine string. After READING the file, the program prints the text
from DataLine to the screen.

ReadFile also stores the actual number of characters read in the local
numeric variable Chars.
Program File
File ZoneData
String 80 DataLine
Numeric Chars, OK
Line Opening
Set OK =OpenFile ("c:\text\zone.txt", ReadOnly, ZoneData)
If OK =Failure then
Print "File Open Failed"
Stop
Else
Goto Reading
Endif



ReadFile, continued

Example 1
continued
Line Reading
OK =ReadFile (ZoneData, DataLine, 80, 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
Goto Reading
Line Closing
OK =CloseFile (ZoneData)
Stop
Notice that if ReadFile returns Failure, the control system software
goes to the Closing line. If it returns Success, the control system
software goes to the Printing line; if it returns EOF, the control system
software goes to the Closing line.
You must close the file in all the situations where you have
successfully opened the file.

Example 2 In this example, you first create a FILE variable called ZoneData with
FILE and you open a file under ZoneData with OpenFile. You then
read from that text file with ReadFile.
Here, ReadFile reads the file opened under ZoneData and stores the
text it reads in DataLine.
ReadFile reads until it reaches the carriage return in the file
(designated by the ASCII code |13 with quotation marks around it). It
then stores the actual number of characters retrieved in the local
numeric variable Chars. You still must give a number of characters to
read. (See "Formatting Characters" under the PRINT keyword for a
discussion of thesymbol.)
This program functions similar to the last example.
Schneider Electric 7-282 r Electric 7-282


The control system
software executes this
statement when
ReadFile returns EOF.
Andover Plain English Language Reference 7- 283

ReadFile, continued

Example 2
continued
Program File
File ZoneData
String 80 DataLine
Numeric Chars, OK
Line Opening
Set OK =OpenFile ("c:\text\zone.txt", ReadOnly, ZoneData)
If OK =Failure then
Print "File Open Failed"
Stop
Else
Goto Reading
Endif
Line Reading
OK =ReadFile (ZoneData, DataLine, 80, Chars, "|13")
If OK =Failure then
Print "File Read Failed"
Goto Closing
Endif
If OK =Success then Goto Printing Else Goto Closing
Line Printing
Print DataLine
Goto Reading
Line Closing
OK =CloseFile (ZoneData)
Stop

Example 3 This example first creates a FILE variable named ZoneData with FILE
and opens a file under ZoneData with OpenFile. Then it reads from
that text file with ReadFile.
Here, ReadFile reads the file opened under ZoneData and stores the
text it reads in DataLine.
The file to read contains data separated by commas, as follows;
Floor1, Room1, 75, 72, Floor1, Room2, 74, 72, Floor1, Room3,

Schneider Electric 7-284

ReadFile, continued

Example 3
continues
It reads until it reaches the comma (you designate the comma with
quotation marks around it). The program then stores the actual
number of characters retrieved in the local numeric variable Chars.
Even though you give an ending character, you must still give a
number of characters to read, in this case, 16.
Program File
File ZoneData
String 16 DataLine
Numeric Chars, OK
Line Opening
Set OK =OpenFile ("c:\text\zone.txt", ReadOnly, ZoneData)
If OK =Failure then
Print "File Open Failed"
Stop
Else
Goto Reading
Endif
Line Reading
OK =ReadFile (ZoneData, DataLine, 16, Chars, ",")
If OK =Failure then
Print "File Read Failed"
Goto Closing
Endif
If OK =Success then Goto Printing Else Goto Closing
Line Printing
Print DataLine
OK =PositionFile (ZoneData, 2, FileCurrent)
If OK =Failure then
Print "Positioning for Read Failed"
Goto Closing
Endif
Goto Reading
Line Closing
OK =CloseFile (ZoneData)
Stop

Andover Plain English Language Reference 7- 285

ReadFile, continued

Example 3
continued
This program functions similar to the way the last example did;
however, after each time the program reads the file and goes to the
Printing line, it sets the file to start reading two characters past where
it stopped. The two characters are the comma and the space after the
comma.

For more on how to set where to begin reading, see the PositionFile
keyword.

Related
Keywords
FILE
CloseFile
OpenFile
PositionFile
WriteFile

Products
Supported
CyberStation

Modes
Available
Programs


Schneider Electric 7-286

ReadProperty Function

Format ReadProperty (Object_Property, Index)

Purpose To get (return) the property of a BACnet object.

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 1 Use ReadProperty to get the value of an Analog Value point.
Print ReadProperty(Net1\B4\AV1 Value)

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)

Related
Keywords
WriteProperty, Relinquish

Products
Supported
BACnet series controllers and CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7- 287

ReaderPower System variable

Format ReaderPower

Purpose Indicates whether or not any access card reader on an ACX series
controller has lost power.

Remarks Applies only to ACX series controllers.

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.

ReaderPower is TRUE if a card reader on the controller has lost
power, FALSE if not.

Example 1 To see if any card reader on an ACX series controller has lost power,
first connect to the controller, then print the ReaderPower system
variable from the command line as follows:
Command Line
Pr ReaderPower
The control system responds as follows if the reader has lost power:
True

Example 2 If you want to take a particular action for every time a card reader on
an ACX series controller loses power, then you would use
ReaderPower in a program as follows:
Command Line
If LobbyController ReaderPower is True then Run LobbyEmergency

Schneider Electric 7-288

ReaderPower, continued

Products
Supported
ACX series and CX9702 controllers.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7- 289

Relinquish Function

Format Relinquish(Object_Property, Priority)

Purpose To relinquish a command issued at an earlier time.
Returns SUCCESS or FAILURE.

Remarks A relinquish operation is similar to a WriteProperty operation (see
WriteProperty keyword) with the exception that it places a NULL
value in the Priority_Array that corresponds to the appropriate
priority. When that occurs, the next lower priority, non-NULL position
takes control of the property. If all the priority table array elements
are NULL, the commandable property (refer to Chapter 14 in the
Continuum CyberStation Configurators Guide Version 1.6, 30-3001-
781) assumes the one defined in the Relinquish_Default property of
the object.
Object_Property is an optional argument specifying the
commandable property you want to relinquish command priority over.
Object_Property is replaced 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. Property is
expected to be the BACnet commandable property (When referring
to the Present_Value property of a BACnet object, the word Value
not Present_Value is used in Plain English).
If no Object_Property is included, it is assumed to be Present_Value

Note: For Andover Continuum systems, Present_Value is the only
commandable property for the following classes:

Analog Output Multi-State Output Analog Value
Binary Output Multi-State Value Binary Value
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.


Relinquish, continued

Use Relinquish to relinquish the last command issued with priority 5
Relinquish(NET1\B4\AV, 5)
Example
This statement places a NULL in the 5th entry.

Related
Keyworks
WriteProperty
ReadProperty

Products
Supported
BACnet series controllers and CyberStation

Modes
Available
Command lines and programs.

Schneider Electric 7-290

REPEAT..UNTIL Statement

Format REPEAT
statement
statement

UNTIL number

Purpose Carries out the statements in the loop until the number is true.

Replace statement with any complete instruction that tells the
program what to do next or what action to take.
Remarks
Replace number with any number or expression, including a date
and time or name that stand for one.
The statements within the loop always execute at least once before
the expression is evaluated.



!
CAUTION
The scan action limits the number of statements that can execute
on one line to 5000. Be careful of exceeding the limit when using
REPEAT..UNTIL

Example If you want to print all the values in an array, you could do the following:
Program File
Numeric Count
Count =1
Repeat
Print OutsideAir[Count]
Count =Count +1
Until Count =OutsideAir Size

Related
Keyworks
Break
Continue

Products
Supported
ACX series, BACnet series, CX series, DCX 250, i2 series, LCX
series, SCX series, TCX series controllers, and CyberStation.

Modes
Available
Programs
Andover Plain English Language Reference 7- 291
Schneider Electric 7-292

RETURN Statement

Format Format 1: RETURN
Format 2: RETURN number
Format 3: RETURN variable

Purpose Format 1: In a function file, returns 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, create a function by setting up a function file and putting the
calculation instructions in it. When you need the function in a
program, call the function by using the file name as if it were any
other keyword.
Later, the RETURN statement tells the function the value to return to
the calling program.
Make sure to return a number or other value when you want to use
the returned value in the calling program or command line.

Example 1 You can use RETURN without an expression to return to the calling
program without passing parameters. You might do that with a
function that contains a series of actions to be carried out, as in the
SHUTDOWN function shown below:
Function File
Turn Off the Heat
Turn Off the Fan
Run Pump, Cooling
Return
In this case, RETURN returns you to the program that called the
SHUTDOWN function; it also returns a numeric 0 because you
supplied no arguments on the RETURN statement.

Andover Plain English Language Reference 7- 293

RETURN, continued

Example 1
continued
The statement that calls SHUTDOWN in the calling program looks
like this:
Program File
ShutDown( )

Example 2 To create a function called GetArea that calculates the cross-
sectional area of a circle, name the function file GetArea and enter
the following in the function file:
Function File
Arg[1] Radius
Return (3.14159 * (Radius^2))
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 GetArea 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
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Programs

Schneider Electric 7-294

RIGHT Function

Format RIGHT (string, integer)

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.

Example Program File
RGTVAL =Right("ABCDE", 3)
This statement returns "CDE".

Alias LAST

Products
Supported
BACnet series, CMX series, CX series, DCX 250, i2 series controllers
(except i2885, i2887, i3885, i3887), and Cyberstation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7- 295

ROTATE Statement

Format Format 1: ROTATE linename program_list

Format 2: ROTATE program_list TO line

Purpose Executes the program or programs you specify in the program_list,
beginning at the line named by line. You may use format 1, giving
the line name first, or format 2, giving the program names first.

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.

Note: You cannot rotate a program to line 0.
Line 0 is reserved to mean stop the program. LINE E is reserved for
handling errors.

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 can put the following into a MondayStartup program:
Program File
If Wkd =Monday then
Rotate 1 Blower, Pump, Heating
Rotate Lights to Beginning
Endif

Schneider Electric 7-296

ROTATE, continued

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
Keywords
LINE
RUN
STOP

Alias ROT

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.


ROUND Function

Format ROUND (number)

Purpose Rounds number to the nearest integer and returns that value.

The number is any number or expression.

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.








Figure 8-20. Number line showing ROUND (-1.7)


The following table illustrates how the four functions differ:

Functions 4.2 4.5 -3.1 -3.7
ROUND
4 5 -3 -4
CEILING
5 5 -3 -3
FLOOR
4 4 -4 -4
TRUNCATE
4 4 -3 -3
Remarks

0 1 2 3 -4 -3 -2 -1 4
Position of 1.7 on the number l ine
Position of
ROUND(1.7)

Andover Plain English Language Reference 7- 297
Schneider Electric 7-298

ROUND, continued

Example 1 Program File
TMPVAR =Round (-42.7)
This statement returns -43.

Example 2 Program File
RNDVAL =Round (4.3)
This statement returns 4.

Products
Supported
BACnet series, CMX series, CX series, DCX 250, i2 series controllers
(except i2885, i2887, i3885, i3887), and Cyberstation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7- 299

RUN Statement

Format
Format 1: RUN file_list
Format 2: RUN point_list
Format 3: RUN local_variable_list
Format 4: any of format 1 thru 3 TO MESSAGEWINDOW
Format 5: any of format 1 thru 3 TO STATUSLINE
Format 6: any of format 1 thru 4 TO printer
Format 7: any of format 1 thru 4 TO file
Format 8: any of format 1 thru 4 TO file WITH APPEND

Purpose Format 1: Begins executing the program, or function you specify at
the first line, even if it is already running. This statement controls the
control system software in a command line or a program.
NOTE: Programs must be set to run on ANY workstation for files to
run properly in CyberStation.

Format 2: Sets the output or numeric point (or points) you specify to
the top of the scale defined for it (or ON). You can use this statement
in a program to start up a piece of equipment, or at the command line
to directly turn on a piece of equipment. Usually used with output
points.
Format 3: Sets a local variable inside a program to ON. Only use this
statement inside a program.
Format 4: When running a program, function, or report, displays the
results of all PRINT statements in the Message window of the
workstation.
Format 5: When running a program, function, or report, displays the
results of all PRINT statements in the Status Line of the workstation,
one statement at a time.
Format 6: When running a program, function, or report, sends the
results of all PRINT statements to a printer rather than displaying
them on the default port for that file.
Format 7: When running a program, function, or report, prints the
results of all PRINT statements into an ASCII file (you can give a full
path name if you would like). If the file already contains text, the
statement writes over (like taping over) the old text.
Schneider Electric 7-300

RUN, continued

Purpose
continued
Format 8: When running a program, function, or report, prints the
results of 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 local_variable_list with any local variable or variables
defined with NUMERIC, STRING, or DATETIME for use strictly inside
the program. (See the appropriate keyword for more information.)

Replace printer with a defined printer. 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.

With a local variable (format 3), sets the variable to ON.

To display PRINT statements on another terminal or to print them on
a printer, use Format 6 and give the terminal or printer name (full path
if necessary). You can also display the results of PRINT statements in
a workstation message window (format 4) or to the status line on a
workstation (Format 5). Use Format 7 to save the results of all PRINT
statements in a file.
Andover Plain English Language Reference 7- 301

RUN, continued

Example 1 You can use RUN in an IF...THEN statement to start a program:
Program File
If Tod >800 then Run then HeaterProg


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 3 You can use RUN in a program to turn on a local variable:
Program File
Run then LeadFan

Example 4 From a Cyberstation, you can use Run to print a report on a shared
network printer named "LabPrinter" located on a server named
"EngServer":
Program File
Run DailyReport to "\\EngServer\LabPrinter"

Example 5 You can have all PRINT statements in ChillerProg print in the
Message window on your workstation, as follows:
Program File
Run ChillerProg to MessageWindow

Example 6 You can have a PRINT statement inside the Avg.Temp program print
a point value to the status line on your workstation, as follows:
Program File
Run Avg.Temp to StatusLine
Schneider Electric 7-302

RUN, continued

Example 7 You can use RUN to save the results of running the humidity report in
a file named humid.Rpt:
Program File
Run HumidReport to "humid.Rpt"
This statement writes over any text that may already be in the
humid.Rpt file. If the humid.Rpt file does not exist, the CyberStation
automatically creates it.


Example 8 You can add the humidity report results to the end of a file named
Humid.Rpt without writing over the information already in the file
(such as from the previous version of the report) by adding WITH
APPEND to the RUN statement:
Program File
Run HumidReport to "Humid.RPT" with Append


Related
Keywords
LINE
ROTATE
STOP

Alias START and OPEN (for Formats 1 through 4 only)

Products
Supported
B4920, CMX series, CX series, I2 series controllers, and
Cyberstation.

Modes
Available
Command lines and programs.


Section 7 Keywords S through Z

SAVE Statement (on controller)

Format Format 1: SAVE ALL
Format 2: SAVE list
Format 3: SAVE typelist
Format 4: SAVE ENERGYNET
Format 5: SAVE INFINET
Format 6: SAVE SITE
Format 7: any of formats above -d
Format 8: any of formats above -m

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 1: Saves every item on the connected controller.

Format 2: Saves the listed items from the connected 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 the
controller to which you are connected. 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.



Andover Plain English Language Reference 7-303
Schneider Electric 7-304

SAVE (controller), continued

Purpose
continued
Format 6: Saves all items from all CX controllers and Infinet
controllers on 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.

Remarks This keyword is restricted to users with administration level access.

Replace list with one or more names of files, points, or other items on
the controller to be saved.

Replace typelist with one or more names of the type of file, point, or
other item on the controller you wish to save. The type of an item is
an input or output point, program or data file, or similar type.

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.

This keyword applies only to CX controllers. For a Cyberstation, see
the Save (Statement on workstation).

See Appendix C for a complete description of the contents of a dump
file, and how to create your own dump file.

Example 1 You can save all items on the entire controller by using ALL:
Command Window on Controller
Save ALL



Andover Plain English Language Reference 7-305

SAVE (controller), continued

Example 1
continued
If you are saving from a CX controller terminal, within 60 seconds
type 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.

Schneider Electric 7-306

SAVE (controller), continued

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


Andover Plain English Language Reference 7-307

SAVE (controller), continued

Example 7
continued
ImportExport : Floor1
Floor1 OutsideAirTemp To 2, 4-6, Floor1
Floor1 Room1 NextUnOccTime To 4, 6, 8-9, Floor1, Infinet1
EndImportExport
EndDictionary

Refer to Appendix C for more examples of dump files.

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



Schneider Electric 7-308

SAVE (controller), continued

Example 11 You can save all of EnergyNet and send error messages to a
message window:
Command Line
Save EnergyNet -m

Related
Keywords
LOAD

Alias DUMP

Products
Supported
B4920, CMX series, and CX series controllers.

Modes
Available
Command lines

Andover Plain English Language Reference 7-309

SAVE Statement on workstation

Format
Format 1: SAVE object_site_or_controller TO file_string
Format 2: any of formats above -d
Format 3: any of formats above -b
Format 4: any of formats above -n
Format 5: any of formats above -o
Format 6: any of formats above -v

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 3: Saves branch controllers of the object you indicate
(controllers that reside under the site or under the controller) along
with the object.

Format 4: Saves only the site, controller, or Infinet controller you
indicate, without any of its objects.

Format 5: Overwrites any already-existing objects when saving
objects to the database or the dump file.

Format 6: Checks to be sure any points that are being taken in from
another controller or sent out to another controller are valid when
saving objects to the database or to the dump file.

Remarks This keyword is restricted to users with administration level access.

Replace controller with the name of the controller from which the
objects are to be saved (see Example 1).

Replace site with the name of the site where the controller is located
(see Example 1).


Schneider Electric 7-310

SAVE (workstation), continued

Remarks
continued
Replace file_string with a path to and name of the ASCII dump file
used to create and store the data. When you give the name, include a
.dmp extension. The file name must be in quotation marks. You can
also give a string point or local string variable that contains the name
of the file.
The dictionary ensures that when you load a controller later, the unit
knows about all objects. For instance if a program refers to a point on
another controller, the programs controller knows about that point
through the dictionary.
If you use multiple options, be sure that you do not separate them
with commas.
You can use SAVE from the command line or in a program. If you use
it in a program, you must use SAVE on a line by itself. You do not
have to indicate that the program should then go to the next line,
because it automatically proceeds to the next line after completing the
save.
See Appendix C for a complete description of the contents of a dump
file.

Example 1 You can create an ASCII dump file called FLOOR1.DMP that contains
all objects on a controller called FLOOR1 from a site called
BUILDING1 as follows:
Command Line
SAVE \Building1 Floor1 TO "c:\floor1.dmp"
You must give the disk location (c:) and the full path to the dump file.
The dump file automatically includes all objects on the FLOOR1
controller.

Example 2 To create a dump file that contains only the dictionary of the FLOOR1
controller, you would use the -d option as follows:
Command Line
Save \Building1 Floor1 to "c:\floor1.dmp" -d
This command line creates a file of only the dictionary.

Andover Plain English Language Reference 7-311

SAVE (workstation), continued

Example 3 Include the b option to create a dump file of the Floor1 controller and
all its Infinet controllers as shown in the following command:
Command Line
Save \Building1 Floor1 to "c:\floor1.dmp" -b
This command line puts all of the data into the floor1.dmp file. The
dump file automatically includes all objects that exist on the controller
and on its Infinet controllers.

Example 4 To create a dump file of a controller that does not include all its
objects, you would include the -n option, as follows:
Command Line
Save \Building1 Floor1 to "c:\floor1.dmp" -n

Example 5 Since you want to overwrite any old data with the new data, you
would include the -o option to update an existing dump file for the
BoilerPanel as follows:
Command Line
Save \Building1 BoilerPanel to "c:\boiler.dmp" -o

Example 6 To create a dump file of a program called HEATING and have the
CyberStation verify that any points HEATING refers to on another
controller are valid, use the -v option as follows:
Command Line
Save \Building1 Floor2 Heating to "c:\heat.dmp" -v

Example 7 To create a dump file of a report you would give the name of the
report, as follows:
Command Line
Save \Building2 TempRept to "c:\temps.dmp"

Schneider Electric 7-312

SAVE (workstation), continued

Example 8 To update a dump file of the FLOOR1 controller, do not include any of
its objects except its Infinet controllers and be sure that you overwrite
any existing data in the dump file. You can do so by using several
options, as follows:
Command Line
Save \Building1 Floor1 to "c:\floor1.dmp" -b -n -o
Be sure not to use a comma between multiple options.

Example 9 You can also use SAVE within a program to create an automatic
backup of a controller in an ASCII dump file. The following program
would update the dump file for the FLOOR1 controller, including all of
its Infinet controllers, every month on the first of the month at 11:00
p.m.:
Program File
TestingDateTime:
If DayOfMonth Is 1 and TimeOfDay is >23:00 then Goto SavingCntr
SavingCntr:
Save \Building1 Floor1 to "c:\floor1.dmp" -b -o
It is recommended to save the controller to the database before
creating the dump file.

Related
Keywords
LOAD

Alias DUMP

Products
Supported
CyberStation.

Modes
Available
Command lines

Andover Plain English Language Reference 7-313

SCAN System variable

Format SCAN

Purpose Updates regularly and indicates the length in seconds of the last
interpreter scan interval. Accuracy is +/. 01 second on the CX
series controllers and +/. 025 second on the Infinet controllers.

Remarks You cannot change the value of this variable. The controller
automatically updates it.

Example To find the average number of seconds per scan, you would run the
following program once every scan after all other programs have
been run:
Program File
Numeric Tot.Sca.SCS, Scan.Count, Scan.Avg
Set Tot.Scan.SCS, Scan.Count, Scan.Avg =0
Line Totaling
Tot.Scan.SCS =Tot.Scan.SCS +Scan
Scan.Count =Scan.Count +1
If Tod =2359 then
Scan.Avg =Tot.Scan.SCS/Scan.Count
Print "The average scan for ", Wkd, " is ", Scan.Avg, "sec"
Set Scan.Avg =0
Set Scan.Count =0
Set Tot.Scan.SCS =0
Endif
For each scan, the controller adds the length of the scan (in seconds)
to the total seconds for the day. Also for each scan, the controller
adds 1 to the scan counter.

At the end of the day (2359, or 11:59 p.m.), the controller divides the
scan total by the number of scans to obtain the average length of the
scans that day. It then prints the average for the day.


Schneider Electric 7-314

SCAN, continued

Example
continued
The numeric variables used to calculate the average number of scans
per day are all set to zero at the end of each day, so that they start at
zero the next day.

Alias SC

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-315

SEARCH Function

Format SEARCH (string, search_string)

Purpose Returns the position of the given search_string within string, or 0 if
the controller cant 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.

Example 1 Program File
NSTR =Search ("ABCDE", "BC")
The search returns 2 and sets NSTR to 2, which is the position of the
search string BC in ABCDE.

Example 2 Program File
NSTR =Search ("ABCDE", "CB")
The search returns 0 and sets NSTR to 0 because CB is not in the
string.


Products
Supported
BACnet series, CMX series, CX series, i2 series controllers (except
i2885, i2887, i3885, i3887), and CyberStation.

Modes
Available
Command lines and programs.

Schneider Electric 7-316

SECOND System variable

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
Keywords
HOD
HOUR
MINUTE
TOD

Alias SEC

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-317

SELECT (CASE) Statement

Format Select Case Test_Expression
Case Expression_List
Statement_List
Case Expression_List
Statement_List

Case Else
Else_Statement_List
EndSelect

Purpose Executes one or more statements, depending on the value of
Test_Expression

Remarks Test_Expression: Any numeric, string or datetime expression

Expression_List: List of one or more expressions, comma separated

Statement_List: One or more statements to execute if
Test_Expression matches any expression in corresponding
Expression_List

Else_Statement_List: One or more statements to execute if
Test_Expression does not match any expression in any
Expression_List.

If Test_Expression matches any expression in Case
Expression_List, then the statements following that Case clause are
executed up to the next Case clause, if any, or up to End Select. At
least one Case Expression_List clause is expected.
The Case Else clause is used to execute the statements in
Else_Statement_List if Test_Expression does not match any
expression in any of the Case Expression_List clauses. The Case
Else clause is not required, but it is a good idea to have it, in order to
catch any unexpected Test_Expression value.
Once the statement(s) in Statement_List or Else_Statement_List
have been executed, the statement directly after the EndSelect is the
one to execute next.
Expressions may be numeric, string or datetime
Schneider Electric 7-318


SELECT (CASE), continued Statement

Example 1 Select Case Weekday
Case Monday, Tuesday
Print "Run Mon_Tue Report"
Case Wednesday thru Friday
Print "Run Wed_Thu_Fri Report"
Case Else
Print "Run Weekend Report"
EndSelect

Example 2 Numeric ReportId

Select Case ReportId
Case 1
Print "Run First Report"
Case 2, 3, 5 thru 10, 15
Print "Run Special Report"
Case 20
Print "Run Final Report"
Case Else
Print "Invalid Report Id"
EndSelect

Example 3 Select Case Numeric1 Description
Case Numeric2 Description
Print "Numeric1 and Numeric2 have the same description
Case West Building
Print "Numeric1 is the West Building
Case Else
Print "Numeric1 is not the West Building
EndSelect


Andover Plain English Language Reference 7-319


SELECT (CASE), continued Statement

Related
Keywords
IF..THEN..ELSE, BREAK, CONTINUE

Products
Supported
CyberStation

Modes
Available
Programs

Schneider Electric 7-320

SendEmail Function

Format SendEmail (to_string, subject_string, message_string, cc_string,
bcc_string, signature_string)

Purpose Allows the user to write an email and send it out directly from within a
controller to one or more recipients.

Remarks Each argument for the SendEmail function must be of type string or a
string expression. All the arguments are optional. However, the
to_string, cc_string and bcc_string arguments cannot all be empty.
This means that there must be at least one recipient. Also, if there are
multiple recipients in any of these strings, then email addresses
should be separated with commas or semicolons.

Replace the arguments with the following string of characters:

Argument Definition
To A string containing the email address of the recipient(s).
Subject A string containing the subject of the email.
Message
A string containing the body of the email. An array name is
accepted as an argument. Each array entry represents a line in
a multi-line message.
Cc A string containing the copy to the email address(es).
Bcc A string containing the blind copy to the email address(es).
Signature A string containing the signature.

The message can be a string array, or a string expression, including a
string object or local variable value. If a string array is used, each
array entry represents a message line. The first message line is
expected at array index 1. The last message line is either the first
array element with an empty string, or the last element of the array
(based on the size of the array).

The function call must be on a labeled line by itself. After calling the
SendEmail function, the program automatically moves to the next
labeled line. The line immediately following the SendEmail line must
test for the returned value; otherwise, the control system software
considers that a SendEmail error.


SendEmail, continued

Remarks
continued
SendEmail returns 0 if the operation was successful, otherwise, it
returns a non-zero value indicating errors. The error codes are as
follows:
Error Code Definition
0 No error
1 Not called from a program
2 Illegal argument value
3 Illegal argument count
4 Not enough memory to complete the operation
11 Failed to create SMTP user session to the email server
13 Email queue is temporarily full. The user should retry later
14 Cannot connect to the email server
15 Error in sending the sender information
16 Error in sending the TO recipient information
17 Error in sending the CC recipient information
18 Error in sending the BCC recipient information
19 Error in sending the subject
20 Error in sending the message
21 Error in sending the end-of-message
22 Error in disconnecting from the SMTP server
23 Failed to resolve SMTP server address
24 Invalid dialup settings
25 Failed to connect remote SMTP server
26 Modem port is in use
27 Email settings are not configured
Before executing any PE program that sends emails, the user needs
to configure the controllers email settings using the built-in web
pages.





!
CAUTION
If the size of the email message is greater than 2k when it is sent
from the controller, it degrades the performance of the scanner. Be
careful to limit the size of your message to ensure the most
effective scanner performance.

Andover Plain English Language Reference 7-321
Schneider Electric 7-322

SendEmail, continued

Example 1 Progam File
Fall-thru program that sends a simple email message to a recipient
Numeric EmailStatus
Sending:
EmailStatus =SendEmail (addr1@abc.com, Lights, We need to~
save energy)
Checking:
If EmailStatus is 0 then EmailErrorString ="Success"

Example 2 Progam File
' Fall-thru program that sends a multi-line email message to various
recipients
Numeric EmailStatus
String 80 TOaddr
String 32 Subject
String 80 MessageLines[3]
String 32 CCaddr, BCCaddr
String 80 EmailErrorString
TOaddr ="addr1@abc.com, addr2@abc.com, addr3@abc.com"
CCaddr ="BuildingManager@abc.com"
BCCaddr ="AdminServer@abc.com"
Subject =Building Automation
MessageLines[1] ="This is the first line of the email message"
MessageLines[2] ="This is the second line of the email message"
MessageLines[3] ="This is the last line of the message"
Line Sending
EmailStatus =SendEmail (TOaddr, Subject, MessageLines, ~
CCaddr, BCCaddr)
Line Checking
If EmailStatus is 0 then
EmailErrorString ="Success"
Else
If EmailStatus =14 then
EmailErrorString ="Cannot connect to the email server"
Endif
Endif

Andover Plain English Language Reference 7-323

SendEmail, continued

Products
Supported
bCX-40x0, bCX9640, NetController II (9680, 9681), ACX 57xx series

Modes
Available
Programs

Schneider Electric 7-324

SET Statement

Format Format 1: SET namelist TO number

Format 2: SET namelist = number

Purpose Assigns a value to a point or variable.

Remarks Replace namelist with any defined name or list of names. The name
or names can be any of these:
Point (any type).
Local variable; either numeric, string, or datetime.

The type of name must match the type of number. Replace number
with any number or expression, including a string or date and time, or
a name that stands for either of those.

A numeric name can accept only the results of a numeric expression.
A string name can accept only text. A datetime name can accept only
a date and time.

Example 1 At any time in a program, you may want to set the value of a variable
or array of variables. You use SET with the word TO:
Program File
Set AreaValue to Height Times Width
You can also use ADJ UST, CHANGE, or MODIFY with TO. With
ADJ UST 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 ADJ UST or CHANGE, but you
can use it with MODIFY.

Andover Plain English Language Reference 7-325

SET, continued

Example 2 You can set a variable using SET and an equals sign as in the
example below:
Program File
Set KWAVG =Average (KW)
Instead of SET, you can use LET with the equals sign, as follows:
Let DWAVG =Average (KW)
You cannot use the word TO with LET. Neither the word SET nor the
word LET is required with the equals sign, so you can set the same
variable as follows:
KWAVG =Average (KW)

Example 3
You can set a string variable or point to a particular value:
Program File
Set STAT.Message to "Heat Active"

Example 4 You can set several points and variables to a particular value:
Program File
Set KWAVG, OATAVG, HWAVG, CHWAVG =0

Example 5 You can set disabled points only from the command line. (To set
disabled points in a testing function, you must run the function from
the command line.) The example disables some input points, then
sets them to test values:
Command Line
Disable OAT, HWT, CHWT
Set OAT =40
Set HWT =120
Set CHWT =50

Schneider Electric 7-326

SET, continued

Related
Keywords
MOVE

Alias ADJ UST and CHANGE (Format 1 only)
LET (Format 2 only)
MODIFY

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-327

SETDISPLAY Function

Format Format 1: SETDISPLAY (display_constant)

Format 2: SETDISPLAY (display_constant_list)

Purpose Sets the DCX 250 Display Unit screen to a color (blue or white) or
sets the display to draw a polygon or series of lines (polylines).
Returns SUCCESS or FAILURE.

Remarks Set the display before you begin drawing. The display remains as
you set it until you set it again.

You must set the display to FILL to draw a polygon rather than
drawing lines with LINEPOINT. You must set it to NOFILL to draw
lines with LINEPOINT. (See LINEPOINT.)

The DCX 250 screen settings you can alter with SETDISPLAY are as
follows:
Colors:
BLUE
WHITE
Drawing:
FILL
NOFILL

Replace display_constant with a single constant from: BLUE,
WHITE, FILL or NOFILL.

Replace display_constant_list with a list of any of the constants (given
above) separated by commas.

You do not need parentheses if SETDISPLAY is at the beginning of a
statement.

Before you begin drawing a polyline, you must set the display to
NOFILL to ensure you do not draw a polygon instead.


Schneider Electric 7-328

SETDISPLAY, continued

Remarks
continued
Before you begin drawing a polygon, you must set the display to FILL
to ensure you do not draw a polyline instead.

You can draw rectangles (see DRAWRECTANGLE) and lines (see
DRAWLINE) in white or blue color by setting the display_constant to
WHITE or BLUE.

Example For examples of SETDISPLAY refer to "RELATED KEYWORDS".

Related
Keywords
BEGINPOLYLINE
DRAWRECTANGLE
DRAWLINE

Products
Supported
DCX 250 Display Unit.

Modes
Available
Programs

Andover Plain English Language Reference 7-329

Shell Statement

Format Shell string_list

Purpose Runs one or more programs named by the string or strings. Or opens
one or more files, each named as a string, by running their
corresponding application(s).

Remarks The string_list can be any single string expression or list of string
expressions, comma separated, containing application, or file names.
It can also be one or more string expressions that give a program
name.

The CyberStation software must be running for the program to run.

The string or strings must contain programs with the .exe suffix;
however, for applications you may omit the .exe suffix (if it is part of
the application name).

Note: If the path to the command you are using or the program you
are running is not in your config.sys file, autoexec.bat file, or current
directory, you must give the full path when you give the command.
The full path always includes the disk (or partition) on which the
program is stored.

Example 1 Command Line
Shell "c:\prg\dbmaint.exe"
This command runs an application called dbmaint.exe and located
under the \prg directory on the C disk. If the path to this application is
included in your workstation search path, you do not need to give the
disk or full path; instead, you give only the application name:
Shell "dbmaint.exe"

Schneider Electric 7-330

Shell, continued

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 3 Command Line
Shell "a:\";FileNameString, "c:\prog\dbsave","d:\prg\dbrestore.exe"
In this command line, the CyberStation software runs several
programs one after another. Notice that you may leave out the .exe
extension on the program name. (The dbsave program, for instance,
is an .exe program.). Be sure you put each disk and program name in
quotation marks. The only string not in quotation marks is the name of
a Continuum object, attribute, or local variable.

Andover Plain English Language Reference 7-331

Shell, continued

Example 4
continued
To run any workstation application followed by arguments, 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, using
the notepad application, enter the following:
Command Line
Shell "Notepad c:\dbase.txt"

Example 5 You can open a file without specifying the application name.
Shell C:\Document1.doc
Shell C:\Report1.txt
Shell C:\WebPage1.htm

You do not need to know the actual application name in order to open
the given file. The workstation software uses the application that is
associated the type of file you want to open.
For example, for an HTML web page, your default web browser
application is automatically invoked.

Products
Supported
CyberStation

Modes
Available
Command lines and programs.

Schneider Electric 7-332

Show Statement

Format Format 1: Show objectlist

Format 2: Show logview_list

Purpose Displays the object or objects each in a separate window on a
CyberStation screen.

Remarks Replace objectlist with any single object or a list of objects (with
commas between them) defined in the control system software.
Objects include sites, controllers, workstations, Infinet controllers,
points, programs, functions, reports, data files, panels, and so on.
The objects may have been defined on either a CX series controller
or a CyberStation.

Reports and panels both open in Run mode. All files other than
reports open and display their Andover Continuum Plain English
statements.

Sites and controllers open to the window in which you defined them.
(Using SHOW gives the same result as selecting File, then Open from
the Menu bar.)

Replace logview_list with a LogView that you have saved for the
Alarm Log, Event Log, Error Log, or Activity Log. May not be more
than one LogView for the same log.

Example 1 Command Line
Show AirHandler1
The workstation software opens the windows for the air handler.

Example 2 Command Line
Show AirHandler1, Room1 VAV, Room2 VAV
The workstation software opens the windows for the air handler
(controller) and two VAV boxes (Infinet controllers).

Andover Plain English Language Reference 7-333

Show, continued

Example 3 Command Line
Show DailyReport, ChillerDisplay
The DailyReport opens and displays in Run mode. The panel called
ChillerDisplay opens and displays in Run mode.

You can switch to Edit mode once each is open.

Example 4 Command Line
Show InputsOwenEdited, Bldg4PointsInAlm
This SHOW command opens the Activity Log showing the
InputsOwenEdited log view range and the Alarm Log showing the
Bldg4PointInAlm log view range.

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
Supported
CyberStation.

Modes
Available
Command lines and programs.

Schneider Electric 7-334

SHOWREPORT Statement

Format Format 1: SHOWREPORT object

Format 2: SHOWREPORT string

Purpose Displays the result of a program as a text file in Microsoft Notepad or
as an HTML file on an HTML browser.

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.

When SHOWREPORT runs an HTML report, the results are displayed
in a file that has the same name as the HTML report, but with
result_number appended to it. For example, with the first usage of
SHOWREPORT myreport
The file name myreportresult_1.htm will appear in the HTML browser.
The second time myreport.htm is used the file will change to
myreportresult_2.htm and so on. To restart the result file numbering,
move or delete the old files from the directory that holds your HTML
report.
There is a preference in the Workstation editor, called "Increment
Report File". If the preference is set to True, the file naming increment,
as described above, takes place. If it is set to False (default), the file
name remains unchanged, with just result.htm appended to the report
name (i.e. no _#).

Example 1 Command line
ShowReport MyReport
This command displays the results of a program named MyReport in
Microsoft Notepad.
Make sure that the program is set to "Run on any Workstation" (in the
configuration window in the program editor)
Andover Plain English Language Reference 7-335

SHOWREPORT, continued

Example 2 Command line
ShowReport C:\Program File\Continuum\Reports\SystemChk.htm
This command displays the specified HTML file as a web page in your
HTML browser.

Example 3 Command line
ShowReport Floor1\NetCtlr1\ListView1
This command displays the result of an HTML report template that has
been associated with the listview object named ListView1. The report
displays as a web page in the HTML browser on your CyberStation. By
using special HTML tags that work with Continuum, the report template
can extract attribute values from listview objects and any other Continuum
object.
For example, suppose that ListView1 is a listview of output points. Fill the
Report Template field in the Listview editor with the name of your Listview
HTML template. Select a template you have previously created using your
favorite HTML editor that shows a table of point values and descriptions
(e.g. ReportTemplate.htm).
The template source text might look like the following:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0017)http://engpublic/ -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=unicode">
<META content="MSHTML 6.00.2800.1400" name=GENERATOR>
</HEAD>
<BODY bgcolor=honeydew><STRONG
style="BACKGROUND-COLOR: honeydew">
<P align=left>&nbsp;</P>
<P align=center><FONT size=5><STRONG>Point Values</STRONG></FONT></P>
<HR>
P align=center><STRONG>{|date|}</P>
<CENTER style="BACKGROUND-COLOR: honeydew">&nbsp;</CENTER> </STRONG>
<DIV align=center>
<CENTER><FONT
style="BACKGROUND-COLOR: gainsboro"></FONT>&nbsp;</CENTER></DIV>
<HR>
<TABLE id=TABLE1 style="LEFT: 14px; WIDTH: 488px; TOP:
241px; HEIGHT: 178px"
borderColor=black cellPadding=4 bgColor=#ffffff background=Gray_Textured11.gif border=5
cellSpacing=0 borderColorDark=gray align=center borderColorLight=white>


SHOWREPORT, continued

Example 3
continued
<TR>
<TD align=middle bgColor=#c0c0c0><FONT color=#000080
size=4><STRONG>Name</STRONG></FONT></TD>
<TD align=middle bgColor=#c0c0c0><FONT color=#000080
size=4><STRONG>Value</STRONG></FONT></TD>
<TD align=middle bgColor=#c0c0c0><FONT color=#000080
size=4><STRONG>Description</STRONG></FONT></TD>
<TR>
<TD>{|list|}</TD></TR>
<TR>
<TD><FONT size=2><STRONG>{|Name|}</STRONG></FONT></TD>
<TD align=right><FONT size=2><STRONG>{|Value|}</STRONG></FONT></TD>
<TD align=right><FONT size=2><STRONG>{|Description|}</STRONG></FONT></TD>
<TR>
<TD>{|endlist|}</TD></TR></TABLE>
<P align=center></STRONG>
<A title=Schneider-Electric href ="http://www.Schneider-Electric.com" target=BBC name="View
Schneider-Electric" >Schneider-Electric Website</A>
</P
<P>&nbsp;</P>
<P>&nbsp;</P>
</BODY>
</HTML>
The template based on the source HTML above appears as follows:

The template shows a title ("Output Points"), followed by the current date.
Below that is the list of points, including names, values and descriptions, and
finally a reference to a website. Note the delimiters {| and |}around the
Continuum tags such as list, endlist, object name (e.g. Date), and attribute
names (e.g. Name, Value and Description)
Schneider Electric 7-336

SHOWREPORT, continued

Example 3
continued
The ShowReport command creates an HTML report file, named
ReportTemplateResult.htm, based on the original attached report
template name (in this case ReportTemplate.htm). It inserts the listview
output into the newly created report file. The resulting report file appears
as follows:



Related
Keywords
SHOW
SHELL

Products
Supported
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-337
Schneider Electric 7-338

SIN Function

Format SIN (number)

Purpose Returns the sine of the angle you specify.

Remarks The number is any number or expression. The number represents
an angle in radians.

Radians =degrees TIMES (3.14159/180).
Degrees =radians TIMES (180/3.14159).

Example Program File
Result =sin (1)

Alias SINE

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers (except
i2885,i2887,i3885,i3887), and CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-339

SQRT Function

Format SQRT (number)

Purpose Returns the square root of number.

Remarks The number is any number or expression.

Example Program File
MVAL =sqrt (4)
The SQRT function returns 2 and the statement sets MVAL to 2.

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Schneider Electric 7-340

StandardDeviation Function

Format Format 1: StandardDeviation (numeric_list)

Format 2: StandardDeviation (numeric_array)

Format 3: StandardDeviation (numeric_log)

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 and find their bias-corrected
average (using number of elements - 1).

Format 1: Returns the standard deviation of the listed items.

Format 2: Returns the standard deviation of the items in the array.

Format 3: Returns the standard deviation of the items in the log.

Remarks Replace numeric_list with one or more numbers or names that stand
for numbers, separated by commas.

Replace numeric_array with any defined array that contains
numbers.

Replace numeric_log with any defined log that contains numbers.

Items in the list must all be either numbers or variables that contain
numbers.

If any of the items in the list in Format 1 is an array or a log but does
not indicate an element number, the controller retrieves the current
value of the point and treats it like any other single item in the list.


Andover Plain English Language Reference 7-341

StandardDeviation, continued

Example 1 To find the standard deviation of several temperatures, place them
directly in the StandardDeviation statement. List them in parentheses
as follows:
Program File
TempDev = StandardDeviation (70, 72, 74)
The standard deviation returned is 2.

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.

Schneider Electric 7-342

StandardDeviation, continued

Alias SD

Products
Supported
BACnet series, CMX series, CX series, DCX 250, i2 series controllers
(except i2885,i2887,i3885,i3887), and CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-343

STATUS# System variable (programmable)

Format STATUSnumber

Purpose Turns on the corresponding status light on the front door of the CX
9200 series controller if you set it to ON and turns off the status light if
you set it to OFF. Label the numbered status light on the controller
with the corresponding event, program, or similar item the light
indicates.

Remarks Replace number with number or expression that gives the number of
the status light on the front door of the CX 9201 controller. The
number or expression can be up to 8. If number is greater than the
highest status light number, the controller does not recognize the
word.
The status lights on the CX 9201 controller are numbered 1 through
8.
You may not put a space between STATUS and the number.
You cannot pulse a status light ON for a particular number of
secondsit must be ON or OFF. The light remains ON or OFF until
you change it in a program or from the command line.

Example Suppose you labeled the fourth status light on the CX 9201 controller
Chiller Alarm Active, so you could set it when the alarm occurs. After
the alarm occurs, to set the light, enter this statement in your
program:
Program File
IF ChillerAlarm4 is On then Set STATUS4 to On

Products
Supported
CX series

Modes
Available
Command lines and programs.

Schneider Electric 7-344

STOP Statement

Format Format 1: STOP program_list

Format 2: STOP point_list

Purpose Format 1: At the command line level, halts the executing program (or
programs) you specify at current line.

Format 2: Sets the point (or points) to bottom of its defined scale. It
then turns the equipment off, controlling the equipment through the
point. You can use this statement in a program to turn off a piece of
equipment, or at the command line to directly turn off a piece of
equipment.

Remarks Replace program_list with any program or list of programs.

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 its defined scale. 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 >8:00pm then Stop the Heat.Prog
If you do not name a program after STOP, the controller assumes you
mean the current program.

Andover Plain English Language Reference 7-345

STOP, continued

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
Keywords
ROTATE
RUN

Alias CLOSE
SHUT

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Schneider Electric 7-346

STRING Statement

Format STRING string_length namelist [array_size_number]

Purpose Creates and defines one or more names as local string variables.
You can define the variables inside a program for use only in that
particular program. You can specify the length of the string of
characters with the string_length.

Each variable may be a single variable or an array. Specify an array
by including the array_size_number when you define it.

Note: STRING also defines fields inside a data file. See the STRING
data file statement for format and usage of STRING in data files.

Remarks Replace string_length (optional) with a number (up to 132 for a
controller or 254 for Cyberstation) that tells the controller how many
characters are in the string.

Replace namelist with the name of the string (text) variable you are
defining, or a series of string variables separated by commas.

Replace array_size_number (optional) with any number up to 32,767
that tells the controller how many positions are in the array.

You must define all local string variables at the top of your program.

Used to store textual information in the current program.

If you do not give a string_length, the string is given the default
length, which is 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, enter this program
line:
Program File
String FileName

Andover Plain English Language Reference 7-347

STRING, continued

Example 2 To have a program read information from a file containing text, create
a series of string variables, like those below, to contain each piece of
text information. You can create them all in the same program line:
Program File
String 20 LName, LogOn, PWord, Room, Terminal
The length of each string is 20. To give them different lengths, you
must define (declare) each one separately.

Example 3 To create a string array of variables, you must first define the array.
The string called Pump below is an eight-character string with 20
variables in the array (Pump [1], Pump [2], Pump [3], and so on).
Program File
String 8 Pump[20]
Pump[6] ="HeatPump"

Example 4 You can create several arrays of string variables and single string
variables all in one program line:
Program File
String Pump[6], Blower[8], HeaterNM, FanName

Related
Keywords
DATETIME
NUMERIC
STRINGFILL

Products
Supported
ACX series, BACnet series (except b3885, b3887), CX series, DCX
250, i2 series (except i2885, i2887) controllers, and CyberStation.

Modes
Available
Programs

Schneider Electric 7-348

STRINGFILL Function

Format STRINGFILL(number, charactercode)

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.


Andover Plain English Language Reference 7-349

STRINGFILL, continued

Example 3
continued
Program File
Numeric DayX
Print "Peak KW Demand for Week"
Print " "
For DayX =1 TO 7
Print ST( DayX);" +"; stringfill(KWD[DayX]/100, 42)
Next DayX
Print " +----+----+----+----+----+"
Print " 0 500 1000 1500 2000 2500 "
After the program prints the title, it proceeds to a FOR..NEXT loop.

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 +* * *


Schneider Electric 7-350

STRINGFILL, continued

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
Keywords
STRING

Products
Supported
BACnet series, CMX series, CX series, DCX 250, i2 series controllers
(except i2885, i2887, i3885, i3887), and CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-351

STRTODATE Function

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. If you prefer, you
may position the time before the date on that line.
You may set up the date in any reasonably interpretable format
using all numbers or spelling the month as either the full word or the
three-letter abbreviation. You can separate the month, day, and year
with spaces, slashes, dashes, periods, commas, or any combination
of these punctuation characters.
If you prefer to put the day first, you can, as long as the day is
obviously a day. Two ways that a day cannot be misinterpreted as a
month are:
Spell the month as a word so that the day is the only other
number so low.
Use numbers for both month and day only if the day is greater
than 12, since any day between 1 and 12 could be interpreted as
a month.
The month can be:
J AN[UARY] J UL[Y]
FEB[RUARY] AUG[UST]
MAR[CH] SEP[TEMBER]
APR[IL] OCT[OBER]
MAY NOV[EMBER]
J UN[E] DEC[EMBER]

Schneider Electric 7-352

STRTODATE, continued

Remarks
continued
YEAR
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.

The weekday can be:
MON[DAY]
TUE[SDAY]
WED[NESDAY]
THU[RSDAY]
FRI[DAY]
SAT[URDAY]
SUN[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.

The following are the acceptable time formats:
hh:mm:ss [AM/PM]
hh:mm [AM/PM]

Where AM and PM (upper- or lowercase) are optional and:
hh is hours (00 - 23) and 00 - 11 is AM and hh >11 is
PM if
AM/PM isn't specified
mm is minutes (00 - 59)
ss is seconds (00 - 59)

Andover Plain English Language Reference 7-353

STRTODATE, continued

Example Program File
Conv.Date =StrToDate ("December-21-2005 11:00 pm")

Alias STRTOTIME

Products
Supported
BACnet series, CMX series, CX series, DCX 250, i2 series controllers
(except i2885, i2887, i3885, i3887), and CyberStation.

Modes
Available
Command lines and programs.

Schneider Electric 7-354

STRTONUM Function

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, 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
Supported
BACnet series, CMX series, CX series, DCX 250, i2 series controllers
(except i2885, i2887, i3885, i3887), and CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-355

SUCCESS Constant

Format SUCCESS

Purpose Used in expressions to indicate a process or function has completed
successfully.

Remarks SUCCESS is always numeric and equal to zero.

Example Program File
If OpenFile (C:\text\zone.txt, ReadOnly, ZoneData) =Success then
Print "Open Successful"
Endif

Related
Keywords
FAILURE

Products
Supported
CMX series, CX series, DCX 250 controllers, and CyberStation

Modes
Available
Command lines and programs.

Schneider Electric 7-356

SUM Function

Format Format 1: SUM (numeric_list)

Format 2: SUM (numeric_array)

Format 3: SUM (numeric_log)

Purpose Format 1: Returns the sum of the listed items.

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.

Replace numeric_array with any defined array that contains
numbers.

Replace numeric_log with any defined log that contains numbers.

Replace number with any number or expression.

Items in the list must all be either numbers or variables that contain
numbers.

If any of the items in the list in Format 1 is an array or a log, 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)

Andover Plain English Language Reference 7-357

SUM, continued

Example 2 You have been storing calculated values in an array called PartTime.
You then use the sum on that array, as follows:
Program File
Total Time =Sum (PartTime)

Example 3 You have been logging temperatures in a log for several hours. To
find the sum of them, you find the sum of that log, as follows:
Program File
HourlyTot =Sum (TempLog)

Example 4 You find the sum of several temperatures in a list, including the
current value of TempLog, as follows:
Program File
HourlyAvg =Sum (Tmp801, Tmp802, TempLog)
In this instance, TempLog is interpreted as the current value of
TempLog.

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Schneider Electric 7-358

SystemStatus System variable

Format SystemStatus

Purpose Indicates the current access control mode of the ACX and CX series
controllers.

Remarks Applies only to 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.

The four acceptable values for SystemStatus are as follows:
NormalThe 700 series controller is working normally.
NoCommCommunication between the access server and the
700 series controller has failed.
NoDatabaseAccess server or the access controller has been
reset or has otherwise lost the database to check access card
numbers and personal identification numbers (PINs) against.
ColdStart Indicates the Access Controller SystemStatus initial
value, before any door has been configured.

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

Andover Plain English Language Reference 7-359

SystemStatus, continued

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

Products
Supported
ACX and CX series controllers.

Modes
Available
Command lines and programs.

Schneider Electric 7-360

TAB Function

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.

Example Program File
Print tab(10); "This is a Title"
Output
This is a Title
Notice that the text is moved ten spaces to the right

Related
Keywords
PRINT

Products
Supported
BACnet series, CMX series, CX series, DCX 250, i2 series controllers
(except i2885, i2887, i3885, i3887), and CyberStation.

Modes
Available
Programs

Andover Plain English Language Reference 7-361

TAN Function

Format TAN (number)

Purpose Returns the tangent of number.

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).

Example Program File
Position =tan (3.14159/4)

Alias TANGENT

Products
Supported
BACnet series, CMX series, CX series, DCX 250, i2 series controllers
(except i2885, i2887, i3885, i3887), and CyberStation.

Modes
Available
Command lines and programs.

Schneider Electric 7-362

TD Program Attribute

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.

Remarks TD stands for Time in Days.

Example In order to have a lead pump run for 3 days and then turn on the lag
pump, you would check to see if the pump has been running for 3
days after you activate it:
Program File
Line FirstPump
Turn On LeadPump
If Td =3 then Goto SwitchPump
Line SwitchPump
If LeadPump =Pump1 then
Set LeadPump =Pump2
Else
Set LeadPump =Pump1
Endif
The controller measures 3 days starting the instant that the program
is on the line making the request for elapsed time.

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Programs

Andover Plain English Language Reference 7- 363

TH Program Attribute

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.

Remarks TH stands for Time in Hours.

Example To have the lead fan run 1 hour and then run the lag fan, check to
see if the fan has been running for 1 hour after you activate it:
Program File
Line FirstFan
Turn On LeadFan
If Th =1 then Goto SwitchFan
Line SwitchFan
If LeadFan =Fan1 then
Set LeadFan =Fan2
Else
Set LeadFan =Fan1
Endif
The controller measures 1 hour starting the instant that the program is
on the line making the request for elapsed time.

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Programs


Schneider Electric 7-364

THE Keyword (article)

Format THE name

Purpose Performs no function, but enhances readability.

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).

Example Program File
Turn On the Fan

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.


Andover Plain English Language Reference 7- 365

TIMEPIECE Function

Format TIMEPIECE (datetime_system_variable , datetime_name)

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.

Remarks Replace datetime_system_variable with one of the date or time
system variables: HOUR, MINUTE, SECOND, HOD, TOD,
WEEKDAY, MONTH, DAYOFMONTH, YEAR, DAYOFYEAR

Replace datetime_name with any variable, date and time, including
datetime variables and points and the DATE system variable.

Example 1 Program File
DateTime Date1
Numeric CurrentMin
Date1 =StrToDate ("5-25-05 11:13:23")
CurrentMin =timepiece (Minute, Date1)
In this program, the TIMEPIECE function retrieves the minute from
DATE1 and returns 13.

Example 2 Program File
Numeric TodayMonth
TodayMonth =timepiece (Month, Date)
In this program, the TIMEPIECE function retrieves the month from the
DATE system variable. If the date is J une 20, 2005, TodayMonth is
set to J une.

Schneider Electric 7-366

TIMEPIECE, continued

Related
Keywords
DATE
DATETIME
HOUR
MINUTE
SECOND
HOD
TOD
MONTH
YEAR
DAYOFMONTH
DAYOFYEAR

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7- 367

TIMES Operator

Format number TIMES number

Purpose Multiplies two numbers.

Remarks The number is any number or expression.

Example 1 Program File
EnergyCost =Building1 KW times 1.78

Example 2 Program File
EnergyCost =Building1 KW * 1.78

Alias MULTIPLIED BY
MULT
*

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Schneider Electric 7-368

TM Program Attribute

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.

Remarks TM stands for Time in Minutes.

Example To have a 5-minute warmup of a fan before turning on the pump,
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
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Programs





Andover Plain English Language Reference 7- 369

TOD System variable

Format TOD

Purpose Gives the time of the day, from 12:00 a.m. (midnight) to 11:59 p.m.
Also allows you to compare the time of day to 0 (midnight) to 2359,
where 2359 is the equivalent of 23:59 on the 24-hour clock.

Remarks The time of day is the time from the controller clock. You cannot
change TOD. The controller automatically updates it.

Example 1 To check to see if the time of day is past 5:00 a.m., enter one of the
following:
Program File
If Tod is greater than 5:00 am then
If you do not give a.m. or p.m., the controller assumes you mean a.m.
You must include the colon with am or pm. Never use periods
after the A or M, or P or M.

Example 2 When you print out TOD, as in the following example, you always
receive the decimal representation of the time of day:
Program File
Print Tod
The time appears as follows:
20.000
(that means 8:00:00 pm)

Related
Keywords
HOD
HOUR
MINUTE

Schneider Electric 7-370

TOD, continued

Alias TIMEOFDAY

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.


TOUCHEDCELL System variable

Format TOUCHEDCELL

Purpose Gives the number from 1 to 64 of the first block (cell) that an operator
touched on the DCX 250 Display Unit screen during the last scan. If
the operator touches more than one cell, the lowest (top leftmost) cell
number is the value.

Remarks The cells on the 250 screen are as shown on Figure 8-22.



















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.

You can reset TOUCHEDCELL to zero with CLEARSCREEN.
1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64

Andover Plain English Language Reference 7- 371

TOUCHEDCELL, continued

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 CELL 19, the second on CELL 35, and the third on CELL 51.



















Figure 8-23. Touch Cell grid behind buttons

You write the program as follows:
Program File
If TOUCHEDCELL =19 then Goto Room1Fan.DCX
If TOUCHEDCELL =35 then Goto Room2Fan.DCX
If TOUCHEDCELL = 51 Then Goto Room3Fan.DCX
When you draw buttons, be sure each overlays a particular cell.
Room2 Fan
Status
Room3 Fan
Status
Room1 Fan
Status
ROOM FAN STATUSES

Schneider Electric 7-372
Andover Plain English Language Reference 7- 373

TOUCHEDCELL, continued

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

Products
Supported
DCX 250 Display Unit.

Modes
Available
Programs

Schneider Electric 7-374

TRUNCATE Function

Format TRUNCATE (number)

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

Example 1 Program File
CHP =truncate (4.5)
TRUNCATE returns 4 and the program statement sets CHP to 4.

Example 2 Program File
VAL.C = truncate (-1.7)
TRUNCATE returns -1 and the program statement sets VAL.C to -1.

Alias TRUNC

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7- 375

TS Program Attribute

Format TS

Purpose Contains 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.

Remarks TS stands for Time in Seconds.

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
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Programs

Schneider Electric 7-376

TURN Statement

Format Format 1: TURN ON point_list
TURN OFF point_list

Format 2: TURN point_list ON
TURN point_list OFF

Purpose Sets the name or names to the top of the defined range for the point if
ON and to bottom of the range if OFF.

Remarks The point_list is one or more defined output or numeric points; the
statement is not designed for other types of points. All output points
used with TURN must have a range with its top and bottom defined.

Example 1 Suppose you want to turn on the fan and the pump. You can turn
both on in one program statement:
Program File
Turn On then Fan and the Pump

Example 2 You can place the word ON or OFF after the name of the point:
Program File
Turn the Pump Off

Example 3 You can also place ON or OFF before the name of the point:
Program File
Turn Off the Pump

Andover Plain English Language Reference 7- 377

TURN, continued

Related
Keywords
SET

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

Schneider Electric 7-378

UniquePIN System variable

Format UniquePin

Purpose Indicates whether or not each person who has access must have a
unique personal identification number (PIN).

Remarks You cannot set the UniquePIN system variable, but you can print or
access it from the command line or use it in a program. Its value is
always TRUE or FALSE.
You must connect to the applicable controller before you can access
UniquePIN from the command line. You can also access UniquePIN
using the full path.

Example 1 To find out whether or not the personal identification numbers (PINs)
on the CX controller are each unique, you can print UniquePIN from
the command line as follows:
Command Line
Pr AccessController UniquePIN
The response will be either TRUE or FALSE.

Example 2 To take a particular action based on whether or not the personal
identification numbers (PINs) on a controller are each unique, type
the following program statement into the CX controller:
Command Line
If DoorController UniquePIN is True then

Products
Supported
ACX series controllers, CX series controllers (except 9500), and CMX
series controllers.

Modes
Available
Command lines and programs.


UPDATE Function

Format Update (user, phone_number, comport, timeout)

Purpose From a controller, dials the phone number to contact a workstation
and pushes alarms and events to the workstation. A phone number
must be provided in order for this function to perform.

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.
If a valid phone number string is provided, UpDate turns on DTR
(Data Terminal Ready) for the controllers port. Otherwise, UpDate
assumes that a PE program has opened the port and established a
connection.
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.
The phone number string can be a simple telephone number such as
978-470-0555.

CAUTION
Update momentarily changes the port to RAW mode,
while it is dialing. However, while the port is in Raw mode,
you cannot send it READ or PRINT statements. READ
and PRINT both return FAILURE and they drop any
characters you are attempting to send down the port.

!





Andover Plain English Language Reference 7- 379
Schneider Electric 7-380

UPDATE, continued

Remarks
continued








If the first character in the phone number string is not an A or a, the
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 3
rd
party modems or Cellular Modems that
require something other than ATDT to command dialing.

UpDate automatically checks to see if the workstation acknowledges
the update request. If it does:
UpDate starts a PPP session.
PPP Alarm & Event Msg is sent to the workstation.
If no response is received, the controller drops the connection after
timeout. Otherwise, the controller waits until the workstation finishes
polling for Alarms and Events and then terminates the connection.
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 value you can set the timeout to
be 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:


UPDATE, continued

Andover Plain English Language Reference 7- 381


Example You can use UpDate to update alarms and events. The following
program is an example of using UpDate to update alarms and events
at an interval. It uses a FallThru program to force the controller to
"Push" its updates after a given time interval.






Returned When
Success
Controller has established connection with the
workstation
Failure
One of the following situations exists:
Comm port is not in the correct mode.
Default port is not defined.
Phone number contains an incorrect expression or
is otherwise incorrect.
Controller does not receive an ACK from the
workstation.
Workstation does not establish a PPP connection
with the controller within 30 seconds plus the
timeout you supply.
DialNoCarrier
Controller does not detect a carrier on the
communications line.
DialNoAnswer
Controller 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.
Remarks
continued

DialNotDialTone
Modem is waiting for a dial tone before dialing and has
not received one.
Schneider Electric 7-382

UPDATE, continued

Example
continued
'Program triggered by minute system variable to update alarms and
events every 15 minutes
Numeric FailedAttempt, UpdateStatus
Initialize:
FailedAttempt =0
If (Minute Mod 15) =0 then
Goto PushUpdates
Else
Goto EndProg
Endif
PushUpdates:
UpdateStatus =Update ("acc:acc", "122"', comm3, 4)

Using alternate AT Command
Issue the ATD command, then pause, issue the T command
and
pause again
UpdateStatus =Update ("acc:acc", "ATD,T,, 122"', comm3, 4)

Assuming PE has already opened the port and
established a connection
UpdateStatus =Update ("acc:acc",""', comm3, 4)
CheckUpdate:
If UpdateStatus =Success Then GoTo Endprog
FailedAttempt =FailedAttempt +1

AltUpdate:
UpdateStatus =Update ("acc:acc", "236", comm3, 4)
Using alternate AT Command
Issue the ATD command, then pause, issue the T command
and
pause again
UpdateStatus =Update ("acc:acc", "ATD,T,, 236"', comm3, 4)
CheckAltUpdate:
If UpdateStatus =Success then Goto EndProg
FailedAttempt =FailedAttempt +1
If FailedAttempt <4 then Goto PushUdates
EndProg:
Stop

Andover Plain English Language Reference 7- 383

UPDATE, continued

Example
continued
For example, if the controller calls the workstation and the workstation
is off line (busy), then the controller waits 4 minutes until the line is
dropped. If the workstation comes on-line within the 4 minutes, then
the UpDate will take effect.

Related
Keywords
InitModem

Products
Supported
Available only on CX series controllers.

Modes
Available
Command lines and programs.



7-384 Schneider Electric

UpdateExtLog Function

Format UpdateExtLog (object, datetime)

Purpose Begins updating an extended log for the point, group of points, or
controller you give it. If you are not sure what an extended log is, refer
to the Continuum CyberStation Configurator's Guide for further
information.

Note: You must use this statement on a CyberStation. It is not
available on controllers.

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 OBJ ECT 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.

You must use the UpdateExtLog statement on a line by itself. After
executing a statement formed with UpdateExtLog, the program
automatically proceeds to the next labeled line.

UpdateExtLog returns SUCCESS or FAILURE.

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.

As soon as the software sees the UpdateExtLog statement in a
program, it understands the purpose of the defined datetime variable
and retrieves the correct value for it from the database.


Andover Plain English Language Reference 7-385

UpdateExtLog, continued

Remarks
continued
(You can, however, set the value of the datetime variable yourself, if
you prefer.)
You can run UpdateExtLog on only one extended log at a time per
workstation. If you attempt to update more than one extended log at a
time, the software considers it an error and displays that error in the
Error Log of the database.
The maximum number of entries allowed in an extended log is the
number of entries you would have if you logged the point value every
half-hour for one yearup 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 months (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


7-386 Schneider Electric

UpdateExtLog, continued

Example 1
continued
This statement tells the software to update the TEMP1. First, the
statement retrieves the correct UpdateTimer value from the extended
log setup information. Then, when the current time is 60 seconds
greater than the UpdateTimer, the software retrieves values from the
regular log and stores them in the extended log on the workstation.
This way, old values are stored. The statement updates the log once,
and sets the UpdateTimer local DATETIME variable to the next time
the log should update.

The way it is written here, the program remains on the
WaitUntilLogTime until the next update time. If you would like, you
can have the program stop after the ELSE in the WaitUntilLogTime
line and run this program manually.

Example 2 Suppose you want to update a group of extended logs that are all
members of a group called TempPoints. You can use the
UpdateExtLog statement as shown in the following example:
Program File
Datetime UpdateTimer
Updating:
Result =UpdateExtLog (TempPoints, UpdateTimer)
Checking:
If Result =Success then
Goto WaitUntilLogTime
Else
Print "Could not update extended logs in TempPoints group"
Stop
Endif
WaitUntilLogTime:
If Time >=UpdateTimer then
Goto Updating
Else
Goto WaitUntilLogTime
Endif
This statement tells the software to update all of the extended logs
in the TempPoints group. First, the statement retrieves the correct

Andover Plain English Language Reference 7-387

UpdateExtLog, continued

Example 2
continued
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, the software stores
the old log values. The statement updates each log once, and sets
the UpdateTimer local DATETIME variable to the next time the group
of extended logs should update.

In this case, the group is under the root; however, if the group is not
under the root, you must give the full path to the group.

Example 3 If you want to update all of the extended logs on the Floor4 controller,
use the UpdateExtLog statement as shown in the following example:
Program File
Datetime UpdateTimer
Updating:
Result =UpdateExtLog (Building3 Floor4, UpdateTimer)
Checking:
If Result =Success then
Goto WaitUntilLogTime
Else
Print "Could not update extended logs in TempPoints group"
Stop
Endif
WaitUntilLogTime:
If Time >=UpdateTimer then
Goto Updating
Else
Goto WaitUntilLogTime
Endif
This statement tells the software to update all of the extended logs
in the Floor4 controller at the Building3 site. Remember that you must
give the full path to the controller.


7-388 Schneider Electric

UpdateExtLog, continued

Example 3
continued
First, the statement retrieves the correct UpdateTimer value from the
extended log setup information. Then, when the current time is 60
seconds greater than the UpdateTimer, the software retrieves values
from the regular log and stores them in the extended log on the
workstation. This way, 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.


Andover Plain English Language Reference 7-389

UpdateExtLog, continued

Example 7
continued
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:
Program File
Object AnExtLog
Numeric OK, Result
OpeningLogs:
OK =OpenList ("Input", AnExtLog, Building3 Floor4)
Testing:
If OK =Success then Goto GettingLog Else Goto ClosingLogs
GettingLog:
If GetObject (AnExtLog) is not Success then
Goto ClosingLogs
Else
If AnExtLog ExtLogSize >0 then
Goto Updating
Else
Goto GettingLog
Endif
Endif
Updating:
Result =UpdateExtLog (Building3 Floor4)
Checking:
If Result =Success then
Goto GettingLog
Else
Print "Could not update extended logs"
Goto ClosingLogs
Endif
ClosingLogs:
OK =CloseList (AnExtLog)
Goto Ending
Ending:
If Ok =Failure then Print "Cannot Close List"
Stop


7-390 Schneider Electric

UpdateExtLog, continued

Example 7
continued
This statement tells the software to update all of the extended logs
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
OBJ ECT, OpenList, GetObject, and CloseList keywords.

Related
Keywords
DeleteExtLog

Products
Supported
CyberStation

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-391

VERSION System variable

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 Schneider Electric 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
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.

7-392 Schneider Electric

WEEKDAY System variable

Format WEEKDAY

Purpose Gives current day of week, from SUNDAY through SATURDAY.

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:

Constant Short Name Long Name
1 SUN SUNDAY
2 MON MONDAY
3 TUE TUESDAY
4 WED WEDNESDAY
5 THU THURSDAY
6 FRI FRIDAY
Remarks
7 SAT SATURDAY

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



Andover Plain English Language Reference 7-393

WEEKDAY, continued

Example 2 You can use the short name or the constants 1 through 7 for
comparing the weekday in an IF statement:
Program File
If Weekday >Sun or Weekday <7 then

Alias WKD

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.


WHILE Statement

WHILE number Format
statement
statement
...
ENDWHILE

Carries out the instructions in the statements within the loop over and
over again as long as the given number is true.
Purpose

Replace statement with any complete instruction that tells the
program what to do next or what action to take.
Remarks

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.

7-394 Schneider Electric






Example Initialize a 10 element manual array
Program File
Numeric Counter
Set Counter to 1
While Counter <=10
ManualArray[Counter] =Counter*10
Counter =Counter +1
EndWhile

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.

!
Andover Plain English Language Reference 7-395

WHILE, continued

Related
Keywords
IS
BREAK
CONTINUE

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Programs

7-396 Schneider Electric

WHITE Constant

Format WHITE

Purpose Sets the graphics on the DCX 250 Display Unit screen to white when
you use it with SETDISPLAY.

Remarks The graphics on the 250 screen may be blue or white.

Example You set the color of the graphics on the DCX 250 Display Unit, as
follows:
Program File
Set Display (WHITE)

Related
Keywords
BLUE
SETDISPLAY

Products
Supported
DCX 250 Display Unit

Modes
Available
Programs

Andover Plain English Language Reference 7-397

WriteFile Function

Format WriteFile (file_variable_name, string, number,
numeric_var_or_point)

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
file_variable_name must be a control system software FILE variable
name you created earlier with FILE to correspond to a text file name.
Replace string with any string of characters in quotation marks or any
expression that gives a string containing text that the control system
software should place (write) in the file. Can also be a local string
variable or a string point.
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.
Replace numeric_var_or_point with a numeric variable or numeric
point that will store the number of actual characters WRITEFILE has
put in the file (written) once the writing is complete. This value should
be the same as number above; if it is not, then an error has occurred.
After you created a FILE variable name and you open a file with
OPENFILE, you can then write into the text file with WRITEFILE.
If WRITEFILE is successful, it returns the number of characters it has
written (in the numeric variable or numeric point you designate) and it
returns SUCCESS. If it is not successful, it returns FAILURE.

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.


7-398 Schneider Electric

WriteFile, continued

Example 1
continued
In the example below, the WriteFile statement gives the FILE variable
name, the name of the string that contains the record (RecordLine),
the number of characters in the string (80), and a numeric variable to
receive the actual number of characters written (Chars).
If the entire process (OpenFile, WriteFile, and CloseFile) is
successful, the program stops at the end of the Closing line. If any
failures occur, the control system software runs the Failing line.
Once you have opened the file and taken action on it, you must close
the file with CloseFile using the name you created with FILE.
Program File
File ZoneData
String 80 RecordLine
Numeric Chars, OK
Line Opening
Set OK =OpenFile ("c:\text\zone.txt", WriteOnly, ZoneData)
If OK =Failure then Goto Failing Else Goto Writing
Line Writing
RecordLine =GetRecord() 'custom function to build record
OK =WriteFile(ZoneData, RecordLine, 80, Chars)
If OK =Failure then Goto Failing Else Goto Closing
Line Closing
OK =CloseFile(ZoneData)
If OK =Failure then Goto Failing
Print "File operation succeeded"
Stop
Line Failing
Print "File operation failed"

Example 2 To read multiple records from one text file and write them to another,
use ReadFile, then WriteFile. Because you have two files, you would
create two FILE variable names. Call the file that the control system
software should retrieve data from, ZoneData, and call the one it
should put data into, SetPTFile.
Next, test for ReadFile =EOF because you want the control system
software to read records until it reaches the end of the file. The
control system software should read 16 characters or until a carriage
return indicates the end of the record. (You can also use PositionFile
to set the position to begin the action first for reading, then for
writing.)

Andover Plain English Language Reference 7-399

WriteFile, continued

Example 2
continued
For each record (16 characters long), you 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


7-400 Schneider Electric

WriteFile, continued

Example 2
continued
OK =WriteFile (SetPTFile, RecordLine, CharsRead, CharsWritten)
If OK =Failure then
Result ="Could not write file"
Goto Failing
Endif
Line Failing
Print Result
Goto Closing
Line Closing
If CloseFile (ZoneData) is Failure then Result ="Could not close file"
If CloseFile (SetPTFile) is Failure then Result ="Could not close file"
Print Result

Related
Keywords
FILE
CLOSEFILE
OPENFILE
READFILE
POSITIONFILE
FAILURE
SUCCESS

Products
Supported
CyberStation

Modes
Available
Programs

Andover Plain English Language Reference 7-401

WriteProperty Function

Format WriteProperty(Object_Property, Value, Priority, Index)

Purpose To set a property of a BACnet object.

Returns SUCCESS or FAILURE

Remarks Replace Object_property with the object name, including a full path
name, followed by a property name. The Object Identifier and
Property Identifier are combined as one argument.

Replace Value with the actual value you want the property set to. This
is optional. If it is not present, then the next argument, Priority, must
be present to perform a Relinquish command (see Relinquish key
word).

Replace Priority with the priority number, ranging form 1 (highest) to
16 (lowest). This is optional. Applies only to a BACnet commandable
property (refer to Chapter 14 in the Continuum CyberStation
Configurators Guide Version 1.6, 30-3001-781). If not present, the
property value that matches with priority 10, if applicable, is used for
controllers. CyberStations use the priority from the BACnet
Preferences.
Replace Index with an array index. This is optional. It only applies to
an array-type property. The index is ignored whenever it is not
applicable.

Example 1 Use WriteProperty to set the Value property of an object to 100.
Value property is assumed
WriteProperty(BacnetDevices\B4\B3\BV1, 100)
Or
Value property is explicitly mentioned.
WriteProperty(BacnetDevices\B4\B3\BV1 Value, 100)

7-402 Schneider Electric

WriteProperty, continued

Example 2 Use WriteProperty to set the Present_Value property of an object to
100, using priority 5.
WriteProperty(BacnetDevices\B4\AV1 Value, 100, 5)

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.

Example 4 Use WriteProperty to relinquish a command using priority 5.

Value is not passed; this is equivalent to a Relinquish
WriteProperty(BACnetDevices\B4\AV1, , 5)

Related
Keywords
ReadProperty
Relinquish

Products
Supported
BACnet series controllers and CyberStation.

Modes
Available
Command lines and programs.

Andover Plain English Language Reference 7-403

YEAR System variable

Format YEAR

Purpose Gives the current year from 1989 through 2088.

Remarks You cannot change the YEAR. The controller automatically updates
it.

When printed, the four-digit year is given.

Example To take an action in the distant future, such as sending a reminder
message to check certain pieces of equipment, use the YEAR system
variable to test the year:
Program File
If Year is 2000 then Print "Welcome to the Twenty First Century."

Related
Keywords
DAYOFMONTH
DAYOFYEAR
YEAR

Alias YR

Products
Supported
ACX series, BACnet series, CMX series, CX series, DCX 250, i2
series, LCX series, SCX series, TCX series controllers, and
CyberStation.

Modes
Available
Command lines and programs.


7-404 Schneider Electric

Appendix A
ASCII Codes

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.


You might use the ASCII code for a character in the StringFill
function. You must give the StringFill function the string length to fill,
and the code of the character with which you want to fill the string.
For example, to print a string of 10 characters where each character
is an asterisk:
Examples
42 is the ASCII code for the asterisk (*)
PRINT StringFill(10, 42)
To fill a string named Pressure with 20 pound sign characters:
35 is the ASCII code for the pound sign(#)
Pressure =StringFill(20, 35)
You can make a terminal beep, as follows:
Print "|7"



ASCII Codes

More printer control statements may be possible for your printer. See
the manufacturer's documentation.
Interchange (ASCII). You use these codes in a PRINT statement to
control your printer or screen.
Examples
continued

ASCII Code
Table
The ASCII Codes are listed in the following table:


Code (in Decimal) Character or Action
13 Carriage Return.
10 Line Feed.
11 Vertical TAB.
12 Form Feed.
14 SO
15 SI
16 DLE
17 DC1
1 SOH
2 STX
3 ETX
4 EOT
5 ENQ
6 ACK
7 Beep.
8 Backspace.
9 TAB Forward.
0 NUL
















A-2 Schneider Electric

ASCII Codes

ASCII Code
Table
continued

Code (in Decimal) Character or Action
21 NAK
18 DC2
19 DC3
20 DC4
22 SYN
23 ETB
24 CAN
27 ESC
32 Space.
38 &
39 (apostrophe)
40 (
42 *
43 +
41 )
33 !
25 EM
26 SUB
28 FS
29 GS
30 RS
31 US
36 $
37 %
34 "
35 #
44 , (comma)


























Andover Plain English Language Reference A-3

ASCII Codes

ASCII Code
Table
continued

Code (in Decimal) Character or Action
48 0
45
46 . (period)
47 /
49 1
50 2
51 3
54 6
59 ;
66 B
67 C
68 D
60 F
71 G
69 E
60 <
52 4
53 5
55 7
56 8
57 9
58 :
63 ?
64 @
61 =
62 >
65 A
70


























A-4 Schneider Electric

ASCII Codes

ASCII Code
Table
continued

Code (in Decimal) Character or Action
74 J
72 H
73 I
75 K
76 L
77 M
80 P
85 U
91 [
92 \
93 ]
95 -
96
94 ^
86 V
78 N
79 O
81 Q
82 R
83 S
84 T
89 Y
90 Z
87 W
88 X
97 a
98 b


























Andover Plain English Language Reference A-5

ASCII Codes

ASCII Code
Table
continued

Code (in Decimal) Character or Action
102 f
99 c
100 d
101 e
103 g
104 h
105 i
108 l
113 q
120 x
121 y
122 z
124 |
125 }
123 {
114 r
106 j
107 k
109 m
110 n
111 o
112 p
117 u
118 v
115 s
116 t
119 w


























A-6 Schneider Electric

ASCII Codes

ASCII Code
Table
continued

Code (in Decimal) Character or Action
126 ~
127 DEL


Andover Plain English Language Reference A-7
A-8 Schneider Electric

Appendix B
Reserved Words

Reserved words are those words used as system constants, keywords, system functions,
and system variables that are reserved as part of Andover Continuums Plain English
programming language. Being familiar with these words helps avoid naming errors.
This appendix lists all Andover Continuum system reserved words. A tabular listing of
Continuum system constants begins on the next page. Following this table is a second
table containing an alphabetical listing of all other reserved words including Plain English
keywords, system functions, and system variables.
Make sure you do not use any of these words as a line label or program variable in any of
your Plain English programs.
Note: Before you import older programs to your Andover Continuum system, check to
see if they contain any of these reserved words used as line labels or program
variables. Remove or replace any that do with appropriate substitute words.
B-2 Schneider Electric


System Constants

Table of
System
Constants
Andover Continuum system constants are listed in alphabetical
order.
A
A_Variable
ABA1
ABA2
Abnormal
AbortRestore
AC_Flag
AC_Output
AC256P
AC256Site
AC4P4
AC4plus432
AC8P
ACC_Airflow
ACC_Both
ACC_Dynamic
ACC_InputCurrent
ACC_Keypad
ACC_Pneumatic
ACC_Pressure
ACC_Static
ACCBackingUp
ACCBackupDisabld
ACCBackupDone
ACCBackupEnable
ACCBackupInactve
ACCBackupNeeded
ACCBackupNow
ACCCoolStartOnly
Access_archiver
Access-equipment-fault-report
AccessEvent
Access-events-per-area
Access-events-per-door
Access-events-per-person
Access-events-under-a-controller
AccessModeNoCommunication

AccessModeNoDatabase
AccessModeNormal
ACCExpression
ACCFlashEmpty
ACCFlashFailure
ACCFlashValid
ACCPneumatic
ACCTemp(DEGC)
ACCTemp(DEGF)
Accumulator
ACCWarmStartOnly
ACCWarmToCool
ACFloatType
Ack
Ack_Alarms
AckAfterRTN
AckAll
AckAndRTN
Acked
AcknowledgeAlarm
AcknowledgeAlarms
AckOnly
AckOnlyThisOne
AckOrRTN
Acks
AckUntilTime
ACP
Active
Active-alarms-per-object
Active-alarms-under-a-controller
Active-alarms-under-a-field-controller
Active-alarms-under-a-network
Active-unACKed-alarms-per-controller
Activity_archiver
ActivityEvent
Activity-events-per-activity-type

Andover Plain English Language Reference B-3


System Constants

Table of
System
Constants
continued
A
Activity-events-per-controller
Activity-events-per-controller-with-
children
Activity-events-per-object
Activity-events-per-user
Activity-events-per-workstation
ActUnack
ACXDatabaseFault
ACXDatabaseFaultCleared
ADAExitRequestTrouble
ADAExitRequestTroubleCleared
ADAInputTrouble
ADAInputTroubleCleared
Add-areas-to-personnel
Add-column(s)-to-list-class
AddListElement
Add-object(s)-to-Report-memberlist
Add-recipient-to-notification
Add-triggers-to-point
Admin
Administrate
Alarm
Alarm_archiver
AlarmEnrollment
AlarmEvent
Alarms-for-an-event-object-with-alarm-
enrollment
Alarms-for-an-event-object-with-event-
notification
Alarm-transitions-per-object
Allowed
AllPaths
Alm0
Alm1
Alm2
Alm3
Alm4
Alm5

Alm6
Alm7
Alm8
AlmNotification
Amperes
Amperes-per-meter
Amperes-per-square-meter
Ampere-square-meters
AnalogInput
AnalogOutput
AnalogValue
Apr
April
Area
AreaBased
Areas-accessed-by-the-selected-person
Area-use-by-person
Armed
ASCIIDump
ASCIIReload
AtomicReadFile
AtomicWriteFile
AudioDatatype
AudioOnToFault
AudioOnToNormal
AudioOnToOffNormal
Aug
August
Authenticate
AuthenticationFailed
Automatic
AutomaticLifeSafety
Automatic-release-disabled
Automation
AutoSet
Available
Average
Average-of-object-value
Averaging
B-4 Schneider Electric


System Constants

Table of
System
Constants
continued
B
B_Abnormal
B_Active
B_Alarm
B_Armed
B_AutoReleaseDis
B_Blocked
B_Default
B_Delayed
B_Disabled
B_Disarmed
B_Disconnected
B_DuressState
B_EmergencyPower
B_Enabled
B_Fast
B_Fault
B_FaultAlarm
B_FaultPreAlarm
B_GeneralAlarm
B_Holdup
B_LocalAlarm
B_Manned
B_None
B_NotReady
B_Off
B_On
B_PreAlarm
B_Prearmed
B_Quiet
B_Reset
B_ResetAlarm
B_ResetFault
B_Silence
B_SilenceAudible
B_SilenceVisual
B_Slow
B_Supervisory
B_Tamper
B_TamperAlarm

B_Test
B_TestActive B_TestAlarm
B_TestFault
B_TestFaultAlarm
B_TestSupervisry
B_Unmanned
B_Unsilence
B_UnsilenceAud
B_UnsilenceVis
b3608
b3616
b3624
b3800
b3804
b3810
b3814
b3850
b3851
b3853
b3865
b3866
b3867
b3885
b3886
b3887
b3920
b4920
Backup-BACnet-Device
BackupToFlash
Backup-to-flash-including-the-children
Backup-to-flash-the-objects
Bars
Baud1200
Baud19200
Baud19-2K
Baud2400
Baud300
Baud38400
Baud38-4K
Baud4800

Andover Plain English Language Reference B-5


System Constants

Table of
System
Constants
continued
B-C C
Baud76800
Baud76-8K
Baud9600
bCX4000
bCX4020
bCX4040
bCX4060
bCX9600
bCX9640
BeepOnToFault
BeepOnToNormal
BeepOnToOffNormal
Binary
BinaryInput
BinaryOutput
BinaryValue
Bit
Bitstring
BlinkOnAlarm
Blocked
Blue
BondSensorTrouble
BondSensorTroubleCleared
BondSensorViolation
BondSensorViolationCleared
BooleanType
Btus
BtusPerHour
BtusPerPoundDryAir
BufferOverflow
Buffer-purged
BufferReady
CabinetTamperDoorClosed
CabinetTamperDoorOpen
Calendar
Cancel-distribution-operation
Cancel-schedule
Candelas
Candelas-per-square-meter
CannotDelete
CannotRename

CardMode
Centimeters
CentimetersOfMercury
CentimetersOfWater
Change-Automatic-archiving-parameter
Change-Continuum-explorer-option
Change-in-GUI-field
ChangeOfBitstring
ChangeOfFailure
ChangeOfState
ChangeOfValue
Change-security-key-in-default-security-
page
Change-security-key-on-a-Class
Change-the-main-menu-page
Change-the-option-on-main-menu-page
ChangeValues
Channel-override-events-per-door
Char
CharacterSetNotSupported
CharType
Check-in-PE-program
Check-out-PE-program
CK34
ClassDefault
ClearDisplay
Clockwise
Closed
ClusteredBar
Coldstart
COM1
COM2
COM3
Command
Command_Line
CommandFailure
Commport
Completed-deleting-object-from-Access-
Control-DB
Completed-deleting-objects-from-Access-
Control-DB



B-6 Schneider Electric


System Constants

Table of
System
Constants
continued
C C-D
Completed-refreshing-objects-to-Access-
Control-DB
Completed-refreshing-object-to-Access-
Control-DB
Config
ConfigurationError
ConfigurationInProgress
Configure
ConfirmedCOVNotification
ConfirmedEventNotification
ConfirmedPrivateTransfer
ConfirmedTextMessage
Connected
Connecting
Constant
Container
Controller-use-by-person
ControllerUser
Copy
CopyFromTemplate
Copy-object
Counter
CounterClockwise
Create-attempt-for-an-object
Create-link-between-2-objects
CreateObject
Create-object
Create-object-from-DBSync-activity
Create-object-from-template
Create-shortcut
Create-template-from-the-object
CriticalEquipmentControl
CriticalEquipmentMessage
CtsRts
CubicFeet
CubicFeetPerMinute
CubicFeetPerSecond
CubicMeters
CubicMetersPerHour
Cubic-meters-per-minute
CubicMetersPerSecond

Currency1
Currency10
Currency2
Currency3
Currency4
Currency5
Currency6
Currency7
Currency8
Currency9
Current
CurrentValue
CustomCard
CustomMagStripe
CustomWiegand
CX9000
CyclesPerHour
CyclesPerMinute
Data
DatabaseSynchronization
DataBits5
DataBits6
DataBits7
DataBits8
DateAndTimeType
DateDataType
DateTime
Days
DbSync
Dec
December
Default
DefaultTime
Deg-Phase
DegreeDaysCelsius
DegreeDaysFahrenheit
DegreesAngular
DegreesCelsius
DegreesCelsiusPerHour
DegreesCelsiusPerMinute



Andover Plain English Language Reference B-7



System Constants

Table of
System
Constants
continued
D D-E
DegreesFahrenheit
DegreesFahrenheitPerHour
DegreesFahrenheitPerMinute
DegreesKelvin
Degrees-Kelvin-per-hour
Degrees-Kelvin-per-minute
DegreesPhase
Delayed
Delete
Delete-activity-log
Delete-area-from-all-controllers
Delete-arealink-from-all-controllers
Delete-extendedlogs
Delete-link-between-2-objects
DeleteObject
Delete-object
Delete-object-from-Access-Control-DB
Delete-object-from-DBSync-activity
Delete-objects-from-Access-Control-DB
Delete-the-Personnel-from-controller
Delta-degrees-Fahrenheit
Delta-degrees-Kelvin
Denied
Dereferenced
Device
DeviceAndBelow
DeviceBusy
DeviceCommunicationControl
DeviceOnly
Digital
Direct
Disable-area-links
Disabled
Disable-object
Disable-user-logging-flag
Disarmed
Disconnected
Disconnecting
DisplayAlarmView
DisplayPanel
DisplayVideo
DistNotUsed
DistributeAddAreasToPersonnel
DistributeAreaDeleteToAllACXS
DistributeAreaMemberDeleteToAllACXS
DistributeAreaMembersToAllACXS
DistributeAttributeSet
DistributeEnableDisableAreaLink
DistributeOnePersonToACX
DistributeOnePersonToAllACXS
DistributePersonDeleteToAllACXS
DistributePersonsToACX
DistributeResetPreload
Distribute-the-personnel-to-controller
Done
Door
Door_Ajar
DoorAjarCleared
DoorChannelOverrideAndDoorLocked
DoorChannelOverrideAndDoorUnlocked
DoorChannelOverrideCleared
DoorExitRequestTrouble
DoorExitRequestTroubleCleared
DoorLockedBySchedule
DoorSwitchTrouble
DoorSwitchTroubleCleared
DoorUnlockedBySchedule
Door-use-by-person
Double
DoubleType
DownloadInProgress
DownloadRequired
Download-schedule
Duress_state
DynamicArray
DynamicCreationNotSupported
Email
EmailAck
EmailOnOffNormal
EmailToFault
EmailToNormal

B-8 Schneider Electric


System Constants

Table of
System
Constants
continued
E F
Emergency-power
Enable-area-links
Enable-Automatic-archiving
Enabled
EnableDisable
Enable-object
Enable-user-logging-flag
EndBackup
EndRestore
EntryKeypadTamper
EntryReaderFault
EntryReaderFaultCleared
Enumeration
Eof
Equal
ErrorEvent
Error-events-per-controller
Error-events-per-controller-with-children
Error-events-per-object
Error-events-per-user
Error-events-per-workstation
Ethernet802_2
Ethernet802_3
EthernetII
EthernetSNAP
Even
EventEnrollment
EventNotification
EventView
EvtNotification
Execute-Learn
Execute-learn-on-an-IOU-module
Execute-object
Execute-Teach
Executive_Privilege
ExitKeypadTamper
ExitReaderFault
ExitReaderFaultCleared
ExitRequestDenied_Lockdown
Export-security-keys-to-file
ExpressionAlarm
ExtendedLog
ExtLog_archiver
Failed
Failed-login-attempts-per-user
Failed-login-attempts-per-workstation
Failure
FallThru
False
Farads
Fast
Fault
Fault-alarm
Fault-pre-alarm
Feb
February
Feet
FeetPerHour
FeetPerMinute
FeetPerSecond
Female
File
FileAccessDenied
FileBegin
FileCurrent
FileDatatype
FileEnd
Fill
Find-BACnet-devices
FixedArray
Flashes-an-IOU-module
Flash-IOU-modules-from-controller
FloatingLimit
FloatType
FolderAndBelow
FolderOnly
FormCancel
Forward
Fri
Friday



Andover Plain English Language Reference B-9


System Constants

Table of
System
Constants
continued
G H I I
G31
General-alarm
GeneralMode
Generic-action
GetAlarmSummary
GetEnrollmentSummary
GetEventInformation GlobalScope
Grams-per-minute
Grams-per-second
Graphics
GraphicsDisplayType
GreaterThan
GreaterThanOrEqual
Group
GUI
Halt
Halted
Hectopascals
Henrys
HIDCorp1000_35
HighAlarm
HighLimit
HighLimitEnable
HiLimit
HiResCurrent
HiResVoltage
History
Holdup
Holiday
Horizontal
Horsepower
Hours
Hundredths-seconds
i2608
i2616
i2624
i2800
i2804
i2810
i2814

i2850
i2851
i2853
i2865
i2866
i2867
i2885
i2886
i2887
i2888
I2889
i2920
IAm
Idle
IHave
Image
ImperialGallons
ImperialGallonsPerMinute
Import-object-from-dump-file
Import-security-keys-from-file
Inactive
InAlarm
Inches
InchesOfMercury
InchesOfWater
IncompatibleSecurityLevels
Incomplete
InconsistentParameters
InconsistentSelectionCriterion
Infinet
Infinity_37
InfinityController
InfinityData
InfinityDateTime
InfinityFunction
InfinityInfinetCtlr
InfinityInput
InfinityNumeric
InfinityOutput
InfinityProgram


B-10 Schneider Electric


System Constants

Table of
System
Constants
continued
I J J K - L
InfinityString
InfinitySystemVariable
InheritFromTemplate
Initiate-Archiving-sequence
InProgress
InputCurrent
Instantaneous
Int
Intermitted
Internal
Invalid_Attempt
InvalidAPDUInThisState
InvalidArrayIndex
InvalidAttemptAntiPassbackViolation
Invalid-attempts-of-a-door
Invalid-attempts-of-an-area
Invalid-attempts-of-a-person
InvalidDataType
InvalidFileAccessMethod
InvalidFileStartPosition
Invalid-logon-attempt-from-workstation
InvalidOperatorName
InvalidParameterDataType
Invalid-password-in-Operator-text-dialog-
box
InvalidTag
InvalidTimeStamp
Invalid-user-name-in-Operator-text-dialog-
box
IOBidirectional
IOInput
IOOutput
IOUModule
J an
J anuary
J oules
J oule-seconds
J oulesPerDegreeKelvin
J oulesPerKilogramDegreeKelvin
J oulesPerKilogramDryAir
J ul
J uly
J un
J une
KeyGenerationError
KiloBtus
Kilo-btus-per-hour
Kilograms
Kilograms-per-cubic-meter
KilogramsPerHour
KilogramsPerMinute
KilogramsPerSecond
Kilohertz
Kilohms
Kilojoules
Kilojoules-per-degree-Kelvin
KilojoulesPerKilogram
Kilojoules-per-kilogram-dry-air
KilometersPerHour
Kilopascals
KilovoltAmperes
KilovoltAmperesReactive
Kilovolts
KilowattHours
KilowattHoursPerSquareFoot
KilowattHoursPerSquareMeter
Kilowatts
KVA
KVAR
K-watt-hours
LAN
Last15min
Last30min
LastMonth
LastWeek
LastYear
Launch-Automatic-archiving-app

Andover Plain English Language Reference B-11


System Constants

Table of
System
Constants
continued
L L - M
Lbus
LessThan
LessThanOrEqual Level_0 through
Level_255
LifeSafetyMessage
LifeSafetyOperation
LifeSafetyPoint
LifeSafetyZone
Lighting
List
ListView

Liters
LitersPerHour
LitersPerMinute
LitersPerSecond
Load
LoadFailed
Loading
Local-alarm
LocalScope
Locked
Lock-unlock-events-per-door
Log
LogAverage
Log-disabled
Login-attempts-per-user
LogInstantaneous
LogMaximum
LogMinimum
Logoff-from-workstation
LogView
LON
LongIntType
Loop
Looping
LowAlarm
LowLimit
LowLimitenable
Lumens
Luxes
Male
Manned
Manual
ManualAreaAssign
ManualLifeSafety
ManualOperator
Mar
March
Mark-personnel(s)-card-as-lost
Maximum
May
Mega-btus
Megahertz
Megajoules
Megajoules-per-degree-Kelvin
Megajoules-per-kilogram-dry-air
MegajoulesPerSquareFoot
MegajoulesPerSquareMeter
MegavoltAmperes
MegavoltAmperesReactive
Megavolts
Megawatt-hours
Megawatts
Megohms
Meters
Meters-per-hour
Meters-per-minute
MetersPerSecond
Meters-per-second-per-second
MilesPerHour
Milliamperes
Milliamps
Millibars
Millimeters
MillimetersOfMercury
Millimeters-per-minute
Millimeters-per-second

B-12 Schneider Electric


System Constants

Table of
System
Constants
continued
M M - N
Milliohms
Milliseconds
Millivolts
Milliwatts
Minimum
MinimumOnOff
Minmax
Min-max-of-object-value
Minutes
MissingRequiredParameter
Modify-Global-preference
Momentary_Unlock
MomentaryUnlocked
Mon
Monday
Months
MonthToDate
MonthToNow
Most-accessed-areas
Most-accessed-controllers
Most-accessed-doors
Most-active-alarmed-objects
Most-active-persons
Most-active-persons-entering-selected-
area(s)
Most-active-persons-entering-selected-
door(s)
Most-alarm(s)-acking-user
Most-alarm(s)-acking-workstation
Most-alarm(s)-logging-workstation
Most-alarm(s)-silencing-user
Most-alarm(s)-silencing-workstation
Most-common-activities
Most-common-errors
Most-offline-controller
Most-offline-field-controller
Most-offline-IOU
Move
Move-object
MSTP
Multiple
MultiPlot
MultiStateFault
MultistateInput
MultistateOutput
MultistateValue
MVA
MVAR
NCParallel
NCSeries
NCSerPar
NetBeui
NetBios
NETWARE
Network
NETWORK_CMDLINE
NetworkDialup
NetworkWide
New
Newton
Newton-meters
Newton-seconds
Newtons-per-meter
NoAccess
NoComm
NoDataBase
NoFaultDetected
Nofill
NoFlowControl
NonCollection
None
NonOperational
NoObjectsOfSpecifiedType
NoOutput
NoPad
NOParallel
Normal
NormalMessage
NoSegmentation
NoSensor
Andover Plain English Language Reference B-13


System Constants

Table of
System
Constants
continued
N O O - P
NOSeries
NOSerPar
NoShortcuts
NoSpaceForObject
NoSpaceToAddListElement
NoSpaceToWriteProperty
NotAcked
NotConfigured
NotEqual
NotificationClass
Not-ready
NotSet
NoUnits
Nov
November
NoVTSessionsAvailable
Null
Object
ObjectClass
ObjectDeletionNotPermitted
ObjectId
ObjectIdentifierAlreadyExists
ObjectReference
Objects-created/saved-events-per-user
Object-value
Oct
October
Odd
Off
OffLine
Offline-alarms-per-controller
Offline-alarms-per-field-controller
Offline-alarms-per-IOU-module
OffNormal
Ohm-meters
Ohms
On
-On
Once
OneMonthToDate
OneMonthToNow
OnePlot
OneWeekToDate
OneWeekToNow
OneYearToDate
OneYearToNow
OnLine
Opened
OpenLoop
Open-object-for-editing
Operational
OperationalProblem
OperationalReadOnly
Other
Out_Of_Services
OutOfRange
OverRange
Overridden
PageAck
PageToFault
PageToNormal
PageToOffNormal
Paging
Panel
PanelMeter
ParameterOutOfRange
PartsPerBillion
PartsPerMillion
Pascals
PasswordFailure
PDF
PE_program
Pending
PendingReload
PendingRetry
Percent
Percent-obscuration-per-foot
Percent-obscuration-per-meter
PercentPerSecond
PercentRelativeHumidity
PerHour

B-14 Schneider Electric


System Constants

Table of
System
Constants
continued
P P Q - R
Permanent_Unlock
Permanent_UnlockCleared
PerMinute
PerSecond
Personnel
Persons-accessed-the-selected-area
Pie
PinChange
PINMode
PINOnly
PIUTool-End
PIUTool-Import-End
PIUTool-Import-Start
PIUTool-Search-end
PIUTool-Search-Start
PIUTool-Start
PlayContinuous
PlayOnce
Polar
Port_OutOfServices
PoundsForcePerSquareInch
PoundsMass
PoundsMassPerHour
PoundsMassPerMinute
Pounds-Mass-Per-Second
PowerFactor
PPP
Pre-alarm
Prearmed
PreemptedByHigherPriorityTask
PrimaryEMail
PrimaryForward
PrimaryLog
PrimaryPaging
PrimaryPrint
Print
PrintAck
Printer
PrintReport
PrintToFault
PrintToNormal
PrintToOffNormal
Priority10
Priority11
Priority12
Priority13
Priority14
Priority15
Priority16
Priority3
Priority4
Priority7
Priority9
Probe
ProbeOff
ProbeOnDemand
ProcessError
Program
ProgrammingLevel
Prompt
Property
PropertyIsNotAList
PsiPerDegreeFahrenheit
PTP
PTPConnecting
PTPDisconnected
Pulse-Converter
Pwr-Factor
Quiet
Radians
Radians-per-second
Raw
ReadAccessDenied
ReaderDoor
ReadOnly
ReadProperty
ReadPropertyConditional
ReadPropertyMultiple
ReadRange
ReadWrite Ready
Andover Plain English Language Reference B-15


System Constants

Table of
System
Constants
continued
R R - S
Real
RealTime
RefreshDatabase
Refreshed-Extended-Log
Refresh-object-from-template
Refresh-objects-to-Access-Control-DB
Refresh-object-to-Access-Control-DB
ReinitializeDevice
Reload-object-to-controller
RemoteScope
Remove-areas-from-personnel
Remove-column(s)-from-list-class
RemovedEnumValue
RemoveFromStatusWhenAcked
RemoveListElement
Remove-object(s)-from-Report-
memberlist
Remove-recipient-from-notification
Remove-triggers-from-point
Rename-object
RepeatEmail
RepeatLog
RepeatPaging
RepeatPrint
RequestKey
RequestToExit
RequiresCommission
Reset
Reset-alarm
Reset-controller-from-editor
Reset-fault
Resources
Restart
Restore-BACnet-Device
ReturnToNormal
Reverse
RevolutionsPerMinute
Rotate-object-to-another-label
RTD1000TempC
RTD1000TempC2W
RTD1000TempF
RTD1000TempF2W
RTDTemp(DEGC)
RTDTemp(DEGF)
RTDTempC2W
RTDTempF2W
RTNOnly
RTNs-for-an-event-object-with-alarm-
enrollment
RTNs-for-an-event-object-with-event-
notification
RtnUnack
Run
Running
Sat
Saturday
Save
Save-object
Save-object-to-database
Save-object-to-database(sendtoDatabase)
Save-object-to-dump-file
Save-schedule-auto-send-datetime
Save-schedule-configuration
Save-schedule-events
Schedule
ScheduleDownload
ScheduleMode
Seconds
Security
SecurityLevel
SecurityNotSupported
SegmentationNotSupported
SegmentedBoth
SegmentedReceive
SegmentedTransmit
Send-time-synch
Sep
September
ServiceRequestDenied
Services

B-16 Schneider Electric


System Constants

Table of
System
Constants
continued
S S - T
Set-attribute
Set-attribute-in-buffered-mode
Set-Date-systemvariable
ShortcutCreate
ShortcutsAsShortcuts
ShortedLoop
ShortIntType
ShowDisplayValue
ShowMessage
ShowSpaceTemp
ShowTimeValue
Shutdown-Automatic-archiving-app
Shut-down-Continuum-on-a-workstation
Siemens
Siemens-per-meter
Silence
Silence-audible
Silence-visual
Singular
Site_Config
Site_ConfigB
SiteConfiguration
SiteMode
Slow
Smallint
Snapshot-of-object-value
Snapshot-of-Trend-Log-buffer-contents
SoftAck
SpecifiedByRules
SpecifiedByUser
SpecifiedElapsedTime
SpecifiedTime
SQLDateTime
Square-centimeters
SquareFeet
Square-inches
SquareMeters
Square-meters-per-Newton
Squ-Feet
Squ-Meters
StartBackup
Start-Continuum-on-a-workstation
Start-Relinquish-BACnet-Command
StartRestore
Start-the-object
Stop-Automatic-archiving
StopBit1
StopBit1.5
Stop-the-object
StopBit2
String
StringDataType
Structure
SubscribeCOV
SubscribeCOVProperty
Success
Sun
Sunday
Supervised
SvFloat
SX8000
System
Table
Tamper
Tamper-alarm
TankNet
TankProbe
TCP
TCP_IP
TCPIP
Temperature
TemplateCreate
TemplateRefresh
Teslas
Test
Test-active
Test-alarm
Test-fault
Test-fault-alarm
Text
TextType
ThermoCoupBTempC
ThermoCoupBTempF


Andover Plain English Language Reference B-17


System Constants

Table of
System
Constants
continued
T T - U
ThermoCoupETempC
ThermoCoupETempF
ThermoCoupJ TempC
ThermoCoupJ TempF
ThermoCoupKTempC
ThermoCoupKTempF
ThermoCoupRTempC
ThermoCoupRTempF
ThermoCoupSTempC
ThermoCoupSTempF
ThermoCoupTTempC
ThermoCoupTTempF
Therms
Thu
Thursday
TimeDataType
TimedUnlock
Timeout
TimeStampType
TimeSynchronization
Tinyint
Today
ToFault
TonHours
ToNormal
Tons
Tons-per-hour
TonsRefrigeration
ToOffNormal
TooManyArguments
Trend
TrendLog
TriState
Trouble
True
Truncate-Log-table
TS_DateTime
TS_SequenceNumber
TS_Time
Tue
Tuesday
UDP
UDP_AND_TCP
UnArmed
Unassigned
UnauthorizedOpenDoor
UnauthorizedOpenDoorCleared
Unavailable
UncomfirmedEventNotification
UncomfirmedPrivateTransfer
UncomfirmedTextMessage
UnconfirmedCOVNotification
UndefinedEnumeration
UnderRange
Union
Unknown
UnknownDevice
UnknownObject
UnknownProperty
UnknownVTClass
UnknownVTSession
Unload
Unloaded
Unlocked
Unmanned
UnrecognizedService
UnreliableOther
Unset
UnsignedCharType
UnsignedLongType
UnsignedShortType
Unsilence
Unsilence-audible
Unsilence-visual
UnsupportedObjectType
Update-controller-from-DBSync-activity
Update-extendedlogs
Update-object-from-DBSync-activity
Update-the-OS-on-a-controller
Urgent
UrgentMessage
User-invalid-attempt
UsGallons
UsGallonsPerMinute
UtcTimeSynchronization


B-18 Schneider Electric


System Constants

Table of
System
Constants
continued
V W W X YZ
V_Variable
VA
Valid_Access
ValidAccessAntiPassbackViolation
ValidAccessDuress
ValidAccessNoEntry
ValidAccessTimedAntiPassbackViolation
Valid-and-invalid-attempts-of-a-person
Valid-logon-from-workstation
ValueOutOfRange
ValueRepeat
VAR
Varbinary
Varchar
Vertical
VideoDatatype
View
ViewOnly
Voltage
Voltamperes
VoltAmperesReactive
Volts
Volts-per-degree-Kelvin
Volts-per-meter
VT
VT100
VT220
VtClose
VtData
VtOpen
VTSessionAlreadyClosed
VTSessionTerminationFailure
Waiting
Warmstart
WattHours
Watt-hours
Watts
Watts-per-meter-per-degree-Kelvin
WattsPerSquareFoot
WattsPerSquareMeter
WattsPerSquareMeterDegreeKelvin
Web
Webers
WebGraphic
WebGraphicControl
Wed
Wednesday
Weekly
Weeks
WeekToDate
WeekToNow
WhenFinished
White
WhoHas
WhoIs
Wiegand26
Window
Wireless
WithinController
WriteAccessDenied
WriteOnly
WriteProperty
WritePropertyMultiple
Wyse
X_Variable
Xdriver
XdrvInstalled
XdrvNotInstalled
XdrvRemove
XdrvRemoved
XdrvRun
XdrvRunning
XdrvStop
XdrvStopped
XdrvTransition
XonXoff
XonXoffCtsRts
Yearly
Years
YearToDate
YearToNow
Yesterday
ZoneNumberBased


Andover Plain English Language Reference B-19


Additional Reserved Words

Table of
Additional
Reserved
Words

The following table lists additional Plain English reserved words
consisting of system variables, system functions, and keywords listed
in alphabetical order.
Note: As a programmer, you may not use any of these words as a line
label or program variable.
A-B B-D D-F F-L L-M
Above Break Disconnect First Line
Abs Breakpoint Div Floor LinePoint
AccessLog By Divided For Ln
AccessServer CabinetTamper Does Freemem Load
AckAlarm Case Dom From Locate
Acos Cd Doy GetExtLog Log
Adjust Ceiling DrawEllipse GetName Logoff
Advise Change DrawLine GetObject Logout
Alarms Chr DrawRectangle Go Lookup
All ClearScreen Dt Goto Max
Am Close Dump Greater Maximum
And CloseFile E HangUp Maxitem
Append CloseList Either Hod
MessageWindow
Arcsine CloseWindow Else Hour MicroPower
Arctangent Cls En HourOfDay Mid
Arctangent2 Connect Enable Hr Min
Arg Continue Encrypt If Minimum
Asc Control Encrypted ImportFile Minitem
Asin Cos End In Minus
Ask Cosine EndIf Include Minute
Atan CPUPower EndPolyLine Infinit#Count Mod
Atan2 CurUser EndSelect Initiate Modify
AudioBell Curvefit EndWhen InitModem Modulate
AvailRecords CurWorkstation EndWhile Input Month
Average Date EnergyNet Inputs Move
Avg DateTime Equal
IOUCommFlt#
Mth
Backlight DayOfMonth Equals Is Mult
Basedon DayOfYear Erase Kill Multiplied
Beep Dde Errors Last
BeginPolyLine Del EventLogSize
LCDPassword
continued
Below Delete Execute Left
Between DeleteExtLog Exists Len
Bitand Dial Exp Length
Bitnot DiffTime Exponential Less
Bitor Dis Fact Let
Bitxor Disable Factorial Like
B-20 Schneider Electric


Additional Reserved Words

Table of
Additional
Reserved
Words
continued
N-R R-T T-Y
Neither Rotate Terminate
NewAlarmCount Round Th
Next Run Than
Not Save The
Number Sc Then
Numeric Scan Through
NumToStr Sd Thru
Object Search Time
Open Sec TimeOfDay
OpenFile Second Timepiece
OpenList Select Times
Or SendCommand Tm
Output SendEmail To
Outputs SendFile Tod
P Set TouchedCell
Param SetACValue Trace
Passed SetDisplay Trunc
Pid Shell Truncate
PlayAudio Show Ts
Plus ShowReport Turn
Pm Shut Unadvise
Poke Sin UniquePIN
PollACValue Sine Until
PopAlarm Site Update
PositionFile Sqrt UpdateAlarms
Pr StandardDeviation UpdateEvents
PreParse Start UpdateExtLog
Print Status Val
Prompt StatusLine Version
Random Step Weekday
Read Stop Where
ReadFile String While
ReadProperty Stringfill With
ReceiveFile StrToDate Wkd
Relinquish StrToNum Write
Reload StrToTime WriteFile
Report Sum WriteProperty
Request SystemStatus Year
Return Tab Yr
Right Tan
Rnd Tangent
Rot Td

Appendix C
Objects and Attributes

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

AlarmEnrollment Filter Loop
AnalogInput Folder MultistateInput
AnalogOutput Function MultistateOutput
Area Graphics MultistateValue
BinaryInput Group Network
BinaryOutput InfinityController NetworkDialup
BinaryValue InfinityDateTime Numeric
Calander InfinityFunction Personnel
CommPort InfinityInfinetCtlr Program
ControllerUser InfinityInput Report
DateTime InfinityNumeric RootClass
Device InfinityOutput Schedule
Door InfinityProgram SecurityLevel
EventEnrollment InfinityString ShortCut
EventNotification InfinitySystemVariable String
EventView IOUModule TrendLog
File ListView User
Schneider Electric C-2

AccessEvent Attributes

AccessEvent
Attributes
Table
The following list provides you with the attributes and meanings for an
AccessEvent object.

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

Andover Plain English Language Reference C-3

ActivityEvent Attributes

ActivityEvent
Attributes
Table
The following list provides you with the attributes and meanings for an
ActivityEvent object.

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

Schneider Electric C-4

ACXList Attributes

ACXList
Attributes
Table
The following list provides you with the attributes and meanings for an
ACXList object.

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

Andover Plain English Language Reference C-5

AlarmEnrollment Attributes

ALarmEnrollment
Attributes Table
The following list provides you with the attributes and meanings for an
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
Alarm1Alarm8 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

Schneider Electric C-6

AlarmEnrollment Attributes

ALarmEnrollment
Attributes Table
continued
Attribute Description
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
MsgTextFault Message delivered on fault
MsgTextNormal Message delivered on RTN
MsgTextOffNormal Message delivered on Alarm
Name Name of the object
NetworkNumber Not meaningful to the user
NotifyType Type of notification to be used
Owner Owner of object
Properties Not meaningful to the user
ReferenceCount Not meaningful to the user
ReferencePoint1
ReferencePoint4
Alarm Referenece Point
RefObjectType Not meaningful to user
RefTemplate Name and path of template from which object was created
ReportID Not meaningful to the user
ScheduleEvents Not viewable by user
SecurityLevel Name and path of any security level attached to the object
Template True if object is a template
TemplateAlias Alias that will be used when creating objects from this template
object - meaningful only for templates
TemplateCreateRule Not meaningful to the user
TemplateName Name that will be used when creating objects from this template
object - meaningful only for templates
TimeLocked The time the object was last opened
Type The type of the object
Virtual Flag Not meaningful to the user

Andover Plain English Language Reference C-7

AlarmEvent Attributes

ALarmEvent
Attributes
Table
The following list provides you with the attributes and meanings for an
AlarmEvent object.

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

Schneider Electric C-8

AlarmInfo Attributes

AlarmInfo
Attributes
Table
The following list provides you with the attributes and meanings for an
AlarmInfo 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
Alarm1Alarm8 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
AlarmLink1AlarmLink8 Not meaningful to user
ParentObject The full path to the object
ReferencePoint1
ReferencePoint4
Alarm Referenece Point
ReportID Not meaningful to the user


Andover Plain English Language Reference C-9

AnalogInput Attributes

AnalogInput
Attributes
Table
The following list provides you with the attributes and meanings for an
AnalogInput object.
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
Alarm1Alarm8 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

Schneider Electric C-10

AnalogInput Attributes

AnalogInput
Attributes
Table
continued
Attribute Description
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
EngScaleBot The bottom value in Engineering Units that corresponds to the
bottom electrical value
EngScaleTop The top value in Engineering Units that corresponds to the top
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)
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
HighLimit High Limit to be used in Basic Alarm (WS points only)
IconID Not meaningful to user
ID SQL Object ID - Not meaningful to the user
IncludeObject Not meaningful to the user
IOU IOU number of object
IsShortcut Not meaningful to the user
LastChangeBy Name of the user making the last change
LCDSettable Capable of being set from the LCD
LimitEnable Not meaningful to the user
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.
LowLimit Low limit to be used in Basic Alarms (WS points only)
Name Name of the object
NetworkNumber Not meaningful to the user
NotifyType Type of notification to be used
OutOfService Service state of an object (similar to enable/disable - WS points
only)
Owner Owner of object
Properties Not meaningful to the user

Andover Plain English Language Reference C-11

AnalogInput Attributes

AnalogInput
Attributes
Table
continued
Attribute Description
ReferencePoint1
ReferencePoint4
Alarm Referenece Point
RefTemplate Name and path of template from which object was created
Reliability Statement of the reliability of the obect's value - not currently
implemented
ReportID Not meaningful to the user
Resolution Not meaningful to the user
ScheduleEvents Not viewable by user
SecurityLevel Name and path of any security level attached to the object
Size Number of elements in an object's manual array or automatic log
StatusFlags Not meaningful to the user
Template When true, indicates that object was made from a template
TemplateAlias Alias that will be used when creating objects from this template
object - meaningful only for templates
TemplateCreateRule Not meaningful to the user
TemplateName Name that will be used when creating objects from this template
object - meaningful only for templates
Threshold The amount, in engineering units, that the value must change
before it will update
TimeDelay The time delay used in evaluating Basic Alarms (WS points only)
TimeLocked The time the object was last opened
TriggerThreshold The amount, in engineering units, that the value must change
before it will update
Type The type of the object
Units The engineering units to be used for this object
UpdateInterval The update interval to be used for this object (WS points only)
Value The value of this object after any conversions that may be required

Schneider Electric C-12

AnalogOutput Attributes

AnalogOutput
Attributes
Table
The following list provides you with the attributes and meanings for an
AnalogOutput object.

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
Alarm1Alarm8 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

Andover Plain English Language Reference C-13

AnalogOutput Attributes

AnalogOutput
Attributes
Table
continued
Attribute Description
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
EngScaleBot The bottom value in Engineering Units that corresponds to the bottom
electrical value
EngScaleTop The top value in Engineering Units that corresponds to the top
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)
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
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
IOU IOU number of object
LastChangeBy Name of the user making the last change
LCDSettable Capable of being set from the LCD
LimitEnable Not meaningful to the user
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.
LowLimit Low limit to be used in Basic Alarms (WS points only)
Name Name of the object
NetworkNumber Not meaningful to the user
NotifyType Type of notification to be used
OutOfService Service state of an object (similar to enable/disable - WS points only)
OverrideValue The actual valus of the output that is overridden
Owner Owner of object
Properties Not meaningful to the user

Schneider Electric C-14

AnalogOutput Attributes

AnalogOutput
Attributes
Table
continued
Attribute Description
ReferencePoint1
ReferencePoint4
Alarm Referenece Point
RefTemplate Name and path of template from which object was created
Reliability Statement of the reliability of the obect's value - not currently
implemented
ReportID Not meaningful to the user
Resolution Not Currently Implemented
ScheduleEvents Not viewable by user
SecurityLevel Name and path of any security level attached to the object
Size Number of elements in an object's manual array or automatic log
StatusFlags Not meaningful to the user
Template When true, indicates that object was made from a template
TemplateAlias Alias that will be used when creating objects from this template object
- meaningful only for templates
TemplateCreateRule Not meaningful to user
TemplateName Name that will be used when creating objects from this template
object - meaningful only for templates
Threshold The amount, in engineering units, that the value must change before it
will update
TimeDelay The time delay used in evaluating Basic Alarms (WS points only)
TimeLocked The time the object was last opened
Type The type of the object
Units The engineering units to be used for this object
UpdateInterval The update interval to be used for this object (WS points only)
Value The value of this object after any conversions that may be required

Andover Plain English Language Reference C-15

Area Attributes

Area Attributes
Table
The following list provides you with the attributes and meanings for
an Area object.
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmEnable Binary bitmap that corresponds to which of the eight alarm
positions are enabled
AlarmFaults Reflect fault status of any alarm link attached - not currently
implemented
AlarmFlags Bitmap of which alarms are active (as with alarmvalue) - not
currently implemented
Alarmgraphicpage Not currently implemented
AlarmInfo Indicates if alarms (advanced only on ws) are attached
Alias Alias of the object
BaseLink Not meaningful to the user
CreatedBy Name of user who created object
CreateTime Time of object creation
DeletePending Indicates if there is a delete action pending for this area
Description Description of Object
DeviceID Name of the device owning the object
DeviceModel Not Currently Implemented
DistPending Not meaningful to the user
EditLock Indicates if object has been locked to additional Edits
FollowUpRule Not meaningful to the user
Graphics Not meaningful to the user
IconID Not Meaningful to the User
ID SQL Object ID - Not meaningful to the user
IncludeObject Not meaningful to the user
KnownOccupCount Number of occupants currently in an area
LastChangeBy Name of the user making the last change
LockedBy Not Currently Implemented

Schneider Electric C-16

Area Attributes

Area Attributes
Table continued
Attribute Description
LockingWorkstation Not Currently Implemented
Name Name of the object
NetworkNumber Not meaningful to the user
Owner Owner of object
Properties Not meaningful to the user
ReferencePoint1
ReferencePoint4
Alarm Referenece Point
RefTemplate Name and path of template from which object was created
ReportID Not meaningful to the user
ScheduleEvents Not viewable by user
SecurityLevel Name and path of any security level attached to the object
State Indicates if an object has been enabled or disabled
Template When true, indicates that object was made from a template
TemplateAlias Alias that will be used when creating objects from this template
object - meaningful only for templates
TemplateCreateRule Not meaningful to user
TemplateName Name that will be used when creating objects from this template
object - meaningful only for templates
TimeLocked The time the object was last opened
Type The type of the object

Andover Plain English Language Reference C-17

AreaLink Attributes

AreaLink
Attributes
Table
The following list provides you with the attributes and meanings for an
AreaLink object.

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

Schneider Electric C-18

BinaryInput Attributes

BinaryInput
Attributes Table
The following list provides you with the attributes and meanings for a
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.
Alarm1Alarm8 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)

Andover Plain English Language Reference C-19

BinaryInput Attributes

BinaryInput
Attributes Table
continued
Attribute Description
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
InactiveText Text to be displayed when object is in inactive state.
IncludeObject Not Meaningful to the User
IOU IOU number of object
LastChangeBy Name of the user making the last change
LCDSettable Capable of being set from the LCD
LockedBy Not Currently Implemented
LockingWorkstation Not Currently Implemented
LogIntervalSecs Number of seconds between entries in an automatic log
LowLimit Low limit to be used in Basic Alarms (WS points only)
Name Name of the object
NetworkNumber Not Meaningful to the User
NotifyType Type of notification to be used
OutOfService Service state of an object (similar to enable/disable - WS points
only)
Owner Owner of object
Polarity Polarity (NO vs NC)
Properties Not Meaningful to the User
ReferencePoint1
ReferencePoint4
Alarm Referenece Point
RefTemplate Name and path of template from which object was created
Reliability Statement of the reliability of the obect's value - not currently
implemented
ReportID Not Meaningful to the USer
ScheduleEvents Not viewable by user
SecurityLevel Name and path of any security level attached to the object
Size Number of elements in an object's manual array or automatic
log
StatusFlags Not Meaningful to the User
Template When true, indicates that object was made from a template
TemplateAlias Alias that will be used when creating objects from this template
object - meaningful only for templates
TemplateCreateRule Not meaningful to user

Schneider Electric C-20

BinaryInput Attributes

BinaryInput
Attributes Table
continued
Attribute Description
TemplateName Name that will be used when creating objects from this
template object - meaningful only for templates
TimeDelay The time delay used in evaluating Basic Alarms (WS points
only)
TimeLocked The time the object was last opened
TimeofActiveTime
Reset
Time stamp of most recent time that the active state was reset
TimeofStateCount
Reset
Time stamp of most recent time that the state counter was reset
Type The type of the object
Value The value of this object after any conversions that may be
required

Andover Plain English Language Reference C-21

BinaryOutput Attributes

BinaryOutput
Attributes Table
The following list provides you with the attributes and meanings for a
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.
Alarm1Alarm8 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

Schneider Electric C-22

BinaryOutput Attributes

BinaryOutput
Attributes Table
continued
Attribute Description
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
InactiveText Text to be displayed when object is in inactive state.
IncludeObject Not Meaningful to the User
IOU IOU number of object
LastChangeBy Name of the user making the last change
LCDSettable Capable of being set from the LCD
LockedBy Not Currently Implemented
LockingWorkstation Not Currently Implemented
LogIntervalSecs Number of seconds between entries in an automatic log
LowLimit Low limit to be used in Basic Alarms (WS points only)
MinimumOffTime Point will be latched at inactive value for this time
MinimumOnTime Point will be latched at active value for this time
Name Name of the object
NetworkNumber Not Meaningful to the User
NotifyType Type of notification to be used
OutOfService Service state of an object (similar to enable/disable - WS points
only)
OverrideValue Actual value of output as set by person overriding it
Owner Owner of the object
Polarity Polarity (NO vs NC)
Properties Not Meaningful to the User
ReferencePoint1
ReferencePoint4
Alarm Referenece Point
RefTemplate Name and path of template from which object was created
Reliability Statement of the reliability of the obect's value - not currently
implemented
RelinquishDefault The priority value the BinaryOuput is set to when all command
priorities have been relinquished.
ReportID Not Meaningful to the USer

Andover Plain English Language Reference C-23

BinaryOutput Attributes

BinaryOutput
Attributes Table
continued
Attribute Description
ScheduleEvents Not viewable by user
SecurityLevel Name and path of any security level attached to the object
Size Number of elements in an object's manual array or automatic
log
StatusFlags Not Meaningful to the User
Template When true, indicates that object was made from a template
TemplateAlias Alias that will be used when creating objects from this template
object - meaningful only for templates
TemplateCreateRule Not meaningful to user
TemplateName Name that will be used when creating objects from this
template object - meaningful only for templates
TimeDelay The time delay used in evaluating Basic Alarms (WS points
only)
TimeLocked The time the object was last opened
TimeofActiveTimeR
eset Time stamp of most recent time that the active state was reset
TimeofStateCountRe
set Time stamp of most recent time that the state counter was reset
Type The type of the object
Value The value of this object after any conversions that may be
required

Schneider Electric C-24

BinaryValue Attributes

BinaryValue
Attributes Table
The following list provides you with the attributes and meanings for
a BinaryValue object.
Attribute Description
AckedTransitions Not meaningful to user - Currently not supported
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
ActiveText Text to be displayed when object is in active state.
Alarm1Alarm8 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)

Andover Plain English Language Reference C-25

BinaryValue Attributes

BinaryValue
Attributes Table
continued
Attribute Description
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.
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.
MinimumOffTime Point will be latched at inactive value for this time
MinimumOnTime Point will be latched at active value for this time
Name Name of the object
NetworkNumber Not meaningful to the user
NotifyType Type of notification to be used
OutOfService Service state of an object (similar to enable/disable - WS
points only)
Owner Owner of object
Properties Not meaningful to the user
ReferencePoint1
ReferencePoint4
Alarm Referenece Point
RefTemplate Name and path of template from which object was created
Reliability Statement of the reliability of the obect's value - not currently
implemented
ReportID Not meaningful to the user
ScheduleEvents Not viewable by user
SecurityLevel Name and path of any security level attached to the object
Size Number of elements in an object's manual array or automatic
log
StatusFlags Not Meaningful to the User
Template When true, indicates that object was made from a template
TemplateAlias Alias that will be used when creating objects from this
template object - meaningful only for templates
TemplateCreateRule Not meaningful to user
TemplateName Name that will be used when creating objects from this
template object - meaningful only for templates

Schneider Electric C-26

BinaryValue Attributes

BinaryValue
Attributes Table
continued
Attribute Description
TimeDelay The time delay used in evaluating Basic Alarms (WS points
only)
TimeLocked The time the object was last opened
TimeofActiveTimeReset Time stamp of most recent time that the active state was
reset
TimeofStateCountReset Time stamp of most recent time that the state counter was
reset
Type The type of the object
Value The value of this object after any conversions that may be
required

Andover Plain English Language Reference C-27

Calander Attributes

Calander
Attributes
Table
The following list provides you with the attributes and meanings for a
Calander object.

Attribute Description
Description Description of object
Value A Boolean value that indicates if the current date is contained
in the Calendar object
DateList Not maningful to the user
CalendarEntryNam e Not meaningful to the user

Schneider Electric C-28

ClassName Attributes

ClassName
Attributes
Table
The following list provides you with the attributes and meanings for a
ClassName object.

Attribute Description
ObjectTypeID Not meaningful to the user
ObjectTypeName Not meaningful to the user

Andover Plain English Language Reference C-29

CommPort Attributes

CommPort
Attributes Table
The following list provides you with the attributes and meanings for a
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
Alarm1Alarm8 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

Schneider Electric C-30

CommPort Attributes

CommPort
Attributes Table
continued
Attribute Description
DSR Data Send Ready
DTR Data Terminal Ready
EditLock Indicates if object has been locked to additional Edits
FlowControl Type of flow control that will be used by the port
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
HangUpCmd String to be sent to the built-in Continuummodem when a
hangup command is issued
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
Learn Set to true when the user attempts to gather information on all
Infinet devices attached to a port configured as Infinet
LockedBy Not Currently Implemented
LockingWorkstation Not Currently Implemented
MaxPrintCols
MaxPrintRows
MenuBar
Messages Indicates if there are currently messages in the message
window corresponding to the comm port
Mode Current operating mode of the comm port
ModemInit String to be sent to built-in Continuum modem on power-up.
Name Name of the object
NetworkNumber Not Meaningful to the User
NotChangeable Not Meaningful to the User
Owner Not Meaningful to the User
ParamLabels XDriver configuration value
Parity Parity setting of the port
PortNum SVC number corresponding to the port
PrintDone Indicates that the previous print instruction to the port is
complete
ProgramAttached Not Meaningful to the User
Properties Not Meaningful to the User
Reconfigs Indicates the number of bus reconfigurations that have occurred
- Meaningful only for Infinet ports
ReferencePoint1
ReferencePoint4
Alarm Referenece Point



Andover Plain English Language Reference C-31

CommPort Attributes

CommPort
Attributes Table
continued
Attribute Description
RefTemplate Name and path of template from which object was created
ReportID Not Meaningful to the USer
RequestedMode Not Meaningful to the User
Resume Not Meaningful to the User
RI Ring Indicator
RTS Ready to Send
ScheduleEvents Not viewable by user
SecurityLevel Name and path of any security level attached to the object
StartCharacter Character that will cause a window response when port is set to
autoset
State Indicates if an object has been enabled or disabled
StatusBar The bar at the bottom of the screen when the port is configured
as autoset
StopBits Number of stop bit for port
Template When true, indicates that object was made from a template
TemplateAlias Alias that will be used when creating objects from this template
object - meaningful only for templates
TemplateCreateRule Not meaningful to user
TemplateName Name that will be used when creating objects from this
template object - meaningful only for templates
TerminalType The type of terminal emulation to be used when port is set to
autoset
TimedOut Indicates that the port has timed out of its previous instruction
TimeLocked The time the object was last opened
TimeOutValue Value to be assumed after the time out
TrackCXD Disconnect port and revert to default mode upon loss of carrier
TransmitCount Number of transmissions
Type The type of the object
Windows
XDriverErrCount Number of errors encountered in communication via an Xdriver
to a third party device
XdriverError Type of error encountered in communication via an Xdriver to
a third party device
XdriverErrTime Time of error encountered in communication via an Xdriver to
a third party device
XdriverFile File to be used when reloading to install Xdriver
XdriverStatus Status of Xdriver communication


Schneider Electric C-32

ControllerUser Attributes

ControllerUser
Attributes Table
The following list provides you with the attributes and meanings for
a ControllerUser object.

Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1Alarm8 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

Andover Plain English Language Reference C-33

ControllerUser Attributes

ControllerUser
Attributes Table
continued
Attribute Description
LoginProgram InfinityProgram to be run at controller when user logs in
LogOutProgram InfinityProgram to be run at controller when user logs out
Name Name of the object
NetworkNumber Not Meaningful to the User
Owner Not Meaningful to the User
Preemption Not Meaningful to the User
Properties Not Meaningful to the User
ReferencePoint1
ReferencePoint4
Alarm Referenece Point
RefTemplate Name and path of template from which object was created
ReportID Not Meaningful to the USer
ScheduleEvents Not viewable by user
State Indicates if an object has been enabled or disabled
Template When true, indicates that object was made from a template
TemplateAlias Alias that will be used when creating objects from this template
object - meaningful only for templates
TemplateCreateRule Not meaningful to user
TemplateName Name that will be used when creating objects from this
template object - meaningful only for templates
TimeLocked The time the object was last opened
Type The type of the object
VirtualFlag Not Meaningful to the User

Schneider Electric C-34

DateTime Attributes

DateTime
Attributes Table
The following list provides you with the attributes and meanings for
a DateTime object.
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
Alarm1Alarm8 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)

Andover Plain English Language Reference C-35

DateTime Attributes

DateTime
Attributes Table
continued
Attribute Description
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 Not Currently Implemented
LogValue Not Currently Implemented
LowLimit Low limit to be used in Basic Alarms (WS points only)
Name Name of the object
NetworkNumber Not Meaningful to the User
NotifyType Type of notification to be used
OutOfService Service state of an object (similar to enable/disable - WS
points only)
Owner Owner of object
Properties Not meaningful to user
ReferencePoint1
ReferencePoint4
Alarm Referenece Point
RefTemplate Name and path of template from which object was created
Reliability Statement of the reliability of the obect's value - not currently
implemented
ReportID Not Meaningful to the USer
ScheduleEvents Not viewable by user
SecurityLevel Name and path of any security level attached to the object
Size Number of elements in an object's manual array or automatic
log
StatusFlags Not Meaningful to the User
Template When true, indicates that object was made from a template
TemplateAlias Alias that will be used when creating objects from this
template object - meaningful only for templates
TemplateCreateRule Not meaningful to user
TemplateName Name that will be used when creating objects from this
template object - meaningful only for templates
TimeLocked The time the object was last opened
TimeValue Time portion of the date time object
Type The type of the object
Value The value of this object after any conversions that may be
required

Schneider Electric C-36

Device Attributes

Device
Attributes Table
The following list provides you with the attributes and meanings for
a Device object.
Attribute Description
AccessEventViewer
MaxEntries
Maximum number of entries allowed in the access viewer for
this workstation
AcknowledgeEmail
FormatFile
Default location of this type of format file
AcknowledgePager
FormatFile
Default location of this type of format file
AcknowledgePrinter
FormatFile
Default location of this type of format file
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
Alarm1Alarm8 Equals "on" if alarm attached in this position is in alarm else
equals "off"
AlarmCount Number of alarms currently in alarm viewer
AlarmEmailFormat
File
Default location of this type of format 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
File
Default location of this type of format file
AlarmPrinterFormat
File
Default location of this type of format file
AlarmPrinterPath Full path to the printer for alarm printing
AlarmViewerMax
Entries
Maximum number of entries allowed in the alarm viewer for
this workstation
Alias Alias of the object
APDUSegTimeout Time in milliseconds between retransmission of an APDU
(Application Protocol Data Unit) segment

Andover Plain English Language Reference C-37

Device Attributes

Device
Attributes Table
continued
Attribute Description
APDUTimeout Time in milliseconds between retransmission of an APDU
segment that requires ack but that has not been received.
ApplSoftwareVer Application software version
BackupFailureTimeout Device being backed up or restored must wait before ending
the backup or restore procedure.
BasdgeFormatFile
Location
Default location of this type of format file
BaseLink Meaningless to the user
CommandlinePrompt Prompt to be used on the command line
CommStatus Communication status of device
ConfigurationFileList File objects contained in the Configuration File List property
for that device
CreatedBy Name of user who created object
CreateTime Time of object creation
DaylightSavings
Status
States if device is currently under DST
DefaultBadgeFormat Format file to be used when printing badges
DefaultFolder Folder into which all new objects will be placed when
created.
DefaultImageCropping True/False as to the use of the default image cropping
DefaultReportViewer Program to use for the viewing of report files
DefaultRouter IP address of the 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
FirmwareRev Not meaningful to user
FolderType Not Meaningful to the User.
FollowUpRule Not Meaningful to the User
Graphics Not Meaningful to the User
IAMBroadcastIntvl Not Currently Implemented
IAMBroadcastScope Not Currently Implemented
IAMRemoteNetwork Not Currently Implemented
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
IncludeObject Not Meaningful to the User
IncrementReportFile If true subsequent reports by the same name will be appended
to existing report file

Schneider Electric C-38

Device Attributes

Device
Attributes Table
continued
Attribute Description
IPAddress IP address of the device
LastBackupTime When the device was backed up last time
LastChangeBy Name of the user making the last change
LastRestoredFilePath The last restored file path from the local drive
LastRestoreTime When the device was restored last time
LocalDate Date at the device
LocalTime Time at the device
Location A string that can be used to specify the physical location of
the device
LockedBy Not Currently Implemented
LockingWorkstation Not Currently Implemented
MainMenuFile Name and path to the file that is displayed upon startup
MaxAPDUAccepted Number of octets that may be contained in a single APDU
MaxResponseTime Amount of time the controller will wait for a response to a
request before timing out. Not PE settable.
ModelName ContinuumCyberStation
Name Name of the object
NetworkFlag Not Meaningful to the User
NetworkNumber Not Meaningful to the User
NumberAPDURetries Maximum number of tries for an APDU to be retransmitted
OperatorTextAlarmAck Indicates if the operator is required to enter text on alarm
acknowledgement (requires CFR setting)
Owner Owner of this device
PrimaryAccessServer Indicates if the device should carry on the functions of
primary access server
ProbeTime Frequency in seconds that the device will confirm the
communication status of other devices
Properties Not Meaningful to the User
ProtocolConfClass A number that indicates which specific set of standardized
protocol services and object classes are supported
ProtocolObjectTypes
Support
Object classes that are supported
ProtocolServicesSupport Services that are supported
ProtocolVersion Version of BACNet protocol supported - Not implemented
at this time
ReferencePoint1
ReferencePoint4
Alarm Referenece Point
RefTemplate Name and path of template from which object was created
ReportID Not Meaningful to the USer

Andover Plain English Language Reference C-39

Device Attributes

Device
Attributes Table
continued
Attribute Description
ScheduleADL Indicates if device is set to autodownload schedules
ScheduleEvents Not viewable by user
SecondaryAccessServer Indicates if it device will satisfy requirements of the
secondary access server
SecurityLevel Name and path of any security level attached to the object
SegmentationSupport Indicates if this device supports segmentation of messages
and, if so, if it supports transmission, reception or both.
StatusFlags Not Meaningful to the User
SubnetMask Subnet mask of device
SystemStatus Indicates ONLINE, OFFLINE and OUT OF SERVICE
Template When true, indicates that object was made from a template
TemplateAlias Alias that will be used when creating objects from this
template object - meaningful only for templates
TemplateCreateRule Not meaningful to user
TemplateName Name that will be used when creating objects from this
template object - meaningful only for templates
TimeLocked The time the object was last opened
Type The type of the object
Units The engineering units to be used for this object
UTCOffset Universal Time Coordinate offset in minutes
VendorIdentifier Number that corresponds to the BACNet vendor of this
device
VendorName Name of the BACNet vendor of this device

Schneider Electric C-40

DistributionBatch Attributes

DistributionBatch
Attributes Table
The following list provides you with the attributes and meanings for a
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

Andover Plain English Language Reference C-41

DistributionObject Attributes

DistributionObject
Attributes Table
The following list provides you with the attributes and meanings for a
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

Schneider Electric C-42

Door Object Attributes

Door Object
Attributes Table
The following list provides you with the attributes and meanings for a
Door object.
Attribute Description
AckTranstoFault Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Fault
AckTranstoNorm Binary bitmap that corresponds to the alarm number that has
made a transition back to Normal
AckTranstoOffNorm Binary bitmap that corresponds to the alarm number that has
made a transition from normal to Alarm
ADAChannel Terminal number into which this object is wired
ADADoorAjarTime Time required for door to be considered ajar
ADAOutputTime Time duration of relay activation on door open command
Alarm1Alarm8 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

Andover Plain English Language Reference C-43

Door Attributes

Door Attributes
Table continued
Attribute Description
DoorAjar Indicates that the door has been left open too long
DoorAjarTime Time required for door to be considered ajar
DoorChannel Terminal number into which this object is wired
DoorFault True/false depending on status of supervised input
DoorSchedule Name of the schedule attached to this door
DoorStrikeTime Time duration of relay activation on door open command
DoorSwitch Indicates if a door switch input is used
DoorSwitchChan Terminal number into which this object is wired
DoorSwitchType Wiring type - NOSeries, etc.
Duress Indicates if duress notification is to be used
EditLock Indicates if object has been locked to additional Edits
EntEgrViol Indicates if there is an entry/egress violation
EntryNormMode Indicates if entry took place in normal mode
EntryNotReentry Indicates if entry took place with no reentry permitted
EntryPinDuress Indicates if entry via pin was duress
EntryRvrsCrdDur Indicates if entry via reverse card was duress
EntrySchedule Schedule attached to the entry reader
EntryZone Zone entered through entry reader
ExitAntiPassTime Time required for passback through this door to be permitted
ExitArea Area entered from exit reader
ExitChannel Terminal number into which this object is wired
ExitCount Number of people who have exited
ExitEntEgr
ExitEntrAntiPass
ExitEntrEntEgr
ExitEntrRvrsCrd Allow entry through exit door on reverse card
ExitIOU IOU number of object
ExitKyPdChan Terminal number into which this object is wired
ExitLastCard Last card number have valid access through exit reader
ExitLastSite Site code of last card number have valid access through exit
reader
ExitMode Mode of Exit reader
ExitNoCommMode Exit reader in nocomm mode
ExitNoDataMode Exit reader in no data mode - no communication with access
server
ExitNoRentry Indicates if exit took place with no reentry

Schneider Electric C-44

Door Attributes

Door Attributes
Table continued
Attribute Description
ExitNormMode Indicates exit in normal mode
ExitPinDuress Indicates exit with pin duress
ExitRequest Indicates the presence of PIR or some form exit request sensor
ExitRequestChan Terminal number into which this object is wired
ExitRequestType Wiring type - NOSeries, etc.
ExitRvrsCrdDur Indicates exit via a reverse card duress signal
ExitSchedule Schedule attached to the exit reader
ExitZone Zone entered when going through the exit reader
Export Indicates that the object value has been tagged for export.
FollowUpRule Not Meaningful to the User
ForcedEntry Indicates that the door has been forced open
GeneralCode
Graphics Not Meaningful to the User
IconID Not Meaningful to the User
ID SQL Object ID - Not Meaningful to the User
ExitEntrRvrsCrd Allow entry through exit door on reverse card
IncludeObject Not Meaningful to the User
InvalidAttempt Indicates an invalid card was used
InvalidEntryTime Indicates an attempt to enter before proper antipassback time
has elapsed
InvalidExitTime Indicates an attempt to exit before proper antipassback time has
elapsed
Invert Revers Polarity
LastChangeBy Name of the user making the last change
LastDepEtrdPnt
LastDepExitdPnt
LastInvalidEntry Last invalid card swiped at entry reader
LastInvalidExit Last invalid card swiped at exit reader
LastPersonEntrd Last cardholder entering door
LastPersonEntrdDep Department number of last person entered
LastPersonExitd Last person with valid swipe at the exit reader
LastPersonExitdDep Department number of the last person with valid swipe at the
exit reader
LCDSettable Capable of being set from the LCD
LockedBy Not Currently Implemented

Andover Plain English Language Reference C-45

Door Attributes

Door Attributes
Table continued
Attribute Description
LockingWorkstation Not Currently Implemented
Name Name of the object
NetworkNumber Not Meaningful to the User
OpenOnExitRequest Indicates that door to be opened upon sensing exit request on
exit request input
OperatingMode Current operating mode of the door
Override Indicates if the door has been overridden in the field
OverrideValue Indicates the true value of the door when it has been overridden
in the field
Owner Object that owns this door object
Param1Param6 XDriver configuration value
Port Com