0% found this document useful (0 votes)
8 views

PPCL

Uploaded by

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

PPCL

Uploaded by

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

APOGEE Powers Process

Control Language (PPCL)


User’s Manual
125-1896 Rev. 6, May, 2006
Rev. 6, May, 2006

Notice

Document information is subject to change without notice and should not be


construed as a commitment by Siemens Building Technologies, Inc. Companies,
names, and various data used in examples are fictitious unless otherwise noted.
No part of this document may be reproduced or transmitted in any form or by any
means, electronic or mechanical, for any purpose, without the express written
permission of Siemens Building Technologies, Inc.

All software described in this document is furnished under a license agreement


and may be used or copied only in accordance with license terms.

For further information, contact your nearest Siemens Building Technologies, Inc.
representative.

Copyright 2006 Siemens Building Technologies, Inc.

Credits

APOGEE and Insight are registered trademarks of Siemens Building


Technologies, Inc.

Other product or company names mentioned herein may be the trademarks of


their respective owners.

Printed in U.S.A.

Comments

Your feedback is important to us. If you have comments about this manual,
please submit them to [email protected].
APOGEE PPCL User’s Manual

Multiplication ...........................................................................1-26
Table of Contents Subtraction ..............................................................................1-27
Arithmetic Functions ......................................................................1-28
Arc-Tangent (ATN)..................................................................1-29
Complement (COM) ................................................................1-30
How to Use This Manual.......................................................................VII
Cosine (COS)..........................................................................1-31
Introduction .......................................................................................VII
Natural Antilog (EXP) ..............................................................1-32
Manual Organization .......................................................................VIII
Natural Log (LOG)...................................................................1-33
Manual Conventions..........................................................................IX
Root (.ROOT.).........................................................................1-34
Syntax Page Example ........................................................................X
Sine (SIN)................................................................................1-35
Compatibility bar .........................................................................XI
Square Root (SQRT)...............................................................1-36
Syntax ........................................................................................XII
Tangent (TAN) ........................................................................1-37
Use .............................................................................................XII
Special Functions ..........................................................................1-38
Notes (if applicable) ..................................................................XIII
Alarm priority (ALMPRI) ..........................................................1-39
See also (if applicable)..............................................................XIII
Totalized value (TOTAL) .........................................................1-41
Where To Send Comments .............................................................XIII
Order of Precedence .....................................................................1-42
Chapter 1–Program Methodology ......................................................1-1 Changing Precedence Levels with Parentheses ....................1-43
Overview..........................................................................................1-1 Resident Points..............................................................................1-46
Introduction to PPCL .......................................................................1-3 Alarm count (ALMCNT)...........................................................1-47
PPCL Rules .....................................................................................1-4 Alarm count 2 (ALMCT2) ........................................................1-48
General PPCL Rules.................................................................1-4 Battery condition ($BATT).......................................................1-49
Defining Points in a PPCL Program..........................................1-6 Decimal time (CRTIME) ..........................................................1-50
Rules for Naming Points ...........................................................1-6 Day (DAY) ...............................................................................1-51
Rules for Naming a PPCL Program ..........................................1-7 Day of the month (DAYOFM)..................................................1-52
PPCL Program Design Guidelines ..................................................1-8 Communications link (LINK) ...................................................1-53
Designing a Program that is Easy to Maintain..........................1-8 Month (MONTH)......................................................................1-54
Designing a Program that Operates Efficiently.........................1-9 Node number (NODE0 through NODE99)..............................1-55
Relational Operators......................................................................1-10 PDL monitor ($PDL)................................................................1-56
Equal to (.EQ.) .......................................................................1-11 Seconds counter (SECNDS)...................................................1-57
Greater than or equal to (.GE.) ...............................................1-12 Seconds counters (SECND1 through SECND7) ....................1-58
Greater than (.GT.)..................................................................1-13 Military time (TIME) .................................................................1-59
Less than or equal to (.LE.).....................................................1-14 Local Variables ..............................................................................1-60
Less than (.LT.) .......................................................................1-15 $ARG1 through $ARG15 ........................................................1-61
Not equal to (.NE.) ..................................................................1-16 $LOC1 through $LOC15 .........................................................1-63
Logical Operators ..........................................................................1-17 Point Priority Overview ..................................................................1-64
And (.AND.).............................................................................1-18 APOGEE and pre-APOGEE Point Priority Levels ..................1-64
Not And (.NAND.)....................................................................1-19 BACnet Priority Array ..............................................................1-66
Or (.OR.) .................................................................................1-20 At (@) Priority Status Indicators ....................................................1-68
Exclusive Or (.XOR.)...............................................................1-21 Testing Point Priorities ............................................................1-68
Arithmetic Operators......................................................................1-22 Commanding Points to a Specific Priority...............................1-68
Addition ...................................................................................1-23 Pre-APOGEE Firmware ..........................................................1-69
Assignment .............................................................................1-24 At (@) Priority Status Indicators Supported............................1-71
Division....................................................................................1-25 Emergency (@EMER) ............................................................1-72
Siemens Building Technologies, Inc. I II Siemens Building Technologies, Inc.
Table of Contents APOGEE PPCL User’s Manual

PPCL (@NONE) .....................................................................1-73 Start/Stop Time Optimization (SSTO) ...........................................2-10


Operator (@OPER).................................................................1-74 Where to Use SSTO ...............................................................2-10
Peak Demand Limiting (@PDL)..............................................1-75 Defining SSTO ........................................................................2-11
Smoke (@SMOKE) .................................................................1-76 How SSTO Adjusts the Start and Stop Times ........................2-11
Point Status Indicators...................................................................1-77 SSTO Formulas ......................................................................2-13
Failed Point Values .................................................................1-77 Time-of-Day (TOD)........................................................................2-22
Determining Point Status ........................................................1-77 Where to Use TOD..................................................................2-22
Commanding and evaluating the HAND status ......................1-78 Defining Time-Of-Day .............................................................2-22
Point Status Indicators Supported ..........................................1-80 IF/THEN/ELSE Time-Of-Day ..................................................2-26
Alarm (ALARM) .......................................................................1-82 APOGEE Interaction with PPCL TOD.....................................2-27
Alarm acknowledge (ALMACK) ..............................................1-83
Chapter 3–Command Syntax ..............................................................3-1
Auto (AUTO) ...........................................................................1-85
Overview..........................................................................................3-1
Battery status—discharged (DEAD) .......................................1-86
ACT (Activate lines) ..................................................................3-4
Battery status—almost discharged (LOW) .............................1-87
ADAPTM (Adaptive control, multiple) .......................................3-5
Battery status—charged (OK).................................................1-88
ADAPTS (Adaptive control, single) .........................................3-16
Day mode (DAYMOD).............................................................1-89
ALARM (Alarm state) ..............................................................3-24
Failed (FAILED) ......................................................................1-90
AUTO (Auto status).................................................................3-25
Fast (FAST).............................................................................1-91
DAY (Day mode) .....................................................................3-26
Manual override (HAND).........................................................1-92
DBSWIT (Dead band switch) ..................................................3-27
Night mode (NGTMOD) ..........................................................1-93
DC (Duty cycle) .......................................................................3-29
Off (OFF) .................................................................................1-94
DCR (Duty cycle routine) ........................................................3-31
On (ON)...................................................................................1-95
DEACT (Deactivate lines) .......................................................3-33
Proof on (PRFON)...................................................................1-96
DEFINE (Define abbreviation) ................................................3-34
Slow (SLOW) ..........................................................................1-97
DISABL (Disable lines) ...........................................................3-35
Converting a Sequence of Operation into Program Code.............1-98
DISALM (Disable alarm) .........................................................3-36
Guidelines ...............................................................................1-98
DISCOV (Disable COV) ..........................................................3-37
Designing Programs Using a Modular Structure ....................1-99
DPHONE (Disable phone) ......................................................3-38
Subroutine Commands .........................................................1-102
EMAUTO (Emergency, Auto status) .......................................3-39
Multiple Programs versus Subroutines .................................1-103
EMFAST (Emergency, Fast status) ........................................3-40
Program Testing....................................................................1-104
EMOFF (Emergency, Off status) ............................................3-41
Program Documentation .......................................................1-105
EMON (Emergency, On status) ..............................................3-42
Chapter 2–Control Option Comparisons ...........................................2-1 EMSET (Emergency, set value)..............................................3-43
Overview..........................................................................................2-1 EMSLOW (Emergency, Slow status) ......................................3-44
Duty Cycling (DC) ............................................................................2-2 ENABLE (Enable lines) ...........................................................3-45
Duty Cycling Commands ..........................................................2-3 ENALM (Enable alarm) ...........................................................3-46
Enthalpy and Dry Bulb Economizer Control ....................................2-4 ENCOV (Enable COV) ............................................................3-47
Example—Economizer Comparison .........................................2-4 EPHONE (Enable phone) .......................................................3-48
Enthalpy Economizer Calculations ...........................................2-5 FAST (Fast status) ..................................................................3-49
Peak Demand Limiting (PDL) ..........................................................2-6 GOSUB (Go to subroutine) .....................................................3-50
Why Use PDL?..........................................................................2-6 GOTO (Go to line)...................................................................3-57
Why Use PDL Instead of Duty Cycling? ...................................2-7 HLIMIT (High limit) ..................................................................3-58
PDL Application Programs........................................................2-7 HOLIDA (Holiday) ...................................................................3-59

Siemens Building Technologies, Inc. III IV Siemens Building Technologies, Inc.


Table of Contents APOGEE PPCL User’s Manual

IF/THEN and IF/THEN/ELSE (Conditional control) ................3-61


INITTO (Initialize totalized value)............................................3-63
LLIMIT (Low limit)....................................................................3-64
LOCAL (Local variable)...........................................................3-65
LOOP (Loop control) ...............................................................3-66
MAX (Maximum value)............................................................3-69
MIN (Minimum value) ..............................................................3-70
NIGHT (Night mode) ...............................................................3-71
NORMAL (Normal operating mode) .......................................3-72
OFF (Off status) ......................................................................3-73
OIP (Operator interface program) ...........................................3-75
ON (On status) ........................................................................3-78
ONPWRT (On after power return) ..........................................3-79
PDL (Peak demand limiting) ...................................................3-80
PDLDAT (PDL, define load attributes) ....................................3-83
PDLDPG (PDL, digital point group) ........................................3-85
PDLMTR (PDL, meter monitor)...............................................3-87
PDLSET (PDL, setpoints) .......................................................3-90
RELEAS (Release) .................................................................3-92
RETURN (Return/end subroutine) ..........................................3-94
SAMPLE (Sample a statement) ..............................................3-95
SET (Set point value) ..............................................................3-96
SLOW (Slow status)................................................................3-98
SSTO (Start/stop time optimization) .......................................3-99
SSTOCO (SSTO coefficients)...............................................3-102
STATE (State text command) ...............................................3-105
TABLE (Table of coordinates)...............................................3-106
TIMAVG (Average over time)................................................3-108
TOD (Time of day, digital points) ..........................................3-110
TODMOD (TOD modes) .......................................................3-112
TODSET (Time of day, analog points)..................................3-114
WAIT (Wait time)...................................................................3-116
Glossary .................................................................................. Glossary-1
Appendix A—PPCL Reserved Word List .......................................... A-1
Index .............................................................................................. Index-1

Siemens Building Technologies, Inc. V VI Siemens Building Technologies, Inc.


APOGEE PPCL User’s Manual

How to Use This Manual Manual Organization


The PPCL User's Manual contains the following chapters:

Introduction • Chapter 1 – Programming Methodology gives a complete


overview of the PPCL environment. This chapter includes
To effectively use this manual, you should be familiar with the discussions about relational, logical, and arithmetic operators, as
equipment controlled by the PPCL programming language. Some of well as information about precedence levels, resident points,
the ways you can become familiar with APOGEE products are as special functions, point priority, point status, and modular
follows: programming.

• Chapter 2 – Control Option Comparisons describes different


• Siemens Building Technologies, Inc. Training Classes
control applications, how they should be used, and how their
• Hands-on experience PPCL commands should be organized.

• Reading user documentation for the APOGEE Automation • Chapter 3 – Syntax lists all control commands. This chapter
System describes the syntax, functionality, and special exceptions for
each command, as well as related commands.
If you have knowledge or experience with HVAC equipment, the task
of learning the programming language becomes easier. • The Glossary describes the terms and acronyms used in this
manual.

• Appendix A lists the PPCL reserved word list.

• An Index is provided to help you locate information presented in


this manual.

Siemens Building Technologies, Inc. VII VIII Siemens Building Technologies, Inc.
How to Use This Manual APOGEE PPCL User’s Manual

Manual Conventions Syntax Page Example


The following table lists text conventions used in this manual. The following example of the DISALM command illustrates the five
sections of each syntax page.
Convention Example
Syntax commands are in ON
DISALM
uppercase and bolded Unitary pre-APOGEE APOGEE BACnet
Point names are in uppercase OATEMP Section 1
Compatibility Bar
Ž Ž Ž Ž
and italics
User-defined parameters are (pt1, pt2, pt3)
in lowercase and italics. This Section 2 Syntax
indicates parameters that you Syntax DISALM(pt1,...,pt16)
must specify depending on
your job. pt1 through pt16
610 IF (FANDO1.EQ.1.0) THEN ... Names of the points that should have alarm reporting
Error messages and computer disabled.
code are displayed in Courier
New font. If you are having problems with the computer,
Section 3 Use
the following message displays, Pinging
APOGEEPC [10.0.0.1] with 32 bytes Use This command disables the alarm printing capabilities for
specified points. Up to 16 points can be enabled for alarm
of data.
reporting by one command. The point status changes to
Three periods placed after 610 IF (FANDO1.EQ.1.0) THEN ... *PDSB* after it has been DISALMed.
program code denotes a
continuation of program code. Example
This convention is used to 50 IF (SFAN.EQ.OFF) THEN DISALM(ROOM1) ELSE
prevent programming ENALM(ROOM1)
examples from becoming
cluttered. Section 4 Notes
Notes (if applicable) This command cannot be used for points that do not reside in
the device in which the control program is written. DISALM
cannot be used to directly disable alarm reporting over the
network.

Section 5 See also


See Also (if ALARM, ENALM, HLIMIT, LLIMIT, NORMAL
applicable)

Siemens Building Technologies, Inc. IX X Siemens Building Technologies, Inc.


How to Use This Manual APOGEE PPCL User’s Manual

Syntax
Compatibility bar
The Syntax section provides the command format. You’ll also find a
The compatibility bar indicates if the command can be used with a description for each parameter in the command, as well as the valid
specific type of firmware. inputs and any calculations you may need.

• The symbol Ž indicates that the command is available in all


supported revisions of that type of firmware. Use
The Use section describes what function the command performs.
• A firmware revision number indicates the earliest firmware
Examples of program code are provided to show you how
revision that supports the command.
parameters and values are defined.
• No symbol or firmware revision number indicates the command is
not available in any revision of that type of firmware. Truth Tables
Figure 1 shows the command can be used in APOGEE Firmware Truth tables help explain conditional and comparison logic. Inputs
Revision 2.4 and later, as well as all revisions of BACnet Firmware. are defined in the truth table, and then they are logically compared to
The command is not available in Unitary or pre-APOGEE firmware. produce outputs (results). See following example to better
understand the concept of truth tables.
Unitary pre-APOGEE APOGEE BACnet
2.4 and later Ž Example
To use a truth table, first identify the objects you want to compare. In
Figure 1. Symbols Used in the Compatibility Bar. this example, a comparison will be made between an object selected
with you’re the your left and an object selected with your right hand.
Types of Firmware
Imagine that you have a barrel of apples and oranges. You reach
The following types of firmware are currently available: into the barrel and randomly select one piece of fruit with each hand.
Table 1 shows the possible conclusions you can reach.
• Unitary firmware uses a subset of PPCL commands found in
pre-APOGEE firmware. Table 1. Comparing Apples to Oranges.
• Pre-APOGEE Firmware (Revisions 12.5/1.5 and 12.51/1.51) are Items Right hand Right hand
mainly used in Controller Modules and early revisions of Open orange apple
Processors. Same Different
Left hand orange
• APOGEE Firmware (Revision 2.x) is used in APOGEE field Left hand apple Different Same
panels.
Let’s say you are holding an orange in your left hand and an apple in
• BACnet firmware uses most of the PPCL commands found in your right hand. Locate the first input, Left hand orange, in the
APOGEE firmware. heading along the left side of the table. Locate the second input,
The main differences between these types of firmware are how point Right hand apple, in the heading across the top of the table. The box
priority indicators and point status indicators are used. For more where the vertical and horizontal rows intersect is the output (result)
information, see Chapter 2 – Control Option Comparisons. of the comparison. In this case, the objects in your left hand and right
hand are different.

Siemens Building Technologies, Inc. XI XII Siemens Building Technologies, Inc.


How to Use This Manual APOGEE PPCL User’s Manual

Even though truth tables compare more complex items than apples
and oranges, the method for determining the result is always the
same.

Notes (if applicable)


The Notes section contains helpful hints that relate to how the
command operates, as well as specific details for commonly missed
items and subsequent errors in the program.

See also (if applicable)


The See also section directs you to other commands, operators, or
sections that are related to the command.

Where To Send Comments


Your feedback is important to us. If you have comments about this
manual, please submit them to [email protected].

Siemens Building Technologies, Inc. XIII XIV Siemens Building Technologies, Inc.
APOGEE PPCL User’s Manual

• Using Resident Points and Storage Locations for Data


Chapter 1–Program Methodology — Resident Points

— Local Variables
Overview • Understanding the Relationship Between Point Priority and
Status
Chapter 1 contains information related to the design, coding, and
implementation of a program. The following concepts are discussed — Point Priority Overview
in this chapter: — At (@) Priority Status Indicators
• Introduction to PPCL — Point Status Indicators
• PPCL Rules • Converting a Sequence of Operation into Program Code
— General PPCL Rules — Guidelines
— Defining Points in a PPCL Program — Designing Programs Using a Modular Structure
— Rules for Naming Points — Subroutine Commands
— Rules for Naming a PPCL Program — Multiple Programs versus Subroutines
• PPCL Program Design Guidelines — Program Testing
— Designing a Program that is Easy to Maintain
— Program Documentation
— Designing a Program that Operates Efficiently

• Making Comparisons
— Relational Operators

— Logical Operators

— Arithmetic Operators

• Performing Mathematical Functions and Calculations


— Arithmetic Functions

— Special Functions

• Order of Precedence
— Changing Precedence Levels with Parentheses

Siemens Building Technologies, Inc. 1-1 1-2 Siemens Building Technologies, Inc.
Program Methodology—Introduction to PPCL APOGEE PPCL User’s Manual

Introduction to PPCL PPCL Rules


Imagine trying to control the environment of a 40-story building Just as grammatical rules are used for the spoken language, PPCL
without the use of a computer. Suddenly, a large number of daily uses rules to create commands and instructions. Each PPCL
functions that are controlled by computers would have to be program must conform to these rules; otherwise, the computer will
controlled by hand. For example, to prepare the building for daily not understand what you are trying to say.
occupancy, you would have to go to every floor and manually adjust
the setpoint for each control device. • Program lines are executed in ascending order according to their
line numbers, unless directed otherwise.
Even though computers are very powerful devices, they need
instructions in order to process information correctly. The instructions • When the last line of the program is reached, the computer
that the computer uses are in the form of a programming language. automatically returns to the first line of the program and continues
The programming language used with the APOGEE Automation processing.
System is called Powers Process Control Language (PPCL).
General PPCL Rules
PPCL is a high-level language developed specifically to control
Heating, Ventilating, and Air Conditioning (HVAC) equipment; it uses The general rules for PPCL are as follows:
a text-based programming structure like BASIC.
• Each PPCL program contains one or more PPCL statements.
There is much more to writing a PPCL program than putting
instructions and commands together. • Each PPCL statement must be assigned a unique line number.
Valid program line numbers are 1 through 32,767.
• Programs should be logically thought out and their processes
understood before writing program code. • The maximum number of program lines a device can contain is
limited to the amount of free memory of that device.
• Programs can be organized differently, but still perform the same
function. • When transferring program control from a subroutine, you must
use the RETURN command.
• Although certain programming techniques can work better than
others, no one program is the best solution. • For APOGEE firmware only, each field panel running PPCL
contains one or more separate programs.

• For APOGEE firmware only, the last line of the program does not
need to be executed on every pass of the program. For Unitary
and pre-APOGEE firmware, the last line of the program must be
executed on every pass of the program.

Maximum Number of Characters per Program Line

APOGEE and BACnet Firmware


When entering program lines through an APOGEE field panel HMI or
MMI port, the maximum number of characters per line is 66
(including the line number).
Siemens Building Technologies, Inc. 1-3 1-4 Siemens Building Technologies, Inc.
Program Methodology—PPCL Rules APOGEE PPCL User’s Manual

• If you need to enter more characters, enter an ampersand (&) at Defining Points in a PPCL Program
the end of the line and continue entering characters on the next
line. • All physical and virtual points used in the program must be
defined in the point database.
• The maximum number of characters allowed on a total of three
lines of code is 198 characters (including the ampersands and • Point names that begin with numbers must be prefixed with the at
line numbers). (@) character.

Pre-APOGEE Firmware • Point names that are greater than 6 characters must be enclosed
in double quotes.
When entering program lines through a pre-APOGEE field panel
MMI port, the maximum number of characters per line is 72. • Point names that use characters other than A-Z or 0-9 must be
enclosed in double quotes.
• If you need to enter more characters, enter an ampersand (&) at
the end of the line and continue entering characters on the next Example
line. 560 ON(B2SFN,”BUILDING1.AHU01.SFAN”)
• The maximum number of characters allowed on both lines of • The first point (B2SFN) does not require quotes.
code is 144 characters (including the ampersand).
• The second point (BUILDING1. AHU01.SFAN) is greater than six
Maximum Number of Characters per Comment Line characters and requires quotes.

When entering comment lines through an APOGEE field panel HMI


or MMI port, the maximum number of characters per line is 81 (not
Rules for Naming Points
including the line number or operator C). Use the following rules to establish a point naming convention that
provides meaningful information.
Creating a Notepad at the Field Panel
APOGEE Firmware
A PPCL program containing only comment lines can be used as a
notepad for the field panel. This allows you to record information • Valid names are from 1 to 30 characters.
regarding activities, modifications, a to-do list, special instructions to
follow-up personnel, or general notes. • Acceptable characters include: A-Z, a-z, 0-9, spaces ( ), periods
(.), commas (,), dashes (-), underlines (_), and apostrophes (').
• The comment lines can be added and viewed from any
HMI/MMI or front-end device. • Do not use the following characters in point names: & ? * [ ] { } %

• The program can be archived for historical purposes. • Only use a colon (:) in a point name when working with subpoints.

Since a PPCL program that contains only comment lines is not BACnet Firmware
executed, it does not affect system performance.
• Valid names are from 1 to 30 characters.
NOTE: Only field panels containing Firmware Revision 2.6/2.6.1
and later support a notepad at the field panel with PPCL • Acceptable characters include: A-Z, a-z, 0-9, spaces ( ), periods
comment lines. (.), commas (,), dashes (-), underlines (_), and apostrophes (').

• Do not use the following characters in point names: & ? * { } %


Siemens Building Technologies, Inc. 1-5 1-6 Siemens Building Technologies, Inc.
Program Methodology—PPCL Rules APOGEE PPCL User’s Manual

Pre-APOGEE Firmware
PPCL Program Design Guidelines
• Valid names are limited to 6 characters.

• Acceptable characters include: A-Z and 0-9. These guidelines will help you avoid common programming errors
and write programs that run faster and are easier to maintain. The
• Do not use the following characters in point names: & ? * [ ] { } % PPCL guidelines are as follows:

• A program defined in one field panel should not be used to


Rules for Naming a PPCL Program
control points in a different field panel.
APOGEE PPCL programs use an assigned name. Use the following
rules to assign a program name: • Loop statements should not be closed across a network.

• Time-based commands (for example, LOOP, SAMPLE, TOD,


APOGEE and pre-APOGEE Firmware WAIT, etc.) should be evaluated through every pass of the
program for proper operation.
• Valid names are from 1 to 30 characters.
• If program execution is interrupted (for example, during a power
• Acceptable characters include: A-Z, a-z, 0-9, spaces ( ), periods
failure), the system always resumes processing at the first line of
(.), commas (,), dashes (-), underlines (_), and apostrophes (').
the program. Therefore, the first line of the program should be
• Do not use the following characters in program names: executed through every pass of the program.
&?*[]{}%
• Routing commands (such as GOTO) should transfer program
control to a sequentially higher line number. This practice
BACnet Firmware prevents programs from being caught in endless loops.
• Valid names are from 1 to 30 characters.
Designing a Program that is Easy to Maintain
• Acceptable characters include: A-Z, a-z, 0-9, spaces ( ), periods
(.), commas (,), dashes (-), underlines (_), and apostrophes ('). • Use comment lines to document program logic.

• Do not use the following characters in program names: • Number program lines in multiples of ten (10, 20, 30) or more so
&?*{}% that modifications can be made without renumbering the
program.

• Use point names that are meaningful and describe the function
for which they are being used. For example, a point name
monitoring outside air temperature could be named OATEMP.

• A subroutine should only be used in situations where it is more


beneficial to place a block of code in a subroutine instead of
using straight-line code.

Siemens Building Technologies, Inc. 1-7 1-8 Siemens Building Technologies, Inc.
Program Methodology—PPCL Program Design Guidelines APOGEE PPCL User’s Manual

• Whenever possible, re-use blocks of program code in other


devices that require the same control. Reusing program code Relational Operators
helps reduce testing time and minimizes the number of errors in
program logic. Both relational operators and logical operators compare two values
and produce a result that is called a condition. With relational
NOTE: Since PPCL requires a unique point database, you must
operators, a related action is taken only if the condition is true. No
modify the point names in the reused program code to
action is taken if the condition is false. For information on the order in
reflect the database for that device.
which relational operators are evaluated, see the Order of
Precedence section in this chapter.
Designing a Program that Operates Efficiently
The following example describes the function of the relational
• The number of FLN devices connected to the field panel has the operator.
greatest influence on program code evaluation speed.
Example
• The number of program lines defined in a device affects the line
evaluation rate. You are reading the newspaper one morning and find that it is
going to be a beautiful day. You say to yourself, "If it gets
• When using time-based commands, be aware that different warmer than 80°F, I will go to the beach. If not, then I will stay
versions of the same device may execute the same program home."
code at different rates.
You have just used a relational operator to determine your
For example, Version 3.0 controller boards are capable of actions for the day. Your condition is the temperature. If the
evaluating an average of 350 lines of program code per second. temperature is greater than 80°F (the condition is true), then you
Field panels using Version 4.0 controller boards are capable of
will go to the beach. If the temperature is 80°F or less (the
evaluating an average of 500 lines of program code per second.
condition is false), then you will stay home.
• When multiple PPCL programs are installed in an APOGEE field PPCL supports the following relational operators:
panel, try to create programs that are roughly the same number
of lines per program. Since the computer sequentially executes • Equal to (.EQ.)
one line of each enabled program, the program with the fewest
lines will be executed more often the program with the most lines. • Greater than or equal to (.GE.)
For example, a field panel contains two programs: one with 10 • Greater than (.GT.)
lines and the other with 50 lines. The shorter program will be
executed five times before the longer program is executed once. • Less than or equal to (.LE.)

• Less than (.LT.)

• Not equal to (.NE.)


Each relational operator is described in more detail on the following
pages.

Siemens Building Technologies, Inc. 1-9 1-10 Siemens Building Technologies, Inc.
Program Methodology—Relational Operators APOGEE PPCL User’s Manual

Equal to (.EQ.) Greater than or equal to (.GE.)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
if (value1.EQ.value2) then... if (value1.GE.value2) then...
value1, These values are defined as analog or digital numbers, value1, These values are defined as analog or digital numbers,
value2 local variables, or point names. value2 local variables, or point names.

Use Use
Compares two values to determine if the first value (value1) is equal Compares two values to determine if the first value (value1) is
to the second value (value2). The comparison is true if value1 is greater than or equal to the second value (value2). The comparison
equal to value2. is true if value1 is greater than or equal to value2.

Example Example
500 C IF THE ROOM TEMP IS EQUAL TO 80, 700 C IF THE ROOM TEMP IS GREATER THAN
510 C THEN SET THE SET POINT TO 70. 710 C OR EQUAL TO 80, THEN SET THE SET
520 C 720 C POINT TO 70
530 IF (RMTEMP.EQ.80.0) THEN RMSET = 70.0 730 C
740 IF (RMTEMP.GE.80.0) THEN RMSET = 70.0
Notes
Check the point format and number of decimal places used before
comparing values with this relational operator. Certain points
(primarily analog input) may contain precise values. When
comparing a point value to a whole number, the result will be false if
the values are not identical.

Siemens Building Technologies, Inc. 1-11 1-12 Siemens Building Technologies, Inc.
Program Methodology—Relational Operators APOGEE PPCL User’s Manual

Greater than (.GT.) Less than or equal to (.LE.)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
if (value1.GT.value2) then... if (value1.LE.value2) then...
value1, These values are defined as analog or digital numbers, value1, These values are defined as analog or digital numbers,
value2 local variables, or point names. value2 local variables, or point names.

Use Use
Compares two values to determine if the first value (value1) is Compares two values to determine if the first value (value1) is less
greater than the second value (value2). The comparison is true if than or equal to the second value (value2). The comparison is true if
value1 is greater than value2. value1 is less than or equal to value2.

Example Example
250 C IF THE ROOM TEMP IS GREATER THAN 300 C IF THE ROOM TEMP IS LESS THAN OR
260 C 80, THEN SET THE SET POINT TO 70 310 C EQUAL TO 80, THEN SET THE SET POINT
270 C 320 C TO 70
280 IF (RMTEMP.GT.80.0) THEN RMSET = 70.0 330 C
340 IF (RMTEMP.LE.80.0) THEN RMSET = 70.0

Siemens Building Technologies, Inc. 1-13 1-14 Siemens Building Technologies, Inc.
Program Methodology—Relational Operators APOGEE PPCL User’s Manual

Less than (.LT.) Not equal to (.NE.)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
if (value1.LT.value2) then... if (value1.NE.value2) then...
value1, These values are defined as analog or digital numbers, value1, These values are defined as analog or digital numbers,
value2 local variables, or point names. value2 local variables, or point names.

Use Use
Compares two values to determine if the first value (value1) is less Compares two values to determine if the first value (value1) is not
than the second value (value2). The comparison is true if value1 is equal to the second value (value2). The comparison is true if value1
less than value2. is not equal to value2.

Example Example
900 C IF THE ROOM TEMP IS LESS THAN 80, 600 C IF THE ROOM TEMP IS NOT EQUAL TO
910 C THEN SET THE SET POINT TO 70. 610 C 80, THEN SET THE SET POINT TO 70.
920 C 620 C
930 IF (RMTEMP.LT.80.0) THEN RMSET = 70.0 630 IF (RMTEMP.NE.80.0) THEN RMSET = 70.0

Siemens Building Technologies, Inc. 1-15 1-16 Siemens Building Technologies, Inc.
Program Methodology—Logical Operators APOGEE PPCL User’s Manual

Logical Operators And (.AND.)


Unitary pre-APOGEE APOGEE BACnet
Both relational operators and logical operators compare two values
and produce a result that is called a condition. With logical operators, Ž Ž Ž Ž
there is a related action for each possible outcome of the condition. If
the condition is true, then a specific action is taken. If the condition is Syntax
false, then an alternate action is performed. For information on the
order in which logical operators are evaluated, see the Order of if (cond1.AND.cond2) then...
Precedence section in this chapter. cond1, Defines a condition that is the result of a comparison
cond2 between two values.
The following example describes the function of the logical operator.
Use
Example
You are reading the newspaper one morning and find that it is • Used to compare two logical conditions.
going to be a beautiful day. You say to yourself, "If it gets • If both conditions are true, the result of the comparison is true.
warmer than 80°F and I do not have to work, then I will go to the
beach." • A single statement can incorporate a combined total of 16
relational and logical operators.
You have just used a logical operator to define two conditions. Your
first condition is that the temperature must be greater than 80°F. See Table 1-1 for a comparison of conditions used with the .AND.
Your second condition tests if you have to work. Both conditions logical operator:
must be true in order for you to go to the beach. If one condition is
not true, then you will not go to the beach. Table1-1. Truth Table for .AND. Logical Operator.

PPCL supports the following logical operators: Condition 1 False Condition 1 True

Condition 2 False Result is False Result is False


• And (.AND.)
Condition 2 True Result is False Result is True
• Not And (.NAND.)
Example
• Or (.OR.) 200 IF (TIME.LT.19:00.AND.TIME.GT.5:00) THEN ON(LIGHTS)

• Exclusive Or (.XOR.)
Each logical operator is described in more detail on the following
pages.

Siemens Building Technologies, Inc. 1-17 1-18 Siemens Building Technologies, Inc.
Program Methodology—Logical Operators APOGEE PPCL User’s Manual

Not And (.NAND.) Or (.OR.)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet
2.4 and later Ž Ž Ž Ž Ž

Syntax Syntax
if (cond1.NAND.cond2) then... if (cond1.OR.cond2) then...
cond1, Defines a condition that is the result of a comparison cond1, Defines a condition that is the result of a comparison
cond2 between two values. cond2 between two values.

Use Use
• Used to compare two logical conditions. • Used to compare two logical conditions.

• If both conditions are true, then the result of the .NAND. • If at least one of the conditions is true, the result of the statement
statement is false. is true.

• A single statement can incorporate a combined total of 16 • A single statement can incorporate a combined total of 16
relational and logical operators. relational and logical operators.

Example See Table 1-2 for a comparison of conditions used with the .OR.
100 IF (LDO1.EQ.ON.NAND.LDO2.EQ.ON) THEN ON(LDO3) logical operator:
ELSE OFF(LDO3)
Table 1-2. Truth Table for .OR. Logical Operator.
Condition 1 False Condition 1 True
LDO1 State LDO2 State LDO3 State NAND Result
Condition 2 False Result is False Result is True
OFF OFF ON TRUE
Condition 2 True Result is True Result is True
OFF ON ON TRUE
ON OFF ON TRUE Example
ON ON OFF FALSE 200 IF (TIME.LT.5:00.OR.TIME.GT.17:00) THEN ON(LIGHTS)

Notes
For APOGEE Firmware Revision 2.3 and earlier, AND statements
should be used instead of NAND. In this case, the above example
would be written as:
100 IF (LDO1.EQ.ON.AND.LDO2.EQ.ON) THEN OFF(LDO3)
ELSE ON(LDO3)

Siemens Building Technologies, Inc. 1-19 1-20 Siemens Building Technologies, Inc.
Program Methodology—Logical Operators APOGEE PPCL User’s Manual

Exclusive Or (.XOR.) Arithmetic Operators


Unitary pre-APOGEE APOGEE BACnet
Arithmetic operators are mathematic functions that are performed on
Ž Ž Ž Ž two or more numbers (operands). When used in PPCL, the result of
a calculation is determined and assigned to a point name or local
Syntax variable for future reference. For information on the order in which
arithmetic operators are evaluated, see the Order of Precedence
if (cond1.XOR.cond2) then... section in this chapter.
cond1, Defines a condition that is the result of a comparison
NOTE: A maximum of 15 arithmetic operators can be used in
cond2 between two values.
one PPCL program line.
Use PPCL supports the following arithmetic operators:
• Used to compare two logical conditions.
• Addition (+)
• If cond1 is true and cond2 is false, the result of the statement is
true. If cond1 is false and cond2 is true, this statement is also • Assignment (=)
true. • Division (/)
• A single statement can incorporate a combined total of 16 • Multiplication (*)
relational and logical operators.
• Subtraction (-)
See Table 1-3 for a comparison of conditions used with the .XOR.
logical operator: Each arithmetic operator is described in more detail on the following
pages.
Table 1-3. Truth Table for .XOR. Logical Operator.
Condition 1 False Condition 1 True

Condition 2 False Result is False Result is True

Condition 2 True Result is True Result is False

Example
200 IF (PMP1.EQ.ON.XOR.PMP2.EQ.ON) THEN NORMAL(PMPALM)

Siemens Building Technologies, Inc. 1-21 1-22 Siemens Building Technologies, Inc.
Program Methodology—Arithmetic Operators APOGEE PPCL User’s Manual

Addition Assignment
Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
pt1 = value1 + value2 pt1 = value1
pt1 A point name or local variable that receives the value of pt1 The point name or local variable that receives the value
the calculation. from value1.
value1, Point names, local variables, expressions, or numbers value1 A point name, local variable, expression, or number that is
value2 that are used in the calculation. assigned to pt1.

Use Use
Adds two or more values and stores the sum in a defined location as Assigns the value of value1 to the value of pt1.
pt1.
Example
Example 560 COUNT = COUNT + 1.0
560 COUNT = COUNT + 1.0
Notes
Do not to assign values to reserved words. See the Reserved Word
List in Appendix A.

Example
500 C = OATEMP
The code in this example would fail due to the “C” being used like a
variable, when instead the field panel interprets the line as a
comment.

Siemens Building Technologies, Inc. 1-23 1-24 Siemens Building Technologies, Inc.
Program Methodology—Arithmetic Operators APOGEE PPCL User’s Manual

Division Multiplication
Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
pt1 = value1 / value2 pt1 = value1 * value2
pt1 A point name or local variable that receives the value of the pt1 A point name or local variable that receives the value of
calculation. the calculation.
value1 A point name, local variable, expression, or number used in value1, Point names, local variables, expressions, or numbers
the calculation. In PPCL, value1 represents the numerator. value2 used in the calculation.
value2 A point name, local variable, expression or number used in
the calculation. In PPCL, value2 represents the Use
denominator.
Multiplies two or more values (value1 and value2) and stores the
product in a defined location (pt1).
Use
Divides two values (value1 by value2) and stores the quotient in a Example
defined location (pt1). 300 SETPT = TEMP * 0.00438

Example
890 AVERAG = TOTAL / 5.0

Siemens Building Technologies, Inc. 1-25 1-26 Siemens Building Technologies, Inc.
Program Methodology—Arithmetic Operators APOGEE PPCL User’s Manual

Subtraction Arithmetic Functions


Unitary pre-APOGEE APOGEE BACnet
Arithmetic functions perform mathematical calculations on a number
Ž Ž Ž Ž (value). When used in PPCL, the result of a calculation is usually
assigned to a point name for future reference. For information on the
Syntax order in which arithmetic functions are evaluated, see the Order of
Precedence section in this chapter.
pt1 = value1 - value2
PPCL supports the following arithmetic functions:
pt1 A point name or local variable that receives the value of
the calculation.
• Arc-Tangent (ATN)
value1, Point names, local variables, expressions, or numbers
value2 that are used in the calculation. • Complement (COM)

Use • Cosine (COS)


Subtracts a value (value2) from another value (value1) and stores • Natural Antilog (EXP)
the difference in a defined location (pt1).
• Natural Log (LOG)
Example
• Root (.ROOT.)
300 COUNT = COUNT - 1.0
• Sine (SIN)

• Square Root (SQRT)

• Tangent (TAN)
Each arithmetic operator is described in more detail on the following
pages.

Siemens Building Technologies, Inc. 1-27 1-28 Siemens Building Technologies, Inc.
Program Methodology—Arithmetic Functions APOGEE PPCL User’s Manual

Arc-Tangent (ATN) Complement (COM)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
pt1 = ATN(value1) pt1 = COM(value1)
pt1 A point name or local variable that receives the value of the pt1 A point name or local variable that receives the value of the
calculation. calculation.
value1 A point name, local variable, or number from which the value1 A point name, local variable, or number from which the
value of the arc-tangent is calculated. complement is calculated.

Use Use
A trigonometric function that calculates the arc-tangent of a value A function that calculates a one's complement value for a point
(value1). The result of the calculation is then stored in a defined (value1). The one's complement function converts digital values (0 or
location (pt1). 1) to their opposite values. The result of the calculation is then stored
in a defined location (pt1).
All values used with this function are expressed in degrees.
Example
Example 500 LLSTAT = COM(PROF01)
500 THETA = ATN(VALUE1)

Siemens Building Technologies, Inc. 1-29 1-30 Siemens Building Technologies, Inc.
Program Methodology—Arithmetic Functions APOGEE PPCL User’s Manual

Cosine (COS) Natural Antilog (EXP)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
pt1 = COS(value1) pt1 = EXP(value1)
pt1 A point name or local variable that receives the value of the pt1 A point name or local variable that receives the value of the
calculation. calculation.
value1 A point name, local variable, or number from which the value1 A point name, local variable, or number from which the
value of the cosine is calculated. value of the antilog is calculated.

Use Use
A trigonometric function that calculates the cosine of a value Calculates the natural antilog of a point (value1) and stores the result
(value1). The result of the calculation is then stored in a defined of the calculation in a defined location (pt1).
location (pt1).
Example
All values used with this function are expressed in degrees. 860 NATANT = EXP(VALUE1)

Example
700 C
701 C THIS FORMULA COMPUTES REAL POWER
702 C WHEN VOLTS, AMPS, AND PHASE ANGLE
703 C ARE KNOWN.
704 C
706 PWR = V * I * COS(THETA)

Siemens Building Technologies, Inc. 1-31 1-32 Siemens Building Technologies, Inc.
Program Methodology—Arithmetic Functions APOGEE PPCL User’s Manual

Natural Log (LOG) Root (.ROOT.)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
pt1 = LOG(value1) pt1 = (value1.ROOT.value2)
pt1 A point name or local variable that receives the value of the pt1 A point name or local variable that receives the value of
calculation. the calculation.
value1 A point name, local variable, or number from which the value1, Point names, local variables, or numbers from which the
value of the log is calculated. value2 value of the root is calculated.

Use Use
Calculates the natural log of a point (value1) and stores the result of This function calculates the root of the defined points by raising the
the calculation in a defined location (pt1). value of value1 to the inverse power of value2. The result of the
calculation is then stored in a defined location (pt1). The
Example mathematical notation for the root is represented as follows:
200 ENTH = LOG(VALUE1)
3
TEMP

The following example demonstrates the same values defined as a


line of PPCL program code:

Example
310 RVAL = (TEMP.ROOT.3.0)

Siemens Building Technologies, Inc. 1-33 1-34 Siemens Building Technologies, Inc.
Program Methodology—Arithmetic Functions APOGEE PPCL User’s Manual

Sine (SIN) Square Root (SQRT)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
pt1 = SIN(value1) pt1 = SQRT(value1)
pt1 A point name or local variable that receives the value of the pt1 A point name or local variable that receives the value of the
calculation. calculation.
value1 A point name, local variable, or number from which the value1 A point name, local variable, or number from which the value of
value of the sine is calculated. the square root is calculated.

Use Use
A trigonometric function that derives the sine of a value (value1). The Derives the square root of a value. The result of the calculation is
result of the calculation is then stored in a defined location (pt1). then stored in a defined location (pt1).

All values used with this function are expressed in degrees. Example
180 SRPT1 = SQRT(PT1)
Example
180 VAR = SIN(THETA)

Siemens Building Technologies, Inc. 1-35 1-36 Siemens Building Technologies, Inc.
Program Methodology—Arithmetic Functions APOGEE PPCL User’s Manual

Tangent (TAN) Special Functions


Unitary pre-APOGEE APOGEE BACnet
Special functions are used to access a specific value that is unique
Ž Ž Ž to a point. The value of the point can then be tested or assigned to
other points. Since special functions are maintained by the system,
Syntax they cannot be manually commanded to a different value. For
information on the order in which special functions are evaluated,
pt1 = TAN(value1) see the Order of Precedence section in this chapter.
pt1 A point name or local variable that receives the value of the NOTE: Special functions cannot be used over the network.
calculation.
value1 A point name, local variable, or number from which the PPCL supports the following special functions:
value of the tangent is calculated.
• Alarm priority (ALMPRI)
Use
• Totalized value (TOTAL)
A trigonometric function that calculates the tangent of a value
(value1). The result of the calculation is then stored in a defined Each special function is described in more detail on the following
location (pt1). pages.

All values used with this function are expressed in degrees.

Example
930 TANPT1 = TAN(PT1)

Siemens Building Technologies, Inc. 1-37 1-38 Siemens Building Technologies, Inc.
Program Methodology—Special Functions APOGEE PPCL User’s Manual

Alarm priority (ALMPRI) Table 1-4. APOGEE to BACnet


Notification Class Reference.
Unitary pre-APOGEE APOGEE BACnet
BACnet
ALMPRI Value
Ž Ž Ž Notification Class
1 0-31
Syntax
2 32-63
ALMPRI(pt1)
3 64-95
pt1 A point name for which the current alarm priority is taken.
4 96-127
Use
5 128-191
Accesses the alarm priority level of a point defined in an enhanced
alarming control strategy. The value of ALMPRI can range from 1 6 192-255
through 6. Besides testing ALMPRI for a specific value, you can also
assign the value of ALMPRI to another point.

Example 1
230 C
232 C THIS LINE TESTS IF THE POINT CALLED
234 C RMTEMP IS AT ALARM PRIORITY LEVEL 1.
236 C
240 IF (ALMPRI(RMTEMP).EQ.1) THEN ON (OPBELL)

Example 2
330 C
332 C THIS LINE ASSIGNS THE ALARM PRIORITY LEVEL
334 C OF RMTEMP TO THE POINT CALLED TMPPRI.
336 C
340 TMPPRI = ALMPRI(RMTEMP)

Notes
ALMPRI must reside in the same field panel as the point on which
the function is being performed.

For BACnet firmware, the ALMPRI value corresponds to a priority in


the Notification class for the point’s current alarm state. Table 1-4
outlines the BACnet Notification classes and shows how they relate
to the APOGEE ALMPRI values.

Siemens Building Technologies, Inc. 1-39 1-40 Siemens Building Technologies, Inc.
Program Methodology—Special Functions APOGEE PPCL User’s Manual

Totalized value (TOTAL) Order of Precedence


Unitary pre-APOGEE APOGEE BACnet
The order of precedence is the order in which operators (relational,
Ž Ž Ž Ž logical, mathematical, and special function) are evaluated.

Syntax • Operators that have a higher precedence are evaluated before


operators that have a lower precedence.
TOTAL(pt1)
• If all the operators in the formula have equivalent precedence
pt1 A point name for which the totalized value is taken. levels, then the operators are evaluated from left to right.
Use The following example illustrates how precedence levels are applied
to mathematical operators.
Allows you to access the totalized value of a point.
Example 1
Example 1
800 C 10 - 5 + 2 * 3 = x
801 C THIS LINE COMPARES THE TOTALIZED VALUE OF FAN1
802 C TO DETERMINE IF IT IS GREATER THAN 500. This equation is solved as follows:
803 C IF THE CONDITION IS TRUE, FAN1 WILL BE PLACED
1. Multiplication has the highest precedence level in this equation.
804 C INTO ALARM.
The first step in evaluating the equation is as follows:
805 C
810 IF(TOTAL(FAN1).GT.500.0)THEN ALARM(FAN1) 2*3=6

Example 2 After the first level of operators has been evaluated, the equation
800 C appears as follows:
801 C THIS LINE ASSIGNS THE TOTALIZED VALUE
10 - 5 + 6 = x
802 C OF FAN1 TO THE POINT CALLED FANRUN.
803 C 2. Since the remaining operators have the same precedence level,
810 FANRUN = TOTAL(FAN1) operators are now evaluated from left to right. The last step in
evaluating the equation is as follows:
Notes
10 - 5 = 5
TOTAL must reside in the same field panel as the point on which the
function is being performed. 5 + 6 = 11

3. The solution to this equation is 11.


See also
See Table 1-5 for a complete list of precedence levels for PPCL
INITTO
operators.

Siemens Building Technologies, Inc. 1-41 1-42 Siemens Building Technologies, Inc.
Program Methodology—Order of Precedence APOGEE PPCL User’s Manual

Statements containing relational and logical operators are also When the computer evaluates multiple pairs of parentheses, each
assigned a precedence level. pair is evaluated according to how it is positioned in the formula.
Multiple parentheses are evaluated as follows:
Note that in problems comparing values using relational operators
(.EQ. and .NE.), the result of the comparison can change the output • For a pair of parentheses defined within another pair of
of the statement. parentheses, the computer always evaluates the innermost set
first.
Example 2
• For parentheses defined as individual pairs, each pair is
If (value1 .EQ. value2 .AND. value1 .NE. value3) then... evaluated from left to right.

This equation is solved as follows: The following example illustrates how parentheses change the way
the computer evaluates equations.
1. The relational operators (.EQ. and .NE.) have the highest
precedence level in the formula. Since these two operators have Example
the same precedence level, they are evaluated from left to right. 10 - 5 + 2 * 3 = x
In this example, assume that both comparisons (condition1 and
condition2) are true. This equation uses two levels of precedence: multiplication and
addition/subtraction. Following the order of precedence rules, the
value1 .EQ. value2 (condition1 = true) solution to this equation is 11.

value1 .NE. value3 (condition2 = true) When parentheses are inserted, the same equation produces a
different solution.
After the first level of operators has been evaluated, the equation
now looks like the following: (10 - 5 + 2) * 3 = x
If (condition1 .AND. condition2) then... The equation is now solved as follows:

2. The logical operator .AND. is then evaluated. 1. Parentheses give the information within the set of parentheses
the highest order of precedence. The operators within the
3. Since .AND. requires both conditions to be true, the solution to
parentheses are evaluated from left to right because they all
this problem will also be true.
have the same precedence. The first step in evaluating the
equation is as follows:
Changing Precedence Levels with Parentheses
(10 - 5 + 2) = 7
Parentheses can be used to override the normal order of
precedence. Placing parentheses around specific values or After the operators within parentheses have been evaluated, the
operations gives the information within the set of parentheses the equation appears as follows:
highest order of precedence. If all the operators within in the
7 * 3 = 21
parentheses have equivalent precedence levels, then the operators
are evaluated from left to right. 2. The standard precedence rules now apply to the remaining
operators. With only one operation left, the multiplication
operator is evaluated and produces a solution of 21.

Siemens Building Technologies, Inc. 1-43 1-44 Siemens Building Technologies, Inc.
Program Methodology—Order of Precedence APOGEE PPCL User’s Manual

Table 1-5. Order of Precedence for PPCL Operators. Resident Points


Precedence Command Syntax
Level Resident points provide time-based and system status information.
1 (Highest) Parentheses (expression or value)
These points are used to determine the time, date, month, and day
of the month, or to monitor alarms, modes of operation (DAY or
2 Alarm priority ALMPRI(pt1) NIGHT), and communication between nodes.
Arc-tangent ATN(value1)
• The value of a resident point can be tested or assigned to other
Complement COM(value1)
points.
Cosine COS(value1)
• Resident points are predefined and maintained by the device.
Natural antilog EXP(value1)
Since each device maintains its own set of resident points, a
Natural log LOG(value1) resident point cannot be used across the network.
Sine SIN(value1) NOTE: Do not use resident points in TABLE commands.
Square root SQRT(value1)
PPCL supports the following resident points:
Tangent TAN(value1)
Totalized value TOTAL(pt1) • Alarm count (ALMCNT)
3 Root (value1.ROOT.value2) • Alarm count 2 (ALMCT2)
4 Multiplication value1 * value2
• Battery status ($BATT)
Division value1 / value2
5 Addition value1 + value2 • Decimal time (CRTIME)
Subtraction value1 - value2 • Day (DAY)
6 Equal to .EQ.
• Day of the month (DAYOFM)
Not equal to .NE.
• Communications link (LINK)
Greater than .GT.
Greater than or equal to .GE. • Month (MONTH)
Less than .LT. • Node number (NODE0 through NODE99)
Less than or equal to .LE.
• Peak Demand Limiting point ($PDL)
7 And .AND.
Not and .NAND. • Seconds counter (SECNDS)
8 (Lowest) Or .OR. • Seconds counters (SECND1 through SECND7)
Exclusive Or .XOR.
• Military time (TIME)
Each resident point is described in more detail on the following
pages.
Siemens Building Technologies, Inc. 1-45 1-46 Siemens Building Technologies, Inc.
Program Methodology—Resident Points APOGEE PPCL User’s Manual

Alarm count (ALMCNT)


Alarm count 2 (ALMCT2)
Unitary pre-APOGEE APOGEE BACnet
Unitary pre-APOGEE APOGEE BACnet
Ž Ž Ž Ž
Ž Ž
Syntax
Syntax
ALMCNT
ALMCT2
Use
Use
The value of ALMCNT represents the number of points within a field
panel or unitary controller that are currently in the ALARM state. This resident point is similar to the ALMCNT point. ALMCT2
specifies if the second alarm counter should be incremented when a
When a point enters the ALARM state, the computer adds one (1) to point enters the ALARM state.
the value of ALMCNT. When a point returns to the NORMAL state,
the computer subtracts one (1) from the value of ALMCNT. When a point enters the ALARM state, the computer adds one (1) to
both the value of ALMCNT and ALMCT2. When a point returns to
Example the NORMAL state, the computer subtracts one (1) from both values.
340 IF (ALMCNT.GT.0) THEN ON(ALARM7)
Example
Notes 300 C IF THE SECOND LEVEL ALARM COUNTER BECOMES
310 C GREATER THAN 5, COMMAND ON ALARM8
• A point must be defined as alarmable in order to be counted 320 C
when that point enters the ALARM state. 330 IF (ALMCT2.GT.5) THEN ON(ALARM8)

• In all revisions of field panel firmware, the ALMCNT and ALMCT2 Notes
counters work the same with enhanced alarms as they do with
regular alarms. • A point must be defined as alarmable and enabled for ALMCT2 in
order to be counted when that point enters the ALARM state.*
• The level of alarm does not affect ALMCNT and ALMCT2. In
other words, the counters do not increment again when an • In all revisions of field panel firmware, the ALMCNT and ALMCT2
enhanced alarm point changes from one alarm level to another. counters work the same with enhanced alarms as with regular
alarms.
• If a point is disabled (*PDSB*) or operator disabled (*ODSB*),
ALMCNT will still increment and decrement accordingly. • The level of alarm does not affect ALMCNT and ALMCT2. In
other words, these counters do not increment again when an
See also enhanced alarm point changes from one alarm level to another.
ALMCT2, ENALM, DISALM *For pre-APOGEE, ALMCT2 can only be used with digital points.

See also
ALMCNT, ENALM, DISALM

Siemens Building Technologies, Inc. 1-47 1-48 Siemens Building Technologies, Inc.
Program Methodology—Resident Points APOGEE PPCL User’s Manual

Battery condition ($BATT)


Decimal time (CRTIME)
Unitary pre-APOGEE APOGEE BACnet
Unitary pre-APOGEE APOGEE BACnet
Ž Ž Ž
Ž Ž Ž Ž
Syntax
Syntax
$BATT
CRTIME
Use
Use
This resident point is used with field panels that can monitor the
strength of their backup battery. Either a numeric value or the This resident point maintains the current time and stores the value in
backup battery status indicators indicate the current status of a decimal format. The following examples show how CRTIME stores
$BATT. values:

$BATT numeric values are 0, 50, or 100. 7:15 a.m. = 7.25

• A $BATT value of 0 indicates the battery has discharged and 7:30 p.m. = 19.50
must be replaced. The values for this point can range from 0.00 to 23.999721.
• A $BATT value of 50 indicates the battery is about to discharge
and should be replaced to prevent any loss of data. Example
500 C
• A $BATT value of 100 indicates the battery does not need to be 501 C THIS CODE DEFINES A TIME PERIOD
replaced. 502 C FROM 6:45 A.M. TO 5:30 P.M. FOR
503 C SFAN TO OPERATE.
$BATT status indicators are LOW, DEAD, or OK. 504 C
510 IF (CRTIME.GE.6.75.AND.CRTIME.LE.17.50)
• If $BATT status is LOW or DEAD, then the battery has THEN ON(SFAN)ELSE OFF(SFAN)
discharged and must be replaced.
CRTIME can also be used to assign the current value of time to a
• If $BATT status is OK, then the battery does not need to be virtual LAO type point which allows you to read the current time on a
replaced. graphic, point log, etc. For example:
100 VTIME = CRTIME
Example 1
200 IF ($BATT.EQ.0) THEN ALARM(P26BAT)
Notes
CRTIME is updated every second.
Example 2
210 IF ($BATT.EQ.DEAD) THEN ALARM(P26BAT)

See also
LOW, DEAD, OK
Siemens Building Technologies, Inc. 1-49 1-50 Siemens Building Technologies, Inc.
Program Methodology—Resident Points APOGEE PPCL User’s Manual

Day (DAY) Day of the month (DAYOFM)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
DAY DAYOFM

Use Use
This resident point specifies the current day of the week. The values This resident point specifies a particular day of any month.
used for the DAY point are as follows:
Valid values for DAYOFM are 1 through 31. The value corresponds
Number Day of the Week to the numerical calendar day of a month.
1 Monday
Example
2 Tuesday 160 C THIS SECTION OF CODE DETERMINES IF
162 C IT IS THE FIRST DAY OF THE MONTH.
3 Wednesday
164 C IF SO, SET TOTMON TO 0.
4 Thursday 166 C
180 IF (DAYOFM.EQ.1) THEN TOTMON = 0
5 Friday
6 Saturday Notes
7 Sunday This point is helpful when you have to perform certain operations on
a specific day (for example, generating a report on the first day in the
month).
Example
300 IF (DAY.EQ.1) THEN TOTRAN = 0

Notes
These values are not related to the modes used in the TODMOD
statement.

Siemens Building Technologies, Inc. 1-51 1-52 Siemens Building Technologies, Inc.
Program Methodology—Resident Points APOGEE PPCL User’s Manual

Communications link (LINK) Month (MONTH)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
LINK MONTH

Use Use
This resident point indicates the condition of communications. This resident point specifies the current month. The values used for
the MONTH point are as follows:
Depending on the status of the communications link, a point contains
the value 0 or 1. Number Month
1 January
• If the LINK value is 0, the node where the LINK point resides is
not communicating with the network. 2 February

• If the LINK value is 1, the node where the LINK point resides is 3 March
actively communicating with the network. 4 April

Example 5 May
300 IF (LINK.EQ.0) THEN ON(ALARM) 6 June

See also 7 July

Node Number (NODEn) 8 August


9 September
10 October
11 November
12 December

Example
950 IF (MONTH.GE.4.AND.MONTH.LE.10) THEN
SEASON = 1 ELSE SEASON = 0

Siemens Building Technologies, Inc. 1-53 1-54 Siemens Building Technologies, Inc.
Program Methodology—Resident Points APOGEE PPCL User’s Manual

Node number (NODE0 through NODE99) PDL monitor ($PDL)


Unitary pre-APOGEE APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet
RS-485 Ethernet
Ž Ž Ž
Ž Ž
Syntax
Syntax
$PDL
NODEn
n Represents the number of a NODE. Use
• Valid values for NODE are 0 through 99. This resident point takes on the current value of the demand
prediction for each calculated interval made by the PDLMTR
Use statement. The point can be assigned to a virtual LAO point,
displayed, and trended.
This resident point allows the program to check the status of a node
on the network. All devices or CPUs on the network occupy a node
corresponding to its address. This point is generally used to test for Example
normal operation of nodes for control strategies that depend on 350 KWH = $PDL
network communication.

Example
600 IF (NODE22.EQ.FAILED) THEN ON(ALARM)

Notes
NODE resident points cannot be used in field panels on an Ethernet
Automation Level Network (ALN). To use PPCL to monitor the failure
status of an Ethernet field panel, use the ADDRESS subpoint of the
field panel and equate it to FAILED.

Example
300 IF (“!EthernetMBC1:ADDRESS”.EQ.FAILED)
THEN ON(ALARM)

See also
Communications Link (LINK)

Siemens Building Technologies, Inc. 1-55 1-56 Siemens Building Technologies, Inc.
Program Methodology—Resident Points APOGEE PPCL User’s Manual

Seconds counter (SECNDS) Seconds counters (SECND1 through SECND7)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
SECNDS SECNDn
n The number that describes which SECNDn point is
Use referenced.
This resident point counts real time seconds and can be used as a • Valid values for SECNDn are 1 through 7.
timer. The computer adds one (1) to the SECNDS variable for every
one second of real time that passes. Use
These seven resident points count real time seconds and can be
• The initial value of the SECNDS point is set by a PPCL
used as timers. The computer adds one (1) to the SECNDn variable
command.
for every one second of real time that passes.
• The SECNDS point can be set to a maximum value of 9,999.
• The value of a SECNDn point can only be set by a PPCL
Example command.
890 IF (SFAN.NE.PRFON) THEN SECNDS = 0
• The maximum value a SECNDn point can be set to is 9,999.
Notes Example
For APOGEE field panels, each program has a unique SECNDS 600 IF(SECND1.GT.15) THEN ON(RF) ELSE OFF(RF)
point. This point can also be viewed in the interface using the
program name, system delimiter (:)SECNDS format. Notes
For APOGEE field panels, each program has unique SECNDSn
points. These points can also be viewed in the interface using the
program name, system delimiter (:)SECNDSn format.

Siemens Building Technologies, Inc. 1-57 1-58 Siemens Building Technologies, Inc.
Program Methodology—Resident Points APOGEE PPCL User’s Manual

Military time (TIME) Local Variables


Unitary pre-APOGEE APOGEE BACnet
Local variables are storage locations for data. Local variables
Ž Ž Ž Ž function like virtual points except that they require less memory, are
predefined, and cannot be directly displayed.
Syntax
• Local variables can contain analog or digital values.
TIME
• Each set of local variables is designed for a specific task.
Use • Local variables are divided into two categories: subroutine and
This resident point maintains the current time and stores the value in global storage variables.
military time. The TIME value can contain a value from 0:00 to 23:59.
PPCL supports the following local variables:
The following examples show how TIME stores values follows:
• $ARG1 through $ARG15, which are used for subroutines.
7:15 a.m. = 7:15
• $LOC1 through $LOC15, which are used to store the results of
7:30 p.m. = 19:30 calculations.

Example • LOCAL (the definition of user-defined local variables in


APOGEE field panels is discussed in Chapter 3 – Syntax )
500 C
501 C THIS CODE DEFINES A TIME PERIOD For APOGEE field panels, each program has unique $ARG and
502 C FROM 6:45 A.M. TO 5:30 P.M. FOR $LOC variables. $LOC points can also be viewed and commanded
503 C SFAN TO OPERATE. through the interface using the program name, system delimiter (:),
502 C local variable name format.
510 IF(TIME.GE.6:45.AND.TIME.LE.17:30)THEN
ON(SFAN)ELSE OFF(SFAN) Each local variable is described in more detail on the following
pages.
Notes
The time is updated every second. TIME cannot be used to assign a
value to a virtual point since its value is not in a standard decimal
form. CRTIME should be used for this purpose. TIME can be used in
PPCL for comparison in the IF/THEN/ELSE statement.

Siemens Building Technologies, Inc. 1-59 1-60 Siemens Building Technologies, Inc.
Program Methodology—Local Variables APOGEE PPCL User’s Manual

The value of RMTEMP = $ARG2


$ARG1 through $ARG15
The value of SETPT = $ARG3
Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Notes
$ARGn points can only be used in subroutines.
Syntax
$ARGn See also
n The number that describes what $ARGn point is GOSUB
referenced.
• Valid values are 1 through 15.

Use
A $ARGn variable represents an actual point name used in a
subroutine. Instead of defining actual point names in a subroutine,
values are transferred to $ARGn variables. The $ARGn variables
represent their corresponding points as functions and calculations
are performed in the subroutine.

When the value of a $ARGn variable changes, the value of the


corresponding point is also updated.

When a $ARGn variable is encountered in the subroutine section of


the program, the computer checks the calling GOSUB command for
an available point name.

Example
1000 GOSUB 2000 OATEMP, RMTEMP, SETPT
...
2000 $ARG1 = $ARG1 + 1
2010 $ARG2 = $ARG2 + 1
2020 $ARG3 = $ARG3 + 1
The program branches to line number 2000. When $ARG1 is
encountered in line 2000, the computer assigns the value of the first
point name (OATEMP) to $ARG1. When the computer encounters
$ARG2, it assigns the value of the next point defined in the GOSUB
command (RMTEMP).

In this example, the values would be assigned as follows:

The value of OATEMP = $ARG1


Siemens Building Technologies, Inc. 1-61 1-62 Siemens Building Technologies, Inc.
Program Methodology—Local Variables APOGEE PPCL User’s Manual

$LOC1 through $LOC15 Point Priority Overview


Unitary pre-APOGEE APOGEE BACnet
APOGEE and pre-APOGEE firmware use a point priority to identify
Ž Ž Ž Ž the level at which a point is commanded. Point priority also
determines if an operator or a particular control program is
Syntax responsible for controlling a point.

$LOCn BACnet firmware uses a priority array to perform the same function
as the APOGEE point priority. For BACnet firmware, the priority is
n The number that describes what $LOCn point is referenced. mapped to one of 16 slots defined using the Command Priority
• Valid values are 1 through 15. Table. Only one slot in the Priority Array is set for the point when
commanding points with the @priority operator. The value of the
Use point is set based on the highest slot in the Priority Array.
These points are used to store the results of calculations. NOTE: Unitary firmware does not support the use of priority
• $LOCn variables can store an analog or digital value. indicators and manual priority modifications.

• $LOCn variables can be used throughout the program.


APOGEE and pre-APOGEE Point Priority Levels
• The maximum value a $LOC point can store is 32767. APOGEE and pre-APOGEE Firmware Revisions 12.5/1.5 and
— If you need to store higher values, use a virtual LPACI or 12.51/1.51 support the following priority levels:
LAO point.
• OPER (Operator, highest priority level)
— If you are using APOGEE firmware, you might consider
creating a local variable by using a LOCAL statement. • SMOKE (Smoke control)

Example 1 • EMER (Emergency)


200 MIN ($LOC1,PT1,PT2,PT3) • PDL (Peak Demand Limiting)
Example 2 • NONE (PPCL priority, lowest priority level)
100 $LOC7 = (50/VALUE1+10.0) * 2.0
A point can only be commanded by an operation with an equal or
Notes higher priority. For example, a point in EMER priority can be
commanded by an operation with OPER, SMOKE, or EMER priority.
Local points in APOGEE field panels can store values greater than
32,767 (up to 10,000,000). Table 1-5 describes the five APOGEE and pre-APOGEE point
priorities in PPCL, listed from highest to lowest priority.
See also
LOCAL

Siemens Building Technologies, Inc. 1-63 1-64 Siemens Building Technologies, Inc.
Program Methodology—Point Priority Overview APOGEE PPCL User’s Manual

Table 1-6. APOGEE and pre-APOGEE Point Priorities. BACnet Priority Array
Command Description
APOGEE BACnet firmware uses the Priority Array to determine the
Highest OPER The highest priority level. OPER priority command order for a point. The array contains sixteen slots plus a
Priority (Operator) indicates the PPCL program is overridden Relinquish Default slot. BN01 is the highest position in the array, and
and an operator is responsible for Relinquish Default is the lowest.
commanding the point. A point in OPER
must be changed to a lower priority before Any level in the priority can be commanded at any time. If the
PPCL can resume control of the point. This Present Value of the point is at a higher priority slot, the command
change in priority is called releasing the will not be executed. Unlike the APOGEE Point Priority, the Priority
point. Array retains all commands made at lower priority slot levels. When
SMOKE A program that monitors smoke alarms is the Present Value drops to that slot level, the stored point command
commanding the point. Points in SMOKE is executed.
priority can be commanded by operations
with OPER or SMOKE priority. NOTE: The Insight workstation does not save or restore the
Priority Array. After a download from the Insight
EMER A program that controls the point during workstation, all points are at their Relinquish Default
(Emergency) emergencies is commanding the point. value.
Points in EMER priority can be commanded
by operations with OPER, SMOKE, or For more information on BACnet point priorities, see the APOGEE
EMER priority. Field Panel User’s Manual (125-3000).
PDL A Peak Demand Limiting (PDL) program Table 1-7 explains the BACnet command priorities and shows how
(Peak commands the point. Points in PDL priority they relate to the APOGEE point priority levels.
Demand can be commanded by operations with
Limiting) OPER, SMOKE, EMER, or PDL priority.

Lowest NONE The lowest priority level. Any PPCL program


Priority or application can command the point.

Table 1-6 explains the BACnet command priorities and shows how
they relate to the APOGEE point priority levels.

Siemens Building Technologies, Inc. 1-65 1-66 Siemens Building Technologies, Inc.
Program Methodology—Point Priority Overview APOGEE PPCL User’s Manual

Table 1-7. APOGEE to BACnet Point Priority Reference. At (@) Priority Status Indicators
BACnet
Priority At (@) priority indicators are used to monitor the priority status on
APOGEE Point Priority Slot BACnet Name points defined in a device. They can also be used to test if a point is
BN01 Manual Life Safety at a specific priority or to command a point to a specific priority.

BN02 Automatic Life Safety • The priority level defined in a statement occupies one of the
parameters.
BN03 Available
• Statements such as ON, OFF, RELEAS, and SET allow you to
BN04 Available define a total of 16 parameters in one statement.
BN05 Critical Equipment Control • When using an @ priority indicator within PPCL statements, the
@ priority indicator occupies the first parameter location. This
BN06 Minimum On/Off
decreases the total number of points you can define in a
BN07 Available statement to 15.

OPER (Operator) BN08 Manual Operator • When the @ priority is not used, the default priority is EMER.

BN09 Available
Testing Point Priorities
SMOK (Smoke) BN10 Available Programs sometimes fail because a command outside the operation
BN11 Available
being performed interferes with a point inside the operation. Testing
the priority of a point helps prevent this from happening.
EMER (Emergency) BN12 Available
If numerous tasks are being performed in the program, testing point
BN13 Available priority levels is one method of preventing those tasks from
interfering with each other.
PDL (Peak Demand Limiting) BN14 Available

BN15 Available Example


200 IF (SFAN.EQ.@EMER) THEN ON(@EMER,RFAN)
Sched, PPCL, TEC tool* BN16 Available
This statement tests SFAN to determine if it's at EMER priority
Initial value of the point; TEC NONE Relinquish Default before turning ON RFAN. If SFAN is at EMER priority, RFAN will be
Application command ON.
* The TEC Tool can command Priority slot 16 only if it is not being commanded by PPCL.
Commanding Points to a Specific Priority
Points can be commanded to a specific priority, as well as a specific
status, by placing the at (@) symbol before the priority syntax (see
Table 1-8).

Siemens Building Technologies, Inc. 1-67 1-68 Siemens Building Technologies, Inc.
Program Methodology—At (@) Priority Status Indicators APOGEE PPCL User’s Manual

Releasing the Point from a Specific Priority to NONE Priority


Table 1-8. System Variables for
Priority Monitoring. The second option allows you to release points at a specific priority
to the NONE priority. In the following example, any of the points
Priority Priority syntax
included in the RELEAS command that have a priority of EMER or
Operator @OPER lower, will be released to the NONE priority:
300 RELEAS(@EMER,FAN1,FAN2)
Smoke @SMOKE
Note that if the point specified is at an equal or lower priority than
Emergency @EMER EMER, it will also be released to NONE. In other words:
Peak Demand Limiting @PDL If the point Using this
Changes the
specified is at pre-APOGEE
No priority (PPCL) @NONE priority to…
this priority… command…
OPER RELEAS(@OPER … ) NONE
Example
120 OFF(@OPER,SFAN,RFAN) SMOKE NONE

When this command is executed, SFAN and RFAN are shut OFF EMER NONE
and their priorities are changed to OPER. An operator interface PDL NONE
command (such as OIP) is not needed to change the point priority.
OPER RELEAS(@SMOKE … ) OPER
or
Pre-APOGEE Firmware SMOKE RELEASE(@EMER … ) NONE

The RELEAS command quickly changes the priority of a point or EMER NONE
group of points. With pre-APOGEE firmware, you have two options PDL NONE
for changing point priorities with the RELEAS command:
OPER RELEAS(@PDL … ) OPER
• Release the point to NONE priority. SMOKE SMOKE
• Release the point from a specific priority to NONE priority EMER EMER
PDL NONE
Releasing the Point to NONE Priority
For a complete description of the RELEAS command, see Chapter 3
The first option allows you to release points to the NONE priority. In
– Syntax.
the following example, the points FAN1 and FAN2 are released to
NONE priority.
160 RELEAS(FAN1,FAN2)

Siemens Building Technologies, Inc. 1-69 1-70 Siemens Building Technologies, Inc.
Program Methodology—At (@) Priority Status Indicators APOGEE PPCL User’s Manual

At (@) Priority Status Indicators Supported Emergency (@EMER)


PPCL supports the following @ priority indicators: Unitary pre-APOGEE APOGEE BACnet

• Operator (@OPER)
Ž Ž Ž

• Smoke (@SMOKE) Syntax


• Emergency (@EMER) @EMER

• Peak Demand Limiting (@PDL)


Use
• PPCL (@NONE) This command identifies the emergency priority level indicator. The
Each @ priority indicator is described in more detail on the following @EMER command is typically used in one of the following situations:
pages.
• To test if a point is currently at emergency priority, an
IF/THEN/ELSE statement would look like the following:
300 IF (SFAN.EQ.@EMER) THEN ON(HORN)

• To command a point at emergency priority, the program code


might look like the following:
500 ON(@EMER,SFAN)

• To release a point in the device from emergency to PPCL priority,


an example of program code might look like the following:
700 RELEAS(@EMER,SFAN)
NOTE: Using the @ priority indicator in this manner will not
release the point if it has a higher priority (SMOKE or
OPER).

Notes
• For APOGEE and pre-APOGEE firmware, if the @ priority
indicator is not used, the field panel will release points from PDL
or EMER priority to NONE.

• For BACnet firmware, the field panel releases the slot


corresponding to EMER in the Command Priority Table. The
value of the point is set based on the highest slot in the
Command Priority Array; relinquish default is used if the
Command Priority Array is now empty.

Siemens Building Technologies, Inc. 1-71 1-72 Siemens Building Technologies, Inc.
Program Methodology—At (@) Priority Status Indicators APOGEE PPCL User’s Manual

PPCL (@NONE) Operator (@OPER)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž

Syntax Syntax
@NONE @OPER

Use Use
This command identifies the PPCL priority level indicator. The This command identifies the operator priority level indicator. The
@NONE command can be used to test if a point currently is at PPCL @OPER command is typically used in one of the following situations:
priority.
• To test if a point is currently at operator priority, an
Example IF/THEN/ELSE statement would look like the following:
300 IF (SFAN.EQ.@OPER) THEN ON(HORN)
The IF/THEN/ELSE statement would look like the following:
300 IF (SFAN.EQ.@NONE) THEN OFF(HORN)
• To command a point to operator priority, an example of program
Notes code might look like the following:
500 ON(@OPER,SFAN)
For BACnet firmware, the field panel uses the slot corresponding to
the program's "Priority for Writing". The value of the point is set
based on the highest slot in the Command Priority Array; relinquish • To release a point from operator to PPCL priority, an example of
default is used if the Command Priority Array is now empty. program code might look like the following:
700 RELEAS(@OPER,SFAN)

Notes
• For APOGEE and pre-APOGEE firmware, the @ priority indicator
must be used to release points in any priority to NONE.

• For BACnet firmware, the field panel releases the slot


corresponding to OPER in the Command Priority Table. The
value of the point is set based on the highest slot in the
Command Priority Array; relinquish default is used if the
Command Priority Array is now empty.

Siemens Building Technologies, Inc. 1-73 1-74 Siemens Building Technologies, Inc.
Program Methodology—At (@) Priority Status Indicators APOGEE PPCL User’s Manual

Peak Demand Limiting (@PDL) Smoke (@SMOKE)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž

Syntax Syntax
@PDL @SMOKE

Use Use
This command identifies the peak demand limiting priority level This command identifies the smoke control priority level indicator.
indicator. The @PDL command is typically used in one of the The @SMOKE command is typically used in one of the following
following situations: situations:

• To test if a point is currently at PDL priority, an IF/THEN/ELSE • To test if a point is currently at smoke priority, an IF/THEN/ELSE
statement would look like the following: statement would look like the following:
300 IF (SFAN.EQ.@PDL) THEN ON(HORN) 300 IF (SFAN.EQ.@SMOKE) THEN ON(HORN)

• To release a point in the device from PDL to PPCL priority, an • To release a point in the device from smoke to PPCL priority, an
example of program code might look like the following: example of program code might look like the following:
700 RELEAS(@PDL,SFAN) 700 RELEAS(@SMOKE,SFAN)
NOTE: Using the @ priority indicator in this manner will not NOTE: Using the @ priority indicator in this manner will not
release the point if it has a higher priority (EMER, release the point if it has a higher priority (OPER).
SMOKE, and OPER).
Notes
Notes
• For APOGEE and pre-APOGEE firmware, the @ priority indicator
It is not recommended to release points from PDL priority unless must be used to release points from SMOKE, EMER, and PDL to
absolutely necessary. NONE priority.

• For APOGEE and pre-APOGEE firmware, if the @ priority • For BACnet firmware, the field panel releases the slot
indicator is not used, the field panel will release points from PDL corresponding to SMOKE in the Command Priority Table. The
to NONE. value of the point is set based on the highest slot in the
Command Priority Array; relinquish default is used if the
• For BACnet firmware, the field panel releases the slot Command Priority Array is now empty.
corresponding to PDL in the Command Priority Table. The value
of the point is set based on the highest slot in the Command
Priority Array; relinquish default is used if the Command Priority
Array is now empty.

Siemens Building Technologies, Inc. 1-75 1-76 Siemens Building Technologies, Inc.
Program Methodology—Point Status Indicators APOGEE PPCL User’s Manual

To verify that the lights are ON in the conference room, you could
Point Status Indicators use the following test:
740 IF (LIGHTS.EQ.ON) THEN ...
Point status indicators are used to monitor the current status of
points defined in the device. Point status indicators can be used to When this line of code is executed, the status of LIGHTS is checked
test if a point is at a specific status, and then act accordingly. to see if it is ON. If the point status equals ON, then a particular
Firmware uses syntactical words (ON, OFF, AUTO...) to indicate the action occurs. If the point status does not equal ON, an alternate
status of a point. action occurs.

NOTE: Since these points are related specifically to the functions Commanding and evaluating the HAND status
of the device, point status indicators cannot be used over
the network. Some Point Termination Modules (PTMs), Modular Equipment
Controllers (MECs), and Point Expansion Modules (PXMs) have an
optional HAND-OFF-AUTO (HOA) manual override switch that
Failed Point Values enables you to control equipment at the field panel.
If a point in a PPCL statement fails, the statement continues to use
the point's last known value. For example: CAUTION:
MIN(RMMIN,RM1TMP,RM2TMP,RM3TMP) The HOA override switch is not to be used as a
safety device when performing maintenance. If the
If RM1TMP is a physical point that fails when it has the lowest value HOA switch is used as a safety device, it can result
of the three RMTMP points, the MIN statement will set RMMIN to the in serious injury to personnel or cause damage to
last known value for RM1TMP. property or equipment. Always follow safety
procedures when performing maintenance.
Determining Point Status The HAND status identifies a point being controlled by an HOA
Point status indicators can be used with IF/THEN/ELSE commands manual override switch and not the system. The HOA override
to determine the status of a point. When a point is at a specific switch is only method you can use to control whether a point is
status, a certain action is taken. placed into or taken out of HAND status.

Example • Points cannot be commanded to HAND by using an operator


interface.
This example uses an L2SL point to explain the methodology of
testing point status. The point name is LIGHTS and its function is to • Points cannot be commanded to or removed from HAND status
control the lights for a large conference room. by using program statements.

The configuration for an L2SL point uses two addresses: Before attempting to command points that contain HOA override
switches, check the status of the PTM or MEC to ensure that the
• The first address controls an ON/OFF switch. point can be commanded.

• The second address monitors a proof condition. Use of this The HAND status appears as part of the overall point status. This
address is optional. status indicates that an HOA override switch is controlling a piece of
equipment. The equipment cannot be controlled through the operator
interface or PPCL until the HOA override is switched back to the
AUTO position.
Siemens Building Technologies, Inc. 1-77 1-78 Siemens Building Technologies, Inc.
Program Methodology—Point Status Indicators APOGEE PPCL User’s Manual

When a point is at HAND status, PPCL continues to issue


commands to that point. Since the HOA override switch is controlling Point Status Indicators Supported
the point, the PPCL commands do not take effect. When the HOA
APOGEE Firmware supports the following point status indicators:
override is switched back to the AUTO position, the last command
issued to that point, while in HAND status, is executed.
• Alarm (ALARM)
See Table 1-9 for a comparison of the point status while using the
• Alarm acknowledge (ALMACK)
HOA override switch.
• Auto (AUTO)
Table 1-9. Point Status with the HOA Override Switch.
HOA • Battery status - discharged (DEAD)
Point is being
Switch Result
Setting
controlled by… • Battery status - almost discharged (LOW)

HAND HOA switch Digital points: *ON* or *OFF* • Battery status - charged (OK)

Analog points: Value of the current • Day mode (DAYMOD)


HAND position. This value could differ
from the last commanded value. • Failed (FAILED)

OFF HOA switch Equipment being controlled is OFF. • Fast (FAST)

AUTO Operator interface Equipment is being controlled by • Manual override (HAND)


or PPCL operator interface or PPCL.
• Night mode (NGTMOD)

• Off (OFF)
CAUTION:
• On (ON)
Be aware of how your system will react before
attempting to control equipment by using an HOA • Proof on (PRFON)
override switch. Manually controlling equipment can
cause the system to react in an unstable manner. • Slow (SLOW)
Once control is returned to the system, you may Each point status indicator is described in more detail on the
need to perform other functions before normal following pages.
operations can resume.
Pre-APOGEE Firmware Revisions 12.5/1.5 and 12.51/1.51
Pre-APOGEE Firmware Revisions 12.5/1.5 and 12.51/1.51 support
the following status indicators:

• ALARM

• AUTO

• DAYMOD
Siemens Building Technologies, Inc. 1-79 1-80 Siemens Building Technologies, Inc.
Program Methodology—Point Status Indicators APOGEE PPCL User’s Manual

• DEAD Alarm (ALARM)


• FAILED Unitary pre-APOGEE APOGEE BACnet

• FAST Ž Ž Ž Ž

• HAND Syntax
• LOW if (pt1.eq.ALARM) then...
• NGTMOD pt1 A point name whose operational status is compared to the
status indicator.
• OFF • This parameter can be a digital, analog, logical
controller, or pulsed accumulator point type.
• OK

• ON Use
This status indicator determines if a point (pt1) is in the ALARM
• PRFON
state. This comparison is true if the point status is ALARM.
• SLOW
Example
The three status indicators OK, LOW, and DEAD are used 200 IF (TEMP02.EQ.ALARM) THEN ON(FAN)
specifically to support the $BATT resident point.

The HAND status indicator is used to monitor points terminated on


Point Termination Modules (PTMs) with an optional manual override
switch.

Unitary Firmware
Unitary firmware supports the following status indicators:

• ALARM

• DAYMOD

• FAILED

• NGTMOD

• OFF

• ON

• PRFON

Siemens Building Technologies, Inc. 1-81 1-82 Siemens Building Technologies, Inc.
Program Methodology—Point Status Indicators APOGEE PPCL User’s Manual

Action System Response


Alarm acknowledge (ALMACK)
FAN is commanded ON Alarm
Unitary pre-APOGEE APOGEE BACnet
Alarm state is acknowledged pt1 turns ON
Ž Ž FAN is commanded OFF pt1 remains ON (Fan is OFF and
Normal. The Return to Normal
Syntax has been acknowledged
internally)
if (pt1.eq.ALMACK) then...
Notes
pt1 A point name that is alarmable
For BACnet firmware, the ALMACK is true if any alarm event has
Use been acknowledged; that is, OFFNORMAL, NORMAL, or FAULT.
This status indicator determines the status of an alarm
acknowledgement. This comparison is true if the point alarm state
has been acknowledged.

Example 1
In the following statement, FAN is an alarmable point with Normal
Acknowledge Required by Operator Enabled.
200 IF (FAN.EQ.ALMACK) THEN ON(PT1) ELSE OFF(PT1)

Action System Response


FAN is commanded ON Alarm
Alarm state is acknowledged pt1 turns ON
FAN is commanded OFF pt1 turns OFF (Fan is OFF and
Normal, but requires
acknowledgement)
FAN Return to Normal state is p1 turns ON
acknowledged

Example 2
In the following statement, FAN is an alarmable point with Normal
Acknowledge Required by Operator Disabled.
200 IF (FAN.EQ.ALMACK) THEN ON(PT1) ELSE OFF(PT1)

Siemens Building Technologies, Inc. 1-83 1-84 Siemens Building Technologies, Inc.
Program Methodology—Point Status Indicators APOGEE PPCL User’s Manual

Auto (AUTO) Battery status—discharged (DEAD)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž

Syntax Syntax
if (pt1.eq.AUTO) then... if ($BATT.eq.DEAD) then...
pt1 A point name whose operational status is compared to the
status indicator. Use
• This parameter must be a LOOAP or LOOAL point This status indicator compares the value of the $BATT resident point
type. to determine if the backup battery is discharged. This comparison is
true if the battery is discharged.
Use
This status indicator determines if a point (pt1) is in the AUTO state. Example
This comparison is true if the point status is AUTO. 600 IF ($BATT.EQ.DEAD) THEN ALARM(P26BAT)

Example An alternate method to test the battery strength is to use the numeric
200 IF (HOAFAN.EQ.AUTO) THEN ON(LIGHT3) value (0) of DEAD.
600 IF ($BATT.EQ.0) THEN ALARM(P26BAT)

Notes
This function can only be used in field panels that have the ability to
monitor the strength of their backup battery.

See also
LOW, OK

Siemens Building Technologies, Inc. 1-85 1-86 Siemens Building Technologies, Inc.
Program Methodology—Point Status Indicators APOGEE PPCL User’s Manual

Battery status—almost discharged (LOW) Battery status—charged (OK)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž

Syntax Syntax
if ($BATT.eq.LOW) then... if ($BATT.eq.OK) then...

Use Use
This status indicator compares the value of the $BATT resident point This status indicator compares the value of the $BATT resident point
to determine if the backup battery is about to discharge. This to determine if the backup battery is operational. This comparison is
comparison is true if the battery is close to discharging. true if the battery is charged.

Example Example
600 IF ($BATT.EQ.LOW) THEN ALARM(P26BAT) 600 IF ($BATT.EQ.OK) THEN NORMAL(P26BAT)

An alternate method to test the battery strength is to use the numeric An alternate method to test the battery strength is to use the numeric
value (50) of LOW. value (100) of OK.
600 IF ($BATT.EQ.50) THEN ALARM(P26BAT) 600 IF ($BATT.EQ.100) THEN NORMAL (P26BAT)

Notes Notes
This function can only be used in field panels that have the ability to This function can only be used in field panels that have the ability to
monitor the strength of their backup battery. monitor the strength of their backup battery.

See also See also


DEAD, OK DEAD, LOW

Siemens Building Technologies, Inc. 1-87 1-88 Siemens Building Technologies, Inc.
Program Methodology—Point Status Indicators APOGEE PPCL User’s Manual

Day mode (DAYMOD) Failed (FAILED)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž

Syntax Syntax
if (pt1.eq.DAYMOD) then... if (pt1.eq.FAILED) then...
pt1 A point name whose operational status is compared to the pt1 A point name whose operational status is compared to the
status indicator. status indicator.
• For APOGEE firmware, use the TEC application • This parameter can be a digital, analog, logical
name. controller, or pulsed accumulator point type.
• For pre-APOGEE firmware, define the point as an
LCTLR point type. Use
This status indicator determines if a point (pt1) is in the FAILED
Use state. This comparison is true if the point status is FAILED.
This status indicator determines if an equipment controller is in DAY
mode. Example
200 IF (AHU2.EQ.FAILED) THEN ON(HORN)
For some equipment controllers, DAY mode is also referred to as
OCC (occupied) mode. If an equipment controller is in occupied
mode, PPCL recognizes this status as DAYMOD.

Example
200 IF (CTLR1.EQ.DAYMOD) THEN DAYSP = 75.0

Notes
This command is only valid for equipment controllers.

• For APOGEE firmware, the application name can correspond to a


TEC, LTEC, or UC.

• For pre-APOGEE firmware, LCTLR and LTCU point types must


be used.

Siemens Building Technologies, Inc. 1-89 1-90 Siemens Building Technologies, Inc.
Program Methodology—Point Status Indicators APOGEE PPCL User’s Manual

Fast (FAST) Manual override (HAND)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž

Syntax Syntax
if (pt1.eq.FAST) then... if (pt1.eq.HAND) then...
pt1 A point name whose operational status is compared to the pt1 A point name whose operational status is compared to the
status indicator. status indicator.
• This parameter must be defined as an LFSSL or
LFSSP point type.
Use
Use
This status indicator determines if a point (pt1) is in the HAND state.
This status indicator determines if a point (pt1) is in the FAST state. This comparison is true if the point is currently being controlled
This comparison is true if the point status is FAST. through a manual override switch.

Example Example
200 IF (FAN.EQ.FAST) THEN DAMPER = 8.0 200 IF (FAN.EQ.HAND) THEN OADAMP = 8.0

Notes
Points must be terminated on a Point Termination Module (PTM) or
field panel with a manual override switch.

Siemens Building Technologies, Inc. 1-91 1-92 Siemens Building Technologies, Inc.
Program Methodology—Point Status Indicators APOGEE PPCL User’s Manual

Night mode (NGTMOD) Off (OFF)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
if (pt1.eq.NGTMOD) then... if (pt1.eq.OFF) then...
pt1 A point name whose operational status is compared to the pt1 A point name whose operational status is compared to the
status indicator. status indicator.
• This parameter must be defined as an LCTLR point • This parameter must be defined as an LDI, LDO,
type. L2SP, L2SL, LOOAL, LOOAP, LFSSL, or LFSSP
point type.
Use
Use
This status indicator determines if an equipment controller is in
NIGHT mode. This status indicator determines if a point (pt1) is in the OFF state.
This comparison is true if the point status is OFF.
For some equipment controllers, NIGHT mode is also referred to as
UNOCC (unoccupied) mode. If an equipment controller is in Example
unoccupied mode, PPCL recognizes this status as NGTMOD. 200 IF (FAN.EQ.OFF) THEN RTDAMP = 3.0

Example
200 IF (CNTRL1.EQ.NGTMOD) THEN NGTSP = 78.0

Notes
This point is only valid for equipment controllers and is only valid
when used with the LCTLR point type or LTCU (pre-APOGEE only)
point type.

Siemens Building Technologies, Inc. 1-93 1-94 Siemens Building Technologies, Inc.
Program Methodology—Point Status Indicators APOGEE PPCL User’s Manual

On (ON) Proof on (PRFON)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
if (pt1.eq.ON) then... if (pt1.eq.PRFON) then...
pt1 A point name whose operational status is compared to the pt1 A point name whose operational status is compared to the
status indicator. status indicator.
• This point must be defined as any LDI, LDO, L2SP, • This point must be defined as any L2SP, L2SL,
L2SL, LOOAL, or LOOAP point type. LOOAL, or LOOAP point type.

Use Use
This status indicator determines if a point (pt1) is in the ON state. This status indicator compares the operational status of a point to
This comparison is true if the point status is ON. the PRFON status indicator. This comparison is true if the proof for
the point is in the ON state.
Example
200 IF (FAN.EQ.ON) THEN RTDAMP = 3.0 Example
200 IF (FAN.EQ.PRFON) THEN OADAMP = 8.5

Siemens Building Technologies, Inc. 1-95 1-96 Siemens Building Technologies, Inc.
Program Methodology—Point Status Indicators APOGEE PPCL User’s Manual

Slow (SLOW) Converting a Sequence of Operation into


Unitary pre-APOGEE APOGEE BACnet Program Code
Ž Ž Ž
Before you begin writing a program, determine the order in which the
PPCL statements are executed. Consider that you will most likely
Syntax make modifications during the life of a program, such as:
if (pt1.eq.SLOW) then...
• Changing the setpoint of a control loop.
pt1 A point name whose operational status is compared to the
status indicator. • Adding code for new equipment.
• This point must be defined as an LFSSL or LFSSP
• Modifying the control strategy.
point type.

Use Guidelines
This status indicator determines if a point (pt1) is in the SLOW state. The following guidelines will help you design a well-organized
This comparison is true if the point status is SLOW. program that is easy to modify and maintain:

Example • Use point names that describe the function of the point.
200 IF (FAN.EQ.SLOW) THEN DAMPER = 13.0
• Organize the flow of the program logic from top to bottom so that
errors are easier to trace.

• Use comment lines to document the functions performed by


specific groups of statements.

• Use a subroutine (also called a module) for a group of statements


that perform a specific task more than once during each pass of
the program.

• Make sure routing commands (GOTO) are used correctly. See


Subroutine Commands in this chapter for more information.

• With APOGEE firmware, it is best to create a separate program in


the same field panel rather than duplicate the control strategy
within a single program.

Siemens Building Technologies, Inc. 1-97 1-98 Siemens Building Technologies, Inc.
Program Methodology—Converting a Sequence of Operation into APOGEE PPCL User’s Manual
Program Code

Designing Programs Using a Modular Structure


Benefits of Using Subroutines
Modular programming is a style of programming that logically
organizes code into common functions. This style of programming By defining functions, procedures, and formulas in subroutines,
can be applied to a single program, or to multiple programs running programs become faster to create, easier to write, and require less
on the network or in one field panel. time to test. A subroutine used for one device can also be adapted
for other devices.

Objectives of Modular Programming For example, if a specific operation is performed five different times
during one pass of the program, you have two programming options.
The objectives of modular programming are to reduce program code
and standardize program code. 1. The first option is to duplicate the code in five different places in
the program.
Reducing Program Code
• This option adds five times as much program code.
If a section of code is used many times during one pass of the
program, that code can be defined as a subroutine (also called a • When making a change to one segment, you must
module). When that routine is needed, control is transferred to that remember to change all occurrences of that code.
part of the program.
2. The second option is to use a subroutine. Every time the
Standardizing Program Code operation is needed, program control is transferred to the
subroutine.
Subroutines help set programming standards that define where
functionality is placed in the program. If you use an established block • This option reduces the amount of mainline program code.
of code and do not change the line numbers, then that subroutine
will always be placed in the same location in the program. • When making a change, there is only one section of code to
change.

When to Use a Subroutine


Before creating a subroutine, determine if the subroutine contains
enough lines and is accessed enough times through one pass of the
program to be of any benefit. There are times that straight-line
program code will be the optimal solution.

• A single line of program code placed in a subroutine will never be


executed enough times to be of any benefit. In this case, you
would create more program code for a subroutine than you would
by using straight-line program code

• Conversely, a subroutine containing four lines of program code


becomes beneficial when it is called more than once.

Siemens Building Technologies, Inc. 1-99 1-100 Siemens Building Technologies, Inc.
Program Methodology—Converting a Sequence of Operation into APOGEE PPCL User’s Manual
Program Code

Table 1-10. Efficient Use of Subroutines. Subroutine Commands


Number of Program Lines
Using GOTO
Number of Calls 1 Line 2 Lines 3 Lines 4 Lines
per Program Pass or more The GOTO command is commonly used to skip over subroutines or
blocks of code and transfer control to another location in the
1 Call No No No No
program. Observe the following guidelines when using a GOTO
2 Calls No No Even Yes command:
3 Calls No No Yes Yes
• Make sure GOTO commands are routing control to a program
4 Calls or more No Yes Yes Yes line and not a comment line.

• Except for the last line of the program, all GOTO commands must
Use the following steps and Table 1-10 to determine when it transfer control to a sequentially higher line number.
becomes beneficial to use a subroutine:
• The GOTO command in the last line of the program is the only
1. Determine how many program lines a subroutine will contain command that transfers control to the top of the program.
(excluding the RETURN command).
• If no other program lines need to be read during a pass, transfer
2. Determine how many times the subroutine will be called through
program control to the GOTO command in the last line of the
one pass of the program.
program
• If the result is "NO," then it is more efficient to use straight-
line program code. • Use GOSUB and RETURN to transfer program control to and
from subroutines. Do not use the GOTO command.
• If the result is "EVEN," then there is no benefit for using
either method. Using GOSUB
• If the result is "YES," then it is more efficient to use a The GOSUB command transfers control to a subroutine. Variable
subroutine. arguments can be passed to the subroutine from the mainline code
using $ARG local variables (if applicable). The values in the $ARG
points replace their respective point values.

When the subroutine processing is complete, program control is


transferred back to the GOSUB statement by the RETURN
command. The field panel then continues processing at the next
sequential line number.

For information on transferring control to a subroutine, see GOSUB


and RETURN in Chapter 3–Syntax.

Siemens Building Technologies, Inc. 1-101 1-102 Siemens Building Technologies, Inc.
Program Methodology—Converting a Sequence of Operation into APOGEE PPCL User’s Manual
Program Code

Multiple Programs versus Subroutines


Program Testing
For APOGEE field panels, individual PPCL programs can be used to
replace subroutines. In some cases, time-based statements should To ensure that a program is working properly, it should be tested.
not be used in subroutines, and therefore require an individual
program. • Testing verifies that the program code works properly under
normal operating conditions.
Example • Testing checks the durability of the program by providing a wide
Five Air Handling Units (AHUs) use the same control strategy. Two variety of operating conditions that the program must evaluate.
possible options for PPCL programming are as follows:
Modular programming practices make it less time consuming to
1. Use one PPCL program that contains five duplicate blocks of completely test a program. Programs with a modular design are
program code. easier to test because there are fewer variables and lines of code to
test.
2. Use five programs that duplicate one block of program code.
When using multiple programs, the DEFINE statement can be What Should be Tested?
added to each block of code to identify the unique portion of the
Tests can be developed for individual modules or the complete
point names. A section of code might look like the following:
program. When the complete program is tested, the data used
100 DEFINE (AHU, “BUILDING1.AHU01”) should adequately test all conditions that may be encountered.
110 ON (“%AHU%SFAN”)
... Testing conditions should include values that the program does not
expect to encounter. For example, you might include the following
Since the DEFINE statement identifies the AHU that this
conditions:
program controls, there is no need to change the point names
throughout the block of code. This block can be copied to each
• Enter an input value of 40°F for an input that is defined to accept
program with changes made only to the DEFINE statement.
values from 50°F to 70°F.
For more information, see DEFINE in Chapter 3–Syntax.
• If the program turns a point ON, find out what happens when you
turn it OFF.

• Simulate a sensor or fan motor failure and see how the program
reacts.
The precautions taken in programming and testing will show you
how the program processes errors and help prevent downtime when
the system encounters unusual operating conditions.

Siemens Building Technologies, Inc. 1-103 1-104 Siemens Building Technologies, Inc.
Program Methodology—Converting a Sequence of Operation into APOGEE PPCL User’s Manual
Program Code

Program Documentation External documentation


Programs should have documentation that identifies the program External documentation refers to physical control diagrams, layouts,
functions and the equipment being controlled. Fortunately, the and information written about the program. This information can be
modular programming method makes an easier task of used as a reference to learn about the functions of the control
documentation. system. The following two methods are commonly used for external
documentation:
The following documentation methods are described in more detail
on the following pages: • Decision tables

• Internal documentation • Pseudocode

• External documentation Decision tables


One or more of these methods can be used to document program Decision tables provide a visual representation of how a specific
operation. In addition, you can use these documentation methods as piece of equipment interacts with other equipment during each mode
planning tools when designing a PPCL program. of operation. Like truth tables, a decision table defines inputs that are
logically compared to produce outputs (results).
Internal documentation • Inputs for a decision table are the types of equipment and all
Internal documentation refers to information written into the program possible modes of operation.
using comment lines.
• In each row of the table, a piece of equipment is compared to
• Comment lines allow you to enter text information describing the each mode of operation to determine the status of that equipment
functionality of a specific section of code. during the mode.

• Comment lines are especially helpful for describing subroutines Table 1-11 provides an example of a decision table that defines six
and areas of program code that are difficult to understand. pieces of equipment and four modes of operation.

You must enter the letter C after the line number to prevent the Table 1-11. Example of a Decision Table.
program from interpreting your comments as program commands.
Modes of Operation
For example:
200 C THIS COMMAND WILL TURN ON SFAN01 Equipment type Shutdown Day mode Smoke Warm-up
210 C IF RMTEMP VALUE FALLS BELOW 68 OR Supply Fan Off On On On
220 C RISES ABOVE 78. SFAN01 WILL REMAIN
Return Fan Off On On On
230 C ON/OFF FOR AT LEAST 5 MINUTES.
CC Valve Closed Modulate Modulate Closed
NOTE: The device and software used to program PPCL
determines how comment lines must be entered. For Mixing Dampers Closed Modulate Modulate Closed
more information on using comment lines, see the user's Supply Fan Vol Modulate Modulate Open Modulate
manual for the device or software you are using. Return Fan Vol Modulate Modulate Open Modulate

Siemens Building Technologies, Inc. 1-105 1-106 Siemens Building Technologies, Inc.
Program Methodology—Converting a Sequence of Operation into APOGEE PPCL User’s Manual
Program Code

Pseudocode Developing a Sequence of Operation


Pseudocode is information written in a non-syntactical manner to 1. Read through the problem to gain an understanding of what the
document program code. Programmers often use pseudocode to sequence of operation is asking you to do.
quickly organize their ideas before writing the code. After the code is
If you have a large sequence of operation, you may want to
written, the pseudocode becomes a reference that describes the
break it down into smaller, manageable sections.
functionality of the program.
2. Determine modes of operation that will be used during system
For example, when solving a programming problem, you might start operation. Examples of operational modes are:
by asking yourself questions about what is to be accomplished. As
you define what must be accomplished, you can create a logical list • Day mode
of the steps the program should perform. You might create a
pseudocode list with the following items: • Night mode

1. Check mixed air temperatures • Emergency mode

2. Check outside air temperatures Defining the modes of operation helps you design the code in a
highly organized manner.
3. Open/close dampers as needed
3. Identify specific controls and procedures that need program
4. Start/stop fans code. Look for key phrases, such as:
From this list, you would begin writing program code to accomplish "This system must control..."
these functions.
"Will perform..."
Solving a Programming Problem "Cycle..."
When you first start programming in PPCL, you should have a "Calculate..."
problem-solving method. The time you spend organizing your ideas
Each of these phrases becomes some type of control for which
in advance helps prevent program logic flaws.
you will write PPCL code.
The following problem-solving example begins with the sequence of 4. Classify each type of control as a mode of operation.
operation, continues through the testing, and ends with documenting
the final program code. 5. Use a decision table or pseudocode to determine the order in
which the tasks should be performed.
Either of these methods is acceptable, or you may find another
method to organize the tasks. Use the method that is the easiest
and most helpful for you.

Siemens Building Technologies, Inc. 1-107 1-108 Siemens Building Technologies, Inc.
Program Methodology—Converting a Sequence of Operation into APOGEE PPCL User’s Manual
Program Code

6. Create program modules and start writing code for each mode of
operation.
• Start with one mode and code the solution.

• Comment the program where appropriate.

• If you have experience writing programs, you might write two


or three modes before continuing.

• See Chapter 3–Syntax for help with PPCL statements.


7. Type each program module into the computer.
• Define any points that are used in the database.

• Include comment lines in each module.

Execute and Test the Program Code


Through testing, you may discover an easier method for
accomplishing a particular control strategy.

1. Before you actually use a PPCL program, run the program and
verify that it works.
Depending on your experience writing PPCL programs, you may
not write an error-free program every time. Getting programs to
work properly takes time and patience.
2. Simulate conditions that the program will encounter.
3. Test the program by entering information outside the defined
limits of the program.
4. Simulate an equipment failure and see how the program
responds.

Document the Program


1. Verify that your comment lines clearly describe the functions
being performed in each module.
2. Keep the notes you created while developing the sequence of
operation.

Siemens Building Technologies, Inc. 1-109 1-110 Siemens Building Technologies, Inc.
APOGEE PPCL User’s Manual

Chapter 2–Control Option Duty Cycling (DC)


Comparisons Most building control systems are designed to meet the expected
maximum system demand. However, the maximum demand is
usually required only a few times per year for short periods of time.
As a result, the system is oversized for the normal load so that it can
Overview meet this exceptional demand.

Chapter 2 discusses the following topics: The duty cycling (DC) function coordinates the operation of all
available equipment to compensate for additional equipment
• Concepts behind some of the major control applications in the capacity that is not normally needed. During normal system
APOGEE Automation System, namely: operation, some equipment is cycled off for short periods of time to
distribute equipment wear and reduce operating costs.
— Duty Cycling (DC)
Applications that can use ON/OFF switching in hourly patterns work
— Enthalpy and Dry Bulb Economizer Control best with a duty cycling program.
— Peak Demand Limiting (PDL) CAUTION:

• Procedures the system uses to schedule operations and optimize Be careful when designing your programs so that
system use, namely: functions do not conflict. If points used for DC are
also commanded by another application, such as
— Start/Stop Time Optimization (SSTO) Time-of-Day (TOD), one program may interfere with
the operation of the other if both functions are trying
— Time-of-Day (TOD) to control a point during the same time period.
For specific information on using the PPCL commands identified in Example
this chapter, see Chapter 3–Syntax.
The following example uses duty cycling in a school building to
control a hall fan, called HFAN.

• In order to conserve energy, the fan will run only during the times
when students are in the hall.

• In this school, classes start on the hour and last for 50 minutes.

• Students are in the hall during a 10-minute period before the next
class.

• Since the hall that HFAN serves has good ventilation, the fan
should run for the last 15 minutes of the hour and for the first five
minutes of the next hour.

• The rest of the time the fan is shut off.

Siemens Building Technologies, Inc. 2-1 2-2 Siemens Building Technologies, Inc.
Control Option Comparisons—Duty Cycling (DC) APOGEE PPCL User’s Manual

The code for duty cycling HFAN is as follows:


1000 C THIS DC COMMAND DUTY CYCLES HFAN
Enthalpy and Dry Bulb Economizer
1010 C ACCORDING TO THE FOLLOWING SCHEDULE: Control
1020 C
1030 C FIRST 15 MINUTES – ON, OFF, OFF (1)
Enthalpy is the total amount of heat energy contained within one
1040 C SECOND 15 MINUTES – OFF, OFF, OFF (0)
pound of air.
1050 C THIRD 15 MINUTES – OFF, OFF, OFF (0)
1060 C FOURTH 15 MINUTES – ON, ON, ON (7) When a coil cools the air, it is cooling both the air and the water
1070 C vapor contained in the air as humidity. The higher the humidity, the
1100 DC(HFAN,7001) more water vapor is in the air. Since humid air takes more energy to
cool than dry air, it would make sense to monitor both the
Duty Cycling Commands temperature and the humidity of the outside air when we consider
the economizer control.
Duty cycling has two commands that can be used independently of
each other: DC and DCR. The DC and DCR commands do not have Conventional economizer control uses only the temperatures of the
to be defined in a specific order. outside air and return air to determine when to minimize the damper
position. The total energy content of the return air may or may not be
The DC Command higher than the outside air.
• The DC command turns points ON and OFF according to a
defined schedule. Example—Economizer Comparison
• This command is best applied in situations where the The cooling coil needs to drop the energy of the air to 23.2 Btu/lb
environment is constant or where there are minor deviations in before it enters the room. With a conventional economizer, the
temperature or humidity. For example, a storeroom, maintenance control system compares the 77°F return temperature and the 85°F
shop, building core, or service area. outside air temperature and closes the outside air dampers to
minimum. This results in each pound of recycled air requiring the
For more information, see DC in Chapter 3–Syntax. removal of 8.4 Btu of energy.

With an economizer that checks the enthalpy, the total enthalpies


The DCR Command would be compared. In this case, the 28.8 Btu/lb would be compared
• The DCR command turns points ON and OFF according to a to the 31.6 Btu/lb and the outside air dampers would be set to full
temperature range defined with a dead band (DBSWIT). open. The supply air now only needs to remove 5.6 Btu for each
pound of air.
• DCR checks the temperature point value every five minutes.
Using an enthalpy economizer for this situation has reduced the
• This command is best used in situations where the environment cooling energy demand by 50%.
fluctuates or where deviations in temperature or humidity are
undesirable. For example, a classroom, meeting room, lobby
area, or an area adjacent to an exterior wall.
For more information, see DCR and DBSWIT in Chapter 3–Syntax.

Siemens Building Technologies, Inc. 2-3 2-4 Siemens Building Technologies, Inc.
Control Option Comparisons—Enthalpy and Dry Bulb Economizer Control APOGEE PPCL User’s Manual

Enthalpy Economizer Calculations


Peak Demand Limiting (PDL)
Enthalpy economizer control uses a subroutine to perform the
enthalpy calculation. The following calculations can be added to a Peak Demand Limiting (PDL) helps companies manage their
PPCL program: electrical consumption during periods of peak demand.
• Enthalpy from dry bulb and relative humidity (Btu/lb or kJ/kg) • PDL reduces the electrical consumption of a building control
• Enthalpy from dry bulb and dew point (Btu/lb or kJ/kg) system by shedding loads (turning OFF equipment) when the
electrical demand exceeds a setpoint.
For implementation of enthalpy and dry bulb economizer control,
contact your Siemens Building Technologies representative. • Loads are restored (equipment is turned ON) when electrical
demand falls below the setpoint. However, the equipment
remains OFF if restoring the load will exceed the setpoint.

Example
PDL is monitoring an electrical meter that supplies power to three air
handling units and some auxiliary equipment. Two of the air handlers
are currently ON while the third air handler is about to be turned ON.
If all three air handlers and the auxiliary equipment are operating at
one time, PDL predicts that electrical demand will exceed the peak
setpoint of 500 kWh.

To keep electrical demand from exceeding the setpoint, PDL shuts


OFF (sheds) the auxiliary loads that are not critical. Once the
building is operating at a level where the electrical demand will stay
within the setpoint, the auxiliary equipment will be restored.

Why Use PDL?


Companies often have a contracted rate with the utility company
based on their expected electrical consumption throughout the year.
The contract often limits electrical use during periods of peak
demand and sets a maximum use over a period of time. If the
company exceeds the contractual demand, the utility company can
impose surcharges or charge higher rates.

Siemens Building Technologies, Inc. 2-5 2-6 Siemens Building Technologies, Inc.
Control Option Comparisons—Peak Demand Limiting (PDL) APOGEE PPCL User’s Manual

Why Use PDL Instead of Duty Cycling? Distributed Peak Demand Limiting
Although duty cycling (DC) can also be used to reduce electrical With Distributed PDL, a field panel on the network monitors meter
demand, duty cycling only controls loads according to a time readings, forecasts the demand, and assigns shed targets to the
schedule. The PDL function can monitor the total electrical demand other field panels on the network.
and prevent the system from exceeding a demand setpoint.
NOTE: Distributed PDL can only work on Protocol 2 networks.

PDL Application Programs The Predictor Panel


There are two types of PDL application programs: PPCL statements are entered in a specified field panel (called the
predictor panel) to control all meter monitoring and demand
• Target Peak Demand Limiting (TPDL) forecasts for a meter area. All meter inputs from the field must be
connected directly to the predictor panel.
• Distributed Peak Demand Limiting
These applications are described in more detail in the following The predictor panel compares predicted demand to the demand limit
paragraphs. setpoint and decides how many kilowatts of load must be shed for
the meter area. In addition to monitoring and predicting demand, the
predictor panel is also responsible for keeping data for the reports.
Target Peak Demand Limiting (TPDL)
Each predictor panel can control a total of seven load-handling field
With Target PDL (TPDL), the Insight workstation monitors meter
panels.
readings, forecasts the demand, and assigns shed targets to each
field panel. The shed target is based on the percentage of total loads
that can be shed by the field panel. The Load-Handling Field Panels
Each load-handling field panel receives a demand target from the
Each field panel is responsible for shedding and restoring the loads predictor panel.
defined in it. If network communication is lost, the field panel
continues to limit demand according to its last assigned target. The load-handling field panel maintains the demand target level by
shedding and restoring the loads that it controls.
Defining Target PDL
TPDL uses two PPCL commands that are defined in the load-
handling field panel. The commands must be defined in the following
order:

1. PDL – Maintains the target kilowatt consumption level by


shedding and restoring loads as needed.
2. PDLDAT – Defines the power consumption limit that is used by
the PDL command.

Siemens Building Technologies, Inc. 2-7 2-8 Siemens Building Technologies, Inc.
Control Option Comparisons—Peak Demand Limiting (PDL) APOGEE PPCL User’s Manual

Defining Distributed PDL


Start/Stop Time Optimization (SSTO)
Distributed PDL uses five PPCL commands that must be defined in
the following order:
The Start/Stop Time Optimization (SSTO) feature adjusts the
1. PDLMTR – Monitors consumption meters to determine power equipment start and stop based on calculations that optimize use of
usage, maintains consumption reports, predicts usage, issues the system.
warnings, and restarts meters.
The equipment start and stop times are based on the outside and
2. PDLSET – Assigns various consumption limiting setpoints to inside temperatures of the building. Each time the value of the indoor
specific time intervals. or outdoor air temperature changes, SSTO recalculates the optimal
values for system operation.
3. PDLDPG – Distributes the difference between the PDL resident
point and the setpoint.
Where to Use SSTO
4. PDL – Maintains the target kilowatt consumption level by
shedding and restoring loads as needed. SSTO programs should be used in areas with extreme outside
zones, unstable environments, or zones where the space
5. PDLDAT – Defines a power consuming load that will be
temperature is affected by elements like wind, sunlight, or auxiliary
controlled by a PDL command.
sources of heating or cooling loads.
• The predictor field panel must have the PDLMTR, PDLSET,
and PDLDPG commands defined in its PPCL program. Example
• Each load-handling field panel must have the PDL and SSTO is controlling the lobby of a building. When the lobby opens at
PDLDAT statements defined in its PPCL program. 8:00 A.M.,, the temperature must be 75°F.
NOTE: This configuration assumes that the predictor field panel If the lobby temperature is 72°F at 7:30 A.M., SSTO calculates that
does not have any loads defined. If the predictor field the system needs 10 minutes to warm the lobby to 75°F by 8:00.
panel is also controlling loads, the PDL and PDLDAT SSTO starts the warm-up procedure for the lobby at 7:50 A.M.
commands must also be defined in the PPCL program.
On another day, the lobby temperature is 69°F. SSTO calculates that
the system needs 20 minutes to warm the lobby to 75°F by 8:00
A.M. SSTO starts the warm-up procedure at 7:40 A.M.

Siemens Building Technologies, Inc. 2-9 2-10 Siemens Building Technologies, Inc.
Control Option Comparisons—Start/Stop Time Optimization (SSTO) APOGEE PPCL User’s Manual

Defining SSTO An adjusted start time (ast) and adjusted stop time (asp) are added
to or subtracted from the times calculated by SSTO. If the ast or asp
Three PPCL commands are defined in the field panel for SSTO. They
value reaches a certain limit, SSTO is forced to start or stop at the
must be specified in the following order:
earliest (est) or latest (lst) time.
1. TODMOD – Defines the specific mode for each day of the week.
The variables ast and asp may change to help tune the times. If
This command is shared with the Time-Of-Day group of
allowed to reach a high number, it is possible for the following to
statements and is necessary for SSTO to work.
occur:
2. SSTOCO – Establishes the thermal characteristics of the
building based on how the building reacts to changes in • ast may adjust the calculated start time (cst) past the earliest start
temperature. time (est) or latest start time (lst).
3. SSTO – Calculates optimal start and stop times. • asp may adjust the calculated stop time (csp) past the latest start
All optimization calculations and equipment control are performed in time (lst) or latest stop time (lsp).
the field panel where the SSTO and SSTOCO commands are This means that the equipment always starts or stops at the earliest
defined. Each program within a field panel may also perform SSTO or latest start or stop time.
calculations for up to 5 zones.
Each day, the SSTO statement uses the heating auto-tune
CAUTION: coefficient (hceof4) and the cooling auto-tune coefficient (ccoef4)
Be careful when designing your programs so that defined in the SSTOCO statement to adjust the calculated start time
functions do not conflict. If points used for SSTO are (cst) and the calculated stop time (csp).
also commanded by another application, such as
Duty Cycling (DC), one program may interfere with Ast and Asp Initial Settings
the operation of the other if both functions are trying
Set the ast and asp variables to zero during initial setup of the SSTO
to control a point during the same time period.
statement. If the SSTO statement has been set up properly, these
values typically stay below 5 times the variables hcoef4 or ccoef4.
How SSTO Adjusts the Start and Stop Times
The following abbreviations are used in this section: If the ast or asp variables are continually incrementing or
decrementing the calculated times, then check the SSTO setup and
asp Adjusted stop time examine the SSTOCO coefficients.
ast Adjusted start time

ccoef4 Cooling auto-tune coefficient

csp Calculated stop time

cst Calculated start time

est Earliest start time

hceof4 Heating auto-tune coefficient

lst Latest start time

Siemens Building Technologies, Inc. 2-11 2-12 Siemens Building Technologies, Inc.
Control Option Comparisons—Start/Stop Time Optimization (SSTO) APOGEE PPCL User’s Manual

SSTO Formulas
Cooling Season—Optimum Start Time
The following formulas, used for calculating the optimal start and stop
times during the heating and cooling seasons, are outlined on the If the indoor temperature is less than the desired temperature, then the
following pages: optimum start time is LB.

• Cooling Season—Optimum Start Time Where:


LB = Latest begin time defined in the SSTO command.
• Cooling Season—Optimum Stop Time

• Heating Season—Optimum Start Time If the indoor temperature is greater than or equal to the desired
temperature, then the optimum start time is:
• Heating Season—Optimum Stop Time
OB - (d * CC) - (d * f * (CT/10)) + AB
• Cooling Mode at Occupancy Begin
Where:
• Cooling Mode at Occupancy End
OB = Occupancy begin time from SSTO command.
• Heating Mode at Occupancy Begin
d = Indoor temperature minus the desired temperature.
• Heating Mode at Occupancy End CC = Cooling coefficient (ccoef1) from SSTOCO command.
NOTE: The example values for coefficients shown in this manual f = Outdoor temperature minus the desired temperature.
should not be used without first calculating what the
number should be. CT = Cooling transfer coefficient (ccoef3) from SSTOCO
command.
AB = Adjust begin time from SSTO command.

Siemens Building Technologies, Inc. 2-13 2-14 Siemens Building Technologies, Inc.
Control Option Comparisons—Start/Stop Time Optimization (SSTO) APOGEE PPCL User’s Manual

Cooling Season—Optimum Stop Time Heating Season—Optimum Start Time


If the indoor temperature is less than the desired temperature, then the If the indoor temperature is less than the desired temperature, then the
optimum stop time is: optimum start time is:
OE + ((10 * CR * d)/f) + AE OB + (d x HC) - ((d * f * HT) / 25) + AB
Where: Where:

OE = Occupancy end time from SSTO command. OB = Occupancy begin time from SSTO command.
CR = Cooling retention coefficient in hours (ccoef2) from d = Indoor temperature minus the desired temperature.
SSTOCO command.
HC = Heating coefficient (hcoef1) from SSTOCO command.
d = Indoor temperature minus the desired temperature.
f = Outdoor temperature minus the desired temperature.
f = Outdoor temperature minus the desired temperature.
HT = Heating transfer coefficient (hcoef3) from SSTOCO
AE = Adjust end time from SSTO command. command.
AB = Adjust begin time from SSTO command.
If the indoor temperature is greater than or equal to the desired
temperature, the optimum stop time is LE:
If the indoor temperature is greater than or equal to the desired
Where: temperature, then the optimum stop time is LB:

LE = Latest end time from SSTO command. Where:


LB = Latest begin time from SSTO command.

Siemens Building Technologies, Inc. 2-15 2-16 Siemens Building Technologies, Inc.
Control Option Comparisons—Start/Stop Time Optimization (SSTO) APOGEE PPCL User’s Manual

Heating Season—Optimum Stop Time Cooling Mode at Occupancy Begin


If the indoor temperature is less than the desired temperature, then the If the indoor temperature is greater than the desired temperature plus
optimum stop time is LE: one degree, then:
Where: AB = AB - CA
LE = Latest end time from SSTO command. Where:
AB = Adjust begin time from SSTO command.
If the indoor temperature is greater than or equal to the desired
CA = Cooling auto-tune coefficient (ccoef4) from SSTOCO
temperature, then the optimum stop time is:
command.
OE + ((25 * HR * d) / f) + AE
Where: If the indoor temperature is less than the desired temperature minus one
degree, then:
OE = Occupancy end time from SSTO command.
AB = AB + CA
HR = Heating retention coefficient (hcoef2) from SSTOCO
command. Where:
d = Indoor temperature minus the desired temperature. AB = Adjust begin time from SSTO command.
f = Outdoor temperature minus the desired temperature. CA = Cooling auto-tune coefficient (ccoef4) from SSTOCO
command.
AE = Adjust end time from SSTO command.

Siemens Building Technologies, Inc. 2-17 2-18 Siemens Building Technologies, Inc.
Control Option Comparisons—Start/Stop Time Optimization (SSTO) APOGEE PPCL User’s Manual

Cooling Mode at Occupancy End Heating Mode at Occupancy Begin


If the indoor temperature is greater than the desired temperature plus If the indoor temperature is greater than the desired temperature plus
one degree, then: one degree, then:
AE = AE + CA AB = AB + HA
Where: Where:
AE = Adjust end time from SSTO command. AB = Adjust begin time from SSTO command.
CA = Cooling auto-tune coefficient (ccoef4) from SSTOCO HA = Heating auto-tune coefficient (hcoef4) from SSTOCO
command. command.

If the indoor temperature is less than desired the temperature minus one
If the indoor temperature is less than the desired temperature minus one
degree, then:
degree, then:
AB = AB - HA
AE = AE - CA
Where:
Where:
AB = Adjust begin time from SSTO command.
AE = Adjust end time from SSTO command.
HA = Heating auto-tune coefficient (hcoef4) from SSTOCO
CA = Cooling auto-tune coefficient (ccoef4) from SSTOCO
command.
command.

Siemens Building Technologies, Inc. 2-19 2-20 Siemens Building Technologies, Inc.
Control Option Comparisons—Start/Stop Time Optimization (SSTO) APOGEE PPCL User’s Manual

Heating Mode at Occupancy End Time-of-Day (TOD)


If the indoor temperature is greater than the desired temperature plus
one degree, then: The Time-Of-Day (TOD) function is the software equivalent of the
AE = AE - HA time clock. TOD starts and stops equipment according to a defined
schedule.
Where:
AE = Adjust end time from SSTO command. Where to Use TOD
HA = Heating auto-tune coefficient (hcoef4) from SSTOCO TOD can be used for running equipment on a scheduled basis. For
command. example, lights, doors (locking and unlocking), or exhaust fans.

CAUTION:
If the indoor temperature is less than the desired temperature minus one Be careful when designing your programs so that
degree, then: functions do not conflict. If points used for TOD are
AE = AE + HA also commanded by another application, such as
Duty Cycling (DC), one program may interfere with
Where: the operation of the other if both functions are trying
AE = Adjust end time from SSTO command. to control a point during the same time period.
HA = Heating auto-tune coefficient (hcoef4) from SSTOCO
command.
Defining Time-Of-Day
The following PPCL commands are defined in the field panel for the
TOD function:

• TODMOD – Defines the types of schedules (normal, weekend,


etc.) for each day of the week. The TODMOD statement must be
defined first.

• HOLIDA – Used in conjunction with the TOD function to set


schedules for equipment during holidays. The HOLIDA command
must be placed before any TOD or TODSET commands.

• TOD – Commands up to 16 digital points ON or OFF at specified


times.

• TODSET – Sets the values of up to ten analog points at specified


start and stop times during the day.
The TOD and TODSET commands do not have to be defined in a
specific order.

Siemens Building Technologies, Inc. 2-21 2-22 Siemens Building Technologies, Inc.
Control Option Comparisons—Time-of-Day (TOD) APOGEE PPCL User’s Manual

NOTE: Schedules can also be created using the Time-of-Day Example 2: Holidays defined in TOD calendar, but not in PPCL
(TOD) calendar that offers a menu-driven interface. For
The following example illustrates the results when defining holidays
complete information on defining and maintaining daily
using the TOD Calendar.
operating schedules using the TOD calendar, see the
APOGEE Field Panel User’s Manual (125-3000) or the The TOD calendar has the following entries:
Field Panel User’s Manual (125-1895) for pre-APOGEE
field panels. 03-May-1994 Holiday

08-Sep-1994 Holiday
Example 1: Holidays defined in PPCL, but not in the TOD calendar
The following example illustrates the results when defining holidays The program contains the following PPCL TOD commands:
using the PPCL HOLIDA command. 100 TODMOD(1,1,1,1,1,1,1)
50 HOLIDA(5,3,9,8) 110 TOD(1,1,18:00,07:00,LITE1)
120 TOD(1,1,18:00,19:00,FAN1)
The following TOD commands are defined in the TOD database:
130 TOD(16,1,17:00,10:30,LITE1)
Monday – Sunday
Based on this schedule, the following will occur:
07:00:00 OFF LITE1

18:00:00 ON FAN1 • Every day except May 3 or September 8, LITE1 will go ON at


18:00 and turn OFF at 07:00, and FAN1 will go ON at 18:00 and
18:00:00 ON LITE1 turn OFF at 19:00.
19:00:00 OFF FAN1 • On May 3 and September 8, LITE1 will go ON at 17:00 and turn
OFF at 10:30, while FAN1 will not be commanded.
Holiday
10:30:00 OFF LITE1 Example 3: Holidays defined in both PPCL HOLIDA and the TOD
calendar
17:00:00 ON LITE1
The following example illustrates the results when defining holidays
Based on this schedule, the following will occur: using both the PPCL HOLIDA statement and the TOD calendar.
• Every day except May 3 and September 8, LITE1 will go ON at NOTE: Problems can occur if different holiday schedules are
18:00 and turn OFF at 07:00, and FAN1 will go ON at 18:00 and defined in the HOLIDA statement and in the TOD
turn OFF at 19:00. calendar, and then both methods are used at the same
time. The equipment commanded by the PPCL TOD
• On May 3 and September 8, LITE1 will go ON at 17:00 and turn command will not only execute the holidays defined in the
OFF at 10:30, while FAN1 will not be commanded. HOLIDA statement, but also those defined in the TOD
calendar.

If you choose to define a holiday using the PPCL


HOLIDA statement and the TOD calendar, make sure
that the holiday is defined the same in both places.

Siemens Building Technologies, Inc. 2-23 2-24 Siemens Building Technologies, Inc.
Control Option Comparisons—Time-of-Day (TOD) APOGEE PPCL User’s Manual

The following TOD commands are defined in the TOD database:


IF/THEN/ELSE Time-Of-Day
Monday – Sunday
Although Time-Of-Day uses actual commands dedicated to
07:00:00 OFF LITE1 performing TOD functions, time scheduling can be accomplished
18:00:00 ON FAN1 using the IF/THEN/ELSE command.

18:00:00 ON LITE1 Example


19:00:00 OFF FAN1 The following example illustrates TOD scheduling using the
IF/THEN/ELSE command to control the outdoor parking lights for a
Holiday
building.
10:30:00 OFF LITE1
The lights must be ON from 7:00 p.m. until 5:00 A.M. The
17:00:00 ON LITE1 IF/THEN/ELSE statement for this schedule might look like the
following:
The PPCL HOLIDA command defines the following holidays:
100 C THIS LINE OF CODE TURNS THE LIGHTS
100 HOLIDA(4,1,6,14) 102 C OFF AT 5:00 AM AND ON AT 7:00 PM.
104 C
The TOD calendar defines the following holidays:
110 IF(TIME.GT.5:00.AND.TIME.LT.19:00)THEN
03-May-1994 Holiday OFF(LITES)ELSE ON(LITES)
08-Sep-1994 Holiday

Based on these schedules, the following will occur:

• LITE1 operates according to the holiday schedule on four days:


April 1, May 3, June 14, and September 8.

• This causes a problem if LITE1 should only operate on a holiday


schedule of May 3 and September 8.

Siemens Building Technologies, Inc. 2-25 2-26 Siemens Building Technologies, Inc.
Control Option Comparisons—Time-of-Day (TOD) APOGEE PPCL User’s Manual

APOGEE Interaction with PPCL TOD


APOGEE field panels contain an equipment scheduling application,
which replaces TOD in PPCL. Some portions of TOD programming
are shared by equipment scheduling, specifically the system
calendar.

• Equipment scheduling uses replacement days and special days.

• The R1 replacement day in equipment scheduling corresponds to


the Holiday Schedule in the TODMOD command.

Siemens Building Technologies, Inc. 2-27 2-28 Siemens Building Technologies, Inc.
APOGEE PPCL User’s Manual

Duty Cycling
Chapter 3–Command Syntax DC .............................................................................................. 29
DCR............................................................................................ 31
Enthalpy Optimization
Overview GOSUB ...................................................................................... 50
RETURN .................................................................................... 94
Chapter 3 describes the syntax, functionality, and special exceptions
for each command, as well as related commands. GOTO Statement
GOTO......................................................................................... 57
This chapter is arranged alphabetically by command. The following
table of contents groups the commands by control function: Local Variables
LOCAL........................................................................................ 65
Activate/Deactivate PPCL Lines
Operator Interface Program
ACT .............................................................................................. 4
DEACT ....................................................................................... 33 OIP ............................................................................................. 75
DISABL....................................................................................... 34
Peak Demand Limiting
ENABLE ..................................................................................... 45
PDL ............................................................................................ 80
Closed Loop Control PDLDAT ..................................................................................... 83
ADAPTM ...................................................................................... 5 PDLDPG .................................................................................... 85
ADAPTS ..................................................................................... 16 PDLMTR .................................................................................... 87
LOOP ......................................................................................... 66 PDLSET ..................................................................................... 90

Conditional Control Point Commands


IF/THEN and IF/THEN/ELSE..................................................... 60 ON .............................................................................................. 78
OFF ............................................................................................ 73
COV Control STATE......................................................................................105
DISCOV...................................................................................... 37 AUTO ......................................................................................... 25
ENCOV....................................................................................... 47 FAST .......................................................................................... 49
SLOW......................................................................................... 98
Emergency Control SET ............................................................................................ 96
EMON......................................................................................... 42 DAY ............................................................................................ 26
EMOFF....................................................................................... 41 NIGHT ........................................................................................ 71
EMFAST..................................................................................... 40
Point Control
EMSLOW ................................................................................... 44
EMAUTO .................................................................................... 39 INITTO........................................................................................ 63
EMSET ....................................................................................... 43 MAX............................................................................................ 69
MIN............................................................................................. 70
Dead Band Switching TIMAVG....................................................................................108
DBSWIT ..................................................................................... 27 WAIT ........................................................................................116

Siemens Building Technologies, Inc. 3-1 3-2 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

Point Control and Characteristics


ALARM ....................................................................................... 24
ACT (Activate lines)
DISALM ...................................................................................... 36 Unitary pre-APOGEE APOGEE BACnet
ENALM ....................................................................................... 46
Ž Ž Ž Ž
HLIMIT........................................................................................ 58
LLIMIT ........................................................................................ 64
NORMAL .................................................................................... 71 Syntax

Program Control ACT(line1,...,line16)


DEFINE ...................................................................................... 34 line1 Valid PPCL line numbers.
ONPWRT ................................................................................... 79 through • Line numbers must be entered as integers ranging
SAMPLE..................................................................................... 95 line16 from 1 to 32767.
TABLE ......................................................................................106 • A range of PPCL lines cannot be defined using the
ACT command.
Release Statement
Use
RELEAS ..................................................................................... 92
Activates lines of PPCL code so they can be examined and
Start/Stop Time Optimization executed.
SSTO.......................................................................................... 99
SSTOCO ..................................................................................102 • The ACT command only affects the lines of PPCL program for
the device where the program resides.
Telephone ID Numbers
DPHONE.................................................................................... 38 • ACT only enables PPCL lines that are specifically defined in the
EPHONE .................................................................................... 48 command.

Time of Day • A maximum of 16 lines of PPCL code can be controlled with one
ACT command.
HOLIDA ...................................................................................... 59
TOD..........................................................................................110 Example
TODMOD .................................................................................112 100 IF (TIME.GT.8:00.AND.TIME.LT.17:00) THEN
TODSET...................................................................................114 ACT(120) ELSE DEACT(120)

Notes
The ACT and ENABLE commands can be used interchangeably.

See also
DEACT, DISABL, ENABLE

Siemens Building Technologies, Inc. 3-3 3-4 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

st Sample time (in seconds). This is the time, in seconds, between


ADAPTM (Adaptive control, multiple) two successive starts of execution of the ADAPTM algorithm. It
is also the time interval between two samples of data by
Unitary pre-APOGEE APOGEE BACnet ADAPTM.
Ž Ž • This parameter can be an integer, point name, or local
variable name.
• The minimum sample time allowed is 1 second.
Syntax • For a system with smaller size coils, typically set st to 5
seconds.
ADAPTM(pv,cv,sp,matctl,mam,st,kc,tcd,tch,tcc,her,dbr,der,err) • For a system with larger size coils, typically set st to
pv Point name of the process variable being controlled. 10 seconds.
• This parameter is usually an LAI point, but it can be an • The Sample Time must be less than or equal to one-
LAO point or a local variable that represents supply air third of the smallest Time Constant. That is,
temperature. 1
• This value should be between -50.0 and 150.0. st ≤ Tc
3
cv Controlled variable (output signal). This signal is 0.0 to 100.0 Where:
percent, direct acting, and is intended to go to TABLE st is the Sample Time, and
statements–one for each output actuator point (for example,
heating, dampers and cooling). Tc is the smallest of tcd, tch, and tcc.
• This parameter can be a point name or local variable.
kc Control gain.
sp Setpoint for the loop against which the process variable is • This parameter can be a point name, local variable
compared. name, or decimal number.
• This parameter can be a point name, local variable • This value must be greater than 0.0.
name, or decimal number. • For English units set kc to 3.0. For SI Units set kc to
• This value must be between -50.0 and 150.0, and 6.0.
should be in the same engineering units as pv.
tcd Damper time constant (in seconds).
matctl Represents the output of the mixed air temperature control loop • This parameter can be a point name, local variable
(usually an ADAPTS loop). When the value of matctl is equal to name, or decimal number.
or drops below the value of mam, the cv output will not rise • This value must be greater than or equal to 3 times the
above the her value. st value.
• This parameter can be a point name, local variable • For applications with heating and cooling only (no
name, or decimal number. dampers), set tcd to the value of tcc.
• This value must be between 0.0 and 100.0.
• For applications without dampers or without mixed air The damper time constant is, itself, very small in value–typically
temperature override of the dampers, set matctl to equal to that of the supply air temperature sensor and the
100.0. damper actuator stroke time. However, since the air from the
dampers must go through the coil(s) before reaching the supply
mam Mixed air damper minimum position. air temperature sensor, the coil(s) time constant(s) (minus their
actuator times and the supply air temperature sensor's time
• This parameter can be a point name, local variable
constant) must be added to the damper time constant.
name, or decimal number.
• This value must be between 0.0 and 100.0.
• For applications without dampers (heating and cooling
only), set mam to 0.0.

Siemens Building Technologies, Inc. 3-5 3-6 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

The ADAPTM damper time constant parameter entry (in tch Heating time constant (seconds).
seconds) is calculated using this formula: • This parameter can be a point name, local variable
tcd = Tdownstream coils + Tsensor + Tdamper actuator name, or decimal number.
• This value must be greater than or equal to 3 times the
st value.
Where:
• For applications with dampers and cooling only (no
tcd = ADAPTM damper time constant parameter entry (in
heating), set tch to the value of tcd.
seconds)
The time constant of the heating coil alone is calculated using
Tdownstream coils = time constants of coils alone downstream of the following formula:
dampers (between the dampers and the duct temperature
CFM max L / sair max
sensor).
Theating coil = 0.02 = 0.15
GPM max L / shot water max
Tsensor = time constant of the supply air sensor (usually about
30 seconds) Where:
CFMmax = Maximum or design airflow rate in cubic feet per
minute
Tdamper actuator = stroke time of the damper actuator (often 30
seconds) GPMmax = Maximum or design hot water flow rate in gallons per
minute
Example
The AHU has mixed air dampers, a heating coil, and a cooling l/s air max = Maximum or design air flow rate in liters per second
coil.
l/s hot water max = Maximum or design hot water flow rate in liters
per second

The ADAPTM heating time constant parameter entry (in


seconds) is calculated using this formula:
tch = Theating coil + Tdownstream coils + Tsensor + Thcactuator
Where:
tch = ADAPTM heating time constant parameter (in seconds).

The heating coil alone has a 5 second time constant. The T downstream coils = time constants of other coils alone
cooling coil alone has a 20 second time constant. The supply downstream of heating coil (between heating coil and duct
air temperature sensor time constant is 30 seconds. The temperature sensor).
damper actuator stroke time is 30 seconds. Therefore, the
damper time constant is:
T sensor = time constant of the supply air sensor (usually about
30 seconds).
Heating coil time constant: 5 seconds
Cooling coil time constant: 20 T hc actuator = stroke time of the heating coil actuator (often 30
Supply air temp. sensor: 30 seconds).
Damper actuator: 30 Example
Total 85 seconds An AHU has a design CFM of 50000 and the design flow
through the heating coil is 465 gpm. The heating coil valve has
Siemens Building Technologies, Inc. 3-7 3-8 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

a 30 second electric actuator. Downstream of the heating coil,


there is a cooling coil with a time constant (alone) of 33 The ADAPTM cooling time constant parameter entry (in
seconds. The time constant of the heating coil alone is: seconds) is calculated using this formula:
CFM max 50000 tcc = Tcooling coil + Tdownstreamcoils + Tsensor + Tccactuator
Theating coil = 0.02 = 0.02 = 2.2 seconds ( round to 2 seconds )
GPM max 465
Where:
tcc = ADAPTM cooling time constant parameter (in seconds)

Tdownstream coils = time constants of coils alone downstream of


cooling coil (between cooling coil and duct temperature sensor)

Tsensor = time constant of the supply air sensor (often 30


seconds)

Tcc actuator = stroke time of the cooling coil actuator (often 30


The tch parameter entry into ADAPTM is: seconds)

tch = Theating coil + Tdownstreamcoils + Tsensor + Thcactuator Example


An AHU has a design CFM of 15000 and the design flow
tch = 2 + 33 + 30 + 30 = 95 seconds through the cooling coil is 258 gpm. The cooling coil valve has
tcc Cooling time constant (in seconds). a 30 second electric actuator. Downstream of the cooling coil,
• This parameter can be a point name, local variable there is a heating coil with a time constant (alone) of 15
name, or decimal number. seconds. The time constant of the cooling coil alone is:
• This value must be greater than or equal to 3 times the CFM max 15000
st value. Tcooling coil = 0.25 = 0.25 = 14.5 seconds ( round to 15 sec onds )
GPM max 258
• For applications with heating and dampers only (no
cooling coil), set tcc to the value of tcd.
The tcc parameter entry into ADAPTM is:
The time constant of the cooling coil alone is calculated using tcc = Tcooling coil + Tdownstreamcoils + Tsensor + Tccactuator
the following formula:
tcc = 15 + 15 + 30 + 30 = 90 seconds
CFM max L / sair max
Tcooling coil = 0.25 = 2 .0
GPM max L / schilled water max
Where:
CFMmax = Maximum or design airflow rate in cubic feet per
minute

GPMmax = Maximum or design chilled water flow rate in gallons


per minute

L/s air max = Maximum or design air flow rate in liters per second
her Heating end of range (in percent). This parameter tells
L/s chilled water max = Maximum or design chilled water flow rate in ADAPTM what percentage of its output is used for heating. It is
liters per second assumed that the beginning of the heating range is at 0%.
• This parameter can be a point name, local variable

Siemens Building Technologies, Inc. 3-9 3-10 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

name, or decimal number.

• This value must be:


ƒ Equal to or greater than 0, and
ƒ Less than or equal to dbr.
• For applications with dampers and cooling only (no
heating), set her to 0.

The following figure shows the relationship of her to the


operation of the heating, dampers and cooling outputs. Typically, the value for dbr will be the same as the third
parameter for the TABLE statement controlling the mixed air
damper. For example, as shown below in the line of code
below, this value is 50.

5050 TABLE (%X%VRT,$MADCTL,50,%X%MAM,65,100)

If other PPCL code is used, dbr must still be the value of the
output of ADAPTM at which mixed air dampers begin to open
from minimum position.
Typically, the value for her will be the same as the second to
the last parameter for the TABLE statement controlling the If the value of dbr varies slightly due to the path taken in the
heating coil. For example, as shown in the line of code below, code, choose a nominal value for dbr. ADAPTM can handle
this value is 45. minor variations in the value of dbr.
05030 TABLE (%X%VRT,%X%HCO,0,100,45,0) der Damper end of range. This parameter, along with the Damper
Beginning of Range (dbr), tells ADAPTM what percentage of its
If the value of her varies slightly due to the path taken in the output is used for mixed air damper control (free cooling).
code, choose a nominal value for her. ADAPTM can handle Damper End of Range also tells ADAPTM what percentage of
minor variations in the value of her. its output is used for cooling since der defines the beginning of
the cooling coil range.
dbr Damper beginning of range. This parameter, along with the • This parameter can be a point name, local variable
Damper End of Range (der), tells ADAPTM what percentage of name, or decimal number.
its output is used for mixed air damper control (free cooling). • This value must be:
• This parameter can be a point name, local variable ƒ Greater than or equal to dbr, and
name, or decimal number. ƒ Less than or equal to 100.
• This value must be: • For applications with heating and dampers only (no
ƒ Greater than or equal to her, and cooling), set der to 100.
ƒ Less than der. • For applications with heating and cooling only (no
• For applications with heating and cooling only (no dampers), set der to the value of dbr.
dampers), set dbr to the value of der. • The end of the cooling range is assumed to be at the
• For applications with dampers and cooling only (no adaptive control output of 100%.
heating), set dbr to 0
The following figure shows the relationship of der to the
The following figure shows the relationship of dbr to the operation of the heating, dampers (for cooling), and cooling coil
operation of the heating, dampers and cooling outputs. outputs.

Siemens Building Technologies, Inc. 3-11 3-12 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

2012 C MA TEMP CNTRL OUTPUT = $MATCTL


2014 C MA MIN POSITION = %X%MAM
2016 C SAMPLE TIME = 5 SECONDS
2018 C GAIN = %X%KC1
2020 C DAMPER TIME CONSTANT = %X%TD1
2022 C HEATING TIME CONSTANT = %X%TH1
2024 C COOLING TIME CONSTANT = %X%TC1
2026 C HEATING END OF RANGE = 45.0
Typically, the value for der will be the same as the third 2028 C DAMPER BEGIN RANGE = 50.0
parameter for the TABLE statement controlling the cooling coil. 2030 C DAMPER END OF RANGE = 65.0
2032 C ERROR REPORT POINT = %X%ERR
If there are two cooling coil TABLE statements because there is
an Economizer, choose the one for Economizer ON. For
example, as shown in the line of code below, this value is 65. 2034 ADAPTM(%X%SAT,%X%VRT,%X%SAS,$MATCTL,
%X%MAM,5,%X%KC1,%X%TD1,%X%TH1,%X%TC1,
2060 TABLE (%X%VRT,%X%CCO,65,0,100,100) 45.0,50.0,65.0,%X%ER1)
2036 C HEATING COIL SIGNAL
If other PPCL code is used, der must still be the value of the 2038 TABLE (%X%VRT,%X%HCO,0,100,45,0)
output of ADAPTM at which mixed air dampers are fully open 2040 C DAMPER RAMP
and the cooling coil valve is just beginning to open.
2042 TABLE ($MADRMP,$MADRCT,0,0,10,%X%MAM, 180,100)
If the value of der varies slightly due to the path taken in the 2044 C DAMPER CONTROL SIGNAL
code, choose a nominal value for der. ADAPTM can handle 2046 TABLE (%X%VRT,$MADCTL,50,%X%MAM,65,100)
minor variations in the value of der. 2048 C MIXED AIR TEMPERATURE CONTROL LOOP
2050 IF($MADRCT.LT.$MATCTL) THEN GOTO 2056
err Error reporting point. ADAPTM writes to this point. A zero 2052 ADAPTS(%X%MAT,$MATCTL,%X%MLS,10,%X%KC2,
means no error. A non-zero means an error. %X%TM2,0,30.0,130.0,0.0,100.0,0.0,0.0,%X%ER2)
• This parameter is entered as a point name or local 2054 C ECONOMIZER CONTROL
variable name.
2056 IF (%X%ECM .EQ. OFF) THEN GOTO 2072
2058 C COOLING COIL SIGNAL (ECON=ON)
CAUTION: 2060 TABLE (%X%VRT,%X%CCO,65,0,100,100)
Each ADAPTM PPCL line of code must have its 2062 C FINAL DAMPER SIGNAL
own unique error point. Do not share one error 2064 MIN (%X%MAO,$MADRCT,$MADCTL,$MATCTL)
point among multiple ADAPTM lines. 2068 GOTO 2074
2070 C COOLING COIL SIGNAL (ECON=OFF)
ADAPTM Example 2072 TABLE (%X%VRT,%X%CCO,55,0,100,100)
2074
The following example also includes an ADAPTS command for
mixed air temperature. Use
2000 C ADAPTM CONTROL STATISTICS (LOGICAL
2002 C FIRMWARE)
Adaptive control technology is a closed loop control application,
2004 C DIRECT CONTROL LOOP
which automatically adjusts the field panel operating parameters to
2006 C INPUT = %X%SAT
compensate for changes that continuously occur during the normal
2008 C OUTPUT = %X%VRT
building control process. With adaptive control technology, tuning
2010 C SETPOINT = %X%SAS
and retuning are not required.
Siemens Building Technologies, Inc. 3-13 3-14 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

Either the ADAPTM or ADAPTS control statement can be


implemented as a one-line replacement for an existing LOOP ADAPTS (Adaptive control, single)
statement in PPCL. Unitary pre-APOGEE APOGEE BACnet
ADAPTM is specifically designed for supply air temperature control Ž Ž
in which two or three output devices are controlled in sequence
without overlap.
Syntax
The output of ADAPTM is direct acting–it rises in value as the
ADAPTS(pv,cv,sp,st,kc,tc,ra,llpv,hlpv,llcv,hlcv,edb,npv,err)
process variable rises. To control multiple outputs, ADAPTM must be
connected to TABLE statements with parameters set such that the pv Process variable that is being controlled.
mixed air damper output and the cooling coil output have direct • This parameter can be a point name or local variable. It
action, and the heating coil output has reverse action. is usually an LAI point, but can be an LAO point–a
calculated point representing a temperature, flow rate,
To be able to control, adaptive control requires that the loop be: air velocity, etc.
• This value should always be between llpv and hlpv.
• Controllable–this means that the sensor is in the right range and
cv Controlled variable (loop output).
the output is sufficient to bring the process variable to setpoint.
• This parameter can be a point name or local variable. It
• Open-loop Stable–this means that the process can achieve a is usually an LAO point that represents an actuator
signal.
steady state for every position of the final output device. (All AHU
loops are open-loop stable.) sp Setpoint for the loop against which the process variable is
compared.
• Direct or Reverse Acting–this means the process is either
• This parameter can be entered as a point name, local
always direct or always reverse acting. That is, the process does variable name, or decimal number.
not change its action (direction or sign) within the control range. • This value must be between llpv and hlpv, and should
represent the same engineering units as the process
• Modulating–this refers to the loop’s output device, such as a variable.
cooling coil with a modulating water valve. For example, DX
cooling or step controlled electric heat, cannot be controlled by st Sample time (in seconds). This is the time, in seconds, between
the ADAPTM or ADAPTS statements in PPCL. two successive starts of execution of the ADAPTS algorithm. It
is also the time interval between two samples of data by
• Not Excessive in Dead Time–this means that the total delay in ADAPTS.
the sensor and actuator signals should not exceed two times the • This parameter can be an integer, point name, or local
time constant of the process. variable name.
• The minimum sample time allowed is 1 second.
NOTE: The Soft Controller does not support adaptive control • The Sample Time must be less than or equal to one-
technology. third of the Time Constant. That is,
1
See also st ≤ tc
3
ADAPTS, LOOP Where:
st is the Sample Time, and

tc is the Time Constant.

Siemens Building Technologies, Inc. 3-15 3-16 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

Suggested Sample Times L/s chilled water max = Maximum or design chilled water rate in liters
Temperature Loops (single input, single output) per second.
• 5 seconds for fast loops;
Tsensor = time constant of the supply air sensor; typically about 30
• 10 seconds for slow loops.
seconds.
Humidity Loops
Tcc actuator = stroke time of the cooling coil actuator; typically 30
• 5 to 10 seconds for return air or space loop;
seconds.
• 1 or 2 seconds for a discharge air loop.
Heating Coils
Flow and Static Pressure Loops
• 1 or 2 seconds Use the following formula:
CFM max L / s air max
tc = 0 . 02 or 0 . 15 + T sensor + T hc actuator
kc Control gain. GPM max L / s hot water max
• This parameter can be a point name, local variable
name, or decimal number. Where:
• This value must be greater than 0. tc = ADAPTS heating time constant parameter entry (in
• Since ADAPTS will adapt to the process it is controlling, seconds).
set kc to 3.0 for both English and SI Unit applications.
CFMmax = Maximum or design airflow rate in cubic feet per
tc Time constant (in seconds). The Time Constant value is a minute.
rough estimate of the time constant of the process.
• This parameter can be a point name, local variable L/s air max = Maximum or design airflow rate in liters per second.
name, or decimal number.
• This value must be greater than or equal to 3 times the GPMmax = Maximum or design hot water flow rate in gallons per
st value. minute.
Note: Increasing the value of tc slows down the adaptation
process. l/s hot water max = Maximum or design hot water rate in liters per
second.
Cooling Coils
Use the following formula: Tsensor = time constant of the supply air sensor; typically about 30
seconds.
CFM max L / s air max
tc = 0 . 25 or 2 . 0 + T sensor + T cc actuator
GPM L / s chilled Thc actuator = stroke time of the heating coil actuator; typically 30
max water max
seconds.
Where:
tc = ADAPTS cooling time constant parameter entry (in Mixed Air Temperature
seconds). Use the following formula:
tc = T ma sensor + T damper actuator
CFMmax = Maximum or design airflow rate in cubic feet per
minute.
Where:
L/s air max = Maximum or design airflow rate in liters per second. tc = ADAPTS mixed air temperature time constant parameter
entry (in seconds); typically 40 seconds.
GPMmax = Maximum or design chilled water flow rate in gallons
per minute. Tma sensor = time constant of the mixed air temperature sensor;
typically about 30 seconds.
Siemens Building Technologies, Inc. 3-17 3-18 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

Tdamper actuator = stroke time of the mixed air damper actuator; Example 1
typically 30 seconds. For static pressure control, enter a small negative value (-0.1) to
cover the possibility of a miscalibrated sensor or small negative
Duct Static Pressure air pressures when the fan is off.
• 6 seconds for small size systems,
• 10 seconds for medium size systems, and Example 2
• 20 seconds for large size systems. For supply air temperature control with mixed air dampers, use
30°F or 0°C. The mixed air dampers should prevent any lower
Airflow Control temperatures from entering the supply duct even if the heating
• 6 seconds for small size systems, coil is not operating or hot water is absent.
• 10 seconds for medium size systems, and
• 20 seconds for large size systems. hlpv High limit of process variable. The hlpv is typically the highest
value that the pv is expected to achieve. This value may differ
Duct Humidity Control from the sensor’s high range.
• This parameter can be a point name, local variable
• 50 seconds for small size systems, name, or decimal number.
• 100 seconds for medium size systems, and • This value must be greater than llpv.
• 200 seconds for large size systems.
Example 1
Cascade Control (setpoint reset)
For static pressure control, enter the highest pressure that will
For the return air/room air (outer/slow) temperature or humidity occur in the supply duct. The highest pressures occur on startup
loop: and when there are large upsets.
• 100 seconds for small size systems/rooms*,
• 250 seconds for medium size systems/rooms*, and Example 2
• 500 seconds for large size systems/rooms*. For supply air temperature control, use 130°F or 55°C.
* A full room should have a longer time constant than an empty room.
llcv Low limit of control variable. The llcv represents the low limit of
ra Reverse acting flag. This parameter defines the action of the
the ADAPTS output.
ADAPTS controller.
• This parameter can be a point name, local variable
• Reverse acting means cv (output) decreases as pv
name, or decimal number.
(input) increases.)
• This value must be less than hlcv.
• This parameter can be an integer, point name, or local
• For electric actuators, typically llcv is 0.0% or 0.0 volts.
variable name.
• For pneumatic actuators, typically llcv is the low end of
• Valid values are 0 and 1.
the actuator spring range.
1 = reverse acting
0 = direct acting hlcv High limit of control variable. The hlcv represents the high limit of
the ADAPTS output.
llpv Low limit of process variable. The llpv is typically the lowest • This parameter can be a point name, local variable
value that the pv is expected to achieve. This value may differ name, or decimal number.
from the sensor’s low range. • This value must be greater than llcv.
• This parameter can be a point name, local variable • For electric actuators, typically hlcv is 100.0% or 10.0
name, or decimal number. volts.
• This value must be less than hlpv. • For pneumatic actuators, typically hlcv is the high end of
the actuator spring range.

Siemens Building Technologies, Inc. 3-19 3-20 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

edb Error deadband. This parameter determines how much error err Error reporting point. ADAPTS writes to this point.
(process variable minus setpoint) must exist before ADAPTS • This parameter is entered as a point name or local
recalculates its output signal (control variable). variable name.
ƒ A zero indicates no error.
Noisy process variable signals can cause much actuator ƒ A non-zero indicates an error.
movement. Setting edb to a value equal to that of the noise will
eliminate unnecessary actuator movement. Thus, actuator
CAUTION:
repositioning, and actuator life, can be affected by the use of this
parameter. Each ADAPTS PPCL line of code must have its
• This parameter can be a point name, local variable own unique error point. Do not share one error
name, or decimal number. point among multiple ADAPTS lines.
• This value must be greater than or equal to 0.0.
• The drawback when setting edb to a non-zero value is ADAPTS Example
lack of control accuracy when near setpoint. The 2000 C ADAPTS CONTROL STATISTICS (LOGICAL
effective setpoint becomes the value of parameter sp +/-
2002 C FIRMWARE) STATIC PRESSURE CONTROL
edb.
2004 C DIRECT CONTROL LOOP
• Initially set edb to the loop’s maximum allowable
setpoint tolerance. 2006 C INPUT = %X%SSP
ƒ For temperature and humidity loops, edb can be 2008 C OUTPUT = %X%LP1
very low–even 0.0 is acceptable 2010 C SETPOINT = %X%SSS
ƒ For static pressure and flow loops, start with 1% to 2012 C SAMPLE TIME = 1 SECOND
3% of the maximum input value. 2014 C GAIN = %X%KC
• If small actuator oscillations are observed, edb can be 2016 C TIME CONSTANT = %X%TC
increased in value until the maximum setpoint tolerance 2018 C REVERSE ACTING FLAG = 1
is reached. 2020 C LOW LIMIT OF INPUT = -0.1
2022 C HIGH LIMIT OF INPUT = 5.0
npv Noisy process variable. Noisy means that the value of the
2024 C LOW LIMIT OF OUTPUT = 0.0
process variable jumps up or down abruptly from one sensor
scan to another. 2026 C HIGH LIMIT OF OUTPUT = 100.0
2028 C ERROR DEADBAND = %X%DB1
Some processes inherently create a noisy process variable 2030 C NOISY PROCESS VARIABLE = %X%NP1
signal. An airflow signal, for example, can be very noisy at the 2034 C ERROR REPORT POINT = %X%ERR
low end of its sensor range due to a lack of resolution. Other 2036 IF(%X%RP1.LT.%X%LP1) THEN GOTO 2042
processes can be noisy under certain conditions. For example, a 2038 ADAPTS(%X%SSP,%X%LP1,%X%SSS,1,%X%KC,
static pressure signal can be noisy at certain fan speeds and %X%TC,1,-0.1,5.0,0.0,100.0,%X%DB1,
with a certain sensor positioned too close to the fan.
%X%NP1,%X%ERR)
• This parameter can be an integer, point name, or local
variable name. 2040 C SUPPLY FAN RAMP
• In general, follow these rules: 2042 TABLE ($SPFRMP,%X%RP1,0,0,180,100)
ƒ npv = 1 (noisy) for a loop with a very noisy pv, such 2044 C SUPPLY FAN VFD SIGNAL
as airflow or static pressure control. Adaptation is 2046 MIN (%X%SVO,%X%LP1,%X%RP1)
slowed with npv = 1. ......
ƒ npv = 0 (not noisy) for a loop with a pv that is not
noisy or only a little noisy, such as temperature
control or humidity control.

Siemens Building Technologies, Inc. 3-21 3-22 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

Use
ALARM (Alarm state)
Adaptive control technology is a closed loop control application,
which automatically adjusts the field panel operating parameters to Unitary pre-APOGEE APOGEE BACnet
compensate for changes that continuously occur during the normal Ž Ž
building control process. With adaptive control technology, tuning
and retuning are not required.
Syntax
Either the ADAPTM or ADAPTS control statement can be
implemented as a one-line replacement for an existing LOOP ALARM(pt1,...,pt16)
statement in PPCL. pt1 Name of a point to be placed into the ALARM state.
through • Local variables cannot be used.
ADAPTS is a general purpose single input, single output controller pt16
for both linear and non-linear processes. Example applications are
mixed air temperature, static pressure, return airflow, and humidity Use
control.
Forces the specified points into the ALARM state.
To be able to control, adaptive control requires that the loop be:
A maximum of 16 points can be changed with one ALARM
command.
• Controllable–this means that the sensor is in the right range and
the output is sufficient to bring the process variable to setpoint.
Example
• Open-loop Stable–this means that the process can achieve a 100 IF (ROOM.GT.80.0) THEN ALARM(ROOM25)
steady state for every position of the final output device. (All AHU
loops are open-loop stable.) Notes

• Direct or Reverse Acting–this means the process is either • Points must reside in the same device as the program.
always direct or always reverse acting. That is, the process does
• Do not use ALARM to command points over the network.
not change its action (direction or sign) within the control range.
• Points must be defined as alarmable and be enabled for alarming
• Modulating–this refers to the loop’s output device, such as a
in order to be placed into the alarm-by-command state.
cooling coil with a modulating water valve. For example, DX
cooling or step controlled electric heat, cannot be controlled by • The status *AC* is displayed when a point is commanded to the
the ADAPTM or ADAPTS statements in PPCL. ALARM state.
• Not Excessive in Dead Time–this means that the total delay in
the sensor and actuator signals should not exceed two times the See also
time constant of the process. DISALM, ENALM, HLIMIT, LLIMIT, NORMAL
NOTE: The Soft Controller does not support adaptive control
technology.

See also
ADAPTM, LOOP

Siemens Building Technologies, Inc. 3-23 3-24 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

AUTO (Auto status) DAY (Day mode)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž

Syntax Syntax
AUTO(pt1,...,pt16) DAY(pt1,...,pt16)
pt1 Name of a point to be set to AUTO status. pt1 Name of a point to be set to DAY mode.
through • This parameter must be a LOOAL or LOOAP point through • This parameter must be a logical controller (LCTLR)
pt16 type. pt16 point type.

Use Use
Changes the operational status of an ON/OFF/AUTO point to AUTO. Changes a LCTLR point to DAY mode status.

A maximum of 16 points can be changed with one AUTO command. A maximum of 16 points can be changed with one DAY command.

Example Example
100 AUTO(EFAN1,EFAN2,EFAN3) 100 IF (TIME.LT.7:00.OR.TIME.GT.18:00) THEN
NIGHT(LCTLR2) ELSE DAY(LCTLR2)
See also
Notes
FAST, OFF, ON, SLOW
For some equipment controllers, DAY mode is also referred to as
OCC (occupied) mode. If an equipment controller is in OCC mode,
PPCL recognizes this status as DAY.

See also
NIGHT

Siemens Building Technologies, Inc. 3-25 3-26 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

• The operational status of the point is regulated by an analog point


DBSWIT (Dead band switch) using a predefined dead band.
Unitary pre-APOGEE APOGEE BACnet
Example 1
Ž Ž Ž Ž 200 DBSWIT(1,RMTEMP,LDBAND,HDBAND,SFAN,RFAN)

Example 2
Syntax 200 DBSWIT(1,RMTEMP,55,58,SFAN,RFAN)
DBSWIT(type,input,low,high,pt1,...,pt12)
type The type of dead band switch action.
• Valid values are 0 and 1.

0 = All output points (pt1,...,pt12) are commanded


ON when the input point value rises above the high
limit, and are commanded OFF when the input point
value falls below the low limit.

1 = All output points (pt1,...,pt12) are commanded


ON when the input point value falls below the low
limit, and are commanded OFF when the input point
value rises above the high limit.

input Point name of the variable being controlled.


• This parameter is usually an analog point, but it can
also be a local variable.

low The low temperature at which a switching action occurs.


• This parameter can be an integer, point name, local
variable name, or decimal number.

high The high temperature at which a switching action occurs.


• This parameter can be an integer, point name, local
variable name, or decimal number.

pt1 Name of an output point to be turned ON and OFF.


through • Local variables can be used.
pt12

Use
Provides the ON/OFF switching action of an output point. This is the
software equivalent of a thermostat.

• A maximum of 12 points can be controlled with one DBSWIT


command.

Siemens Building Technologies, Inc. 3-27 3-28 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

Use
DC (Duty cycle)
Coordinates the operation of all available equipment to compensate
Unitary pre-APOGEE APOGEE BACnet for additional equipment capacity that is not normally needed. During
Ž Ž Ž normal system operation, some equipment is cycled off for short
periods of time to distribute equipment wear and reduce operating
costs.
Syntax
A maximum of 8 points can be controlled with one DC command.
DC(pt1,pat1,...,pt8,pat8)
pt1 Name of the output points to be duty cycled. Do the following to create a duty cycle pattern:
through • This parameter can be an LDO, LOOAL, LOOAP,
pt8 L2SL, or L2SP point type.
1. Divide one-hour into four 15-minute segments.
• Local, virtual, and physical points are valid for pt1, 2. Determine the ON/OFF state for each 5-minute increment of the
pt2, pt3, and pt4. segment.
pat1 Hourly pattern that describes how the point is duty cycled. 3. Using Table 3-1, assign a number to represent the ON/OFF
through • This parameter can be a local, physical, or virtual pattern for each 15-minute segment.
pat8 point, as well as an integer.
• This pattern is a four-digit code using the numbers 0 4. After the patterns are defined, enter the code numbers in reverse
through 7. order. The right-most digit defines the first 15-minute segment of
• Each digit represents the on/off pattern for one 15- the hour. The left-most digit defines the last 15-minute segment
minute segment of an hour. Table 3-1 lists the of the hour.
numeric codes and their ON/OFF patterns.
Example
Table 3-1. Duty Cycle Patterns and Numerical Codes. 1000 C THIS DC COMMAND DUTY CYCLES HFAN
Point Status During this Time 1010 C ACCORDING TO THE FOLLOWING SCHEDULE:
Code Number for
1020 C
First 5 Second 5 Third 5 this 15-minute
On/Off Pattern 1030 C FIRST 15 MINUTES – ON, OFF, OFF (1)
minutes minutes minutes 1040 C SECOND 15 MINUTES – OFF, OFF, OFF (0)
OFF OFF OFF 0 1050 C THIRD 15 MINUTES – OFF, OFF, OFF (0)
ON OFF OFF 1 1060 C FOURTH 15 MINUTES – ON, ON, ON (7)
1070 C
OFF ON OFF 2
1100 DC(HFAN,7001)
ON ON OFF 3
OFF OFF ON 4 Notes
ON OFF ON 5 The DC command has a priority of NONE. Therefore, the PPCL
OFF ON ON 6 program must be structured with IF/THEN/ELSE commands to
prevent conflicts between DC and other commands with the same
ON ON ON 7 priority.

See also
DCR
Siemens Building Technologies, Inc. 3-29 3-30 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

Example
DCR (Duty cycle routine) 200 C THIS COMMAND WILL TURN ON IF
Unitary pre-APOGEE APOGEE BACnet 210 C SFAN'S VALUE FALLS BELOW 68 OR
220 C RISES ABOVE 78. THE POINT SFAN01
Ž Ž Ž 230 C WILL REMAIN ON/OFF FOR AT LEAST 5
240 C MINUTES ON EACH CYCLE.
Syntax 250 DCR(SFAN01,RM109,78.0,68.0)

DCR(pt1,temp1,high1,low1,...,pt4,temp4,high4,low4) Notes
pt1 Point names of the output points to be duty cycled. The DCR command has a priority of NONE. Therefore, the PPCL
through • This parameter can be an LDO, logical, physical, or program must be structured with IF/THEN/ELSE commands to
pt4 virtual point type. prevent conflicts between DCR and other commands with the same
priority.
temp1 Point names of the space temperature points.
through
temp4 See also

high1 High temperature limits of the space points. DC


through • This parameter can be a decimal, integer, point
high4 name, or local variable.

low1 Low temperature limits of the space points.


through • This parameter can be a decimal, integer, point
low4 name, or local variable.

Use
Duty cycles an output point to keep a corresponding temperature
within the low and high values of a dead band.

• Makes an ON/OFF decision every 5 minutes according to the


value of the parameters.
— The output point is commanded ON when the temperature
point value is above the high limit or below the low limit.

— The output point is commanded OFF when the temperature


point value is within the range of the high and low limits.

• For each point, a space temperature, high temperature, and low


temperature parameter must be defined.

• A maximum of 4 points can be controlled with one DCR


command.

Siemens Building Technologies, Inc. 3-31 3-32 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

DEACT (Deactivate lines) DEFINE (Define abbreviation)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž

Syntax Syntax
DEACT(line1,...,line16) DEFINE(abbrev,string)
line1 Valid PPCL line numbers abbrev Abbreviation used in other PPCL statements. Represents the
through • Line numbers must be entered as integers ranging string parameter.
line16 from 1 to 32767.
• A range of PPCL lines cannot be defined using the string Actual text string that will be substituted where the
DEACT command. abbreviation is used. The string text usually contains a
significant portion of a long point name.
Use
Use
Disables lines of PPCL code to prevent them from being examined
or executed. Creates an abbreviated notation for a long point name. DEFINE
allows program logic to be easily duplicated provided your facility
• The DEACT command only affects the lines of PPCL program for uses a structured naming convention for point names.
the device where the program resides.
A percentage sign (%) must be placed before and after the
• DEACT only disables PPCL lines that are specifically defined in abbreviation when it is used in the program.
the command.
Example
• A maximum of 16 lines of PPCL code can be controlled with one 10 DEFINE(AHU,”BUILDING1.AHU01.”)
DEACT command. 20 ON(“%AHU%SFAN”)

Example If DEFINE is not used, this same line of code looks like the following:
100 IF (TIME.GT.8:00.AND.TIME.LE.17:00) THEN 20 ON(“BUILDING1.AHU01.SFAN”)
ACT(120,130) ELSE DEACT(120,130)
Notes
Notes
This statement is executed when added to the field panel and does
The DEACT and DISABL commands can be used interchangeably. not require enabling or execution in the normal program flow.

See also
ACT, DISABL, ENABLE

Siemens Building Technologies, Inc. 3-33 3-34 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

DISABL (Disable lines) DISALM (Disable alarm)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
DISABL(line1,...,line16) DISALM(pt1,...,pt16)
line1 Valid PPCL line numbers. pt1 Point name that should not report alarms.
through • Line numbers must be entered as integers ranging through
line16 from 1 to 32767. pt16
• A range of PPCL lines cannot be defined using the
DISABL command. Use
Disables alarm reporting for the specified points.
Use
Disables lines of PPCL code to prevent them from being examined A maximum of 16 points can be controlled with one DISALM
or executed. command.

• The DISABL command only affects the lines of PPCL program for Example
the device where the program resides. 50 IF (SFAN.EQ.OFF) THEN DISALM(ROOM1) ELSE
ENALM(ROOM1)
• DISABL only disables PPCL lines that are specifically defined in
the command. Notes

• A maximum of 16 lines of PPCL code can be controlled with one • Points must reside in the same device as the program.
DISABL command.
• Do not use DISALM to disable alarm reporting over the network.
Example
• The status *PDSB* is displayed when a point is commanded to
100 IF (TIME.GT.8:00.AND.TIME.LE.17:00) THEN
the DISALM state.
ENABLE(120,130) ELSE DISABL (120,130)
• For BACnet firmware, all three alarm events are disabled; that is,
Notes OFFNORMAL, NORMAL, and FAULT.
The DEACT and DISABL commands can be used interchangeably.
See also
See also ALARM, ENALM, HLIMIT, LLIMIT, NORMAL
ACT, DEACT, ENABLE

Siemens Building Technologies, Inc. 3-35 3-36 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

DISCOV (Disable COV) DPHONE (Disable phone)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž 2.1 only

Syntax Syntax
DISCOV(pt1,...,pt16) DPHONE(pn#1,...,pn#16)
pt1 Point name that should not report updated changes-of-value pn#1 Telephone ID numbers that are defined in the device.
through (COV). through
pt16 pn#16

Use Use
Stops devices from reporting updated values (COVs) to the Insight Disables telephone ID numbers. The telephone ID number is a
workstation. When this command is executed, all operations that use numeric code that represents the actual telephone number defined in
COVs to function will stop. the device.

Until the points defined in this command are enabled, updates to A maximum of 16 telephone number IDs can be disabled with one
graphics, archiving, COV printing, alarming, and in some cases DPHONE command.
evaluation of equations, will stop.
Example
A maximum of 16 points can be controlled with one DISCOV 532 DPHONE(1,2,3,5,6)
command.
Notes
Notes
Do not use the DPHONE command over the network.
Points defined in the statement must reside in the same device as
the DISCOV command. See also
Example EPHONE
50 IF (SFAN.EQ.OFF) THEN DISCOV(ROOM1, ROOM2)
ELSE ENCOV(ROOM1,ROOM2)

See also
ENCOV

Siemens Building Technologies, Inc. 3-37 3-38 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

EMAUTO (Emergency, Auto status) EMFAST (Emergency, Fast status)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž

Syntax Syntax
EMAUTO(pt1,...,pt16) EMFAST(pt1,...,pt16)
pt1 Point name to be set to AUTO status with emergency priority. pt1 Point name to be set to FAST status with emergency priority.
through • This parameter can be a LOOAL or LOOAP point. through • This parameter can be a LFSSL or LFSSP point.
pt16 pt16

Use Use
Changes the operational status of an ON/OFF/AUTO point to AUTO Changes the operational status of a FAST/SLOW/ STOP point to
(local control) with emergency priority. FAST with emergency priority.

A maximum of 16 points can be changed with one EMAUTO A maximum of 16 points can be changed with one EMFAST
command. command.

See also See also


EMFAST, EMOFF, EMON, EMSET, EMSLOW EMAUTO, EMOFF, EMON, EMSET, EMSLOW

Siemens Building Technologies, Inc. 3-39 3-40 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

EMOFF (Emergency, Off status) EMON (Emergency, On status)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž

Syntax Syntax
EMOFF(pt1,...,pt16) EMON(pt1,...,pt16)
pt1 Point name to be set to OFF status with emergency priority. pt1 Point name to be set to ON status with emergency priority.
through • This parameter can be a LDI, LDO, LFSSL, LFSSP, through • This parameter can be a LDI, LDO, L2SL, L2SP,
pt16 LOOAL, LOOAP, L2SL, or L2SP point. pt16 LOOAL, or LOOAP point.

Use Use
Changes the operational status of the specified points to OFF with Changes the operational status of the specified points to ON with
emergency priority. emergency priority.

A maximum of 16 points can be changed with one EMOFF A maximum of 16 points can be changed with one EMON command.
command.
See also
See also
EMAUTO, EMFAST, EMOFF, EMSET, EMSLOW
EMAUTO, EMFAST, EMON, EMSET, EMSLOW

Siemens Building Technologies, Inc. 3-41 3-42 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

EMSET (Emergency, set value) EMSLOW (Emergency, Slow status)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž

Syntax Syntax
EMSET(value,pt1,...,pt15) EMSLOW(pt1,...,pt16)
value Value to which points are commanded. pt1 Point name to be set to SLOW status with emergency priority.
• This value can be a decimal, integer, point name, or through • This parameter can be a LFSSL or LFSSP point.
local variable. pt16

pt1 Point name to be set to the specified value with emergency Use
through priority.
pt15 • This parameter can be a LAI or LAO point.
Changes the operational status of a FAST/SLOW/ STOP point to
SLOW with emergency priority.
Use
A maximum of 16 points can be changed with one EMSLOW
Changes output points to a new value with emergency priority. command.
A maximum of 15 points can be changed with one EMSET
command. See also
EMAUTO, EMFAST, EMOFF, EMON, EMSET
See also
EMAUTO, EMFAST, EMOFF, EMON, EMSLOW

Siemens Building Technologies, Inc. 3-43 3-44 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

ENABLE (Enable lines) ENALM (Enable alarm)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
ENABLE(line1,...,line16) ENALM(pt1,...,pt16)
line1 Valid PPCL line numbers. pt1 Point name that should have alarm reporting enabled.
through • Line numbers must be entered as integers ranging through
line16 from 1 to 32767. pt16
• A range of PPCL lines cannot be defined using the
ENABLE command. Use
• Each PPCL line must be specified separately. Enables alarm reporting for the specified points.
Use A maximum of 16 points can be enabled for alarm reporting with one
Enables lines of PPCL so they can be examined or executed. ENALM command.

• The ENABLE command only affects the lines of PPCL program Example
for the device where the program resides. 50 IF (SFAN.EQ.ON) THEN ENALM(ROOM1) ELSE
DISALM(ROOM1)
• ENABLE only enables PPCL lines that are specifically defined in
the command. Notes
• A maximum of 16 lines of PPCL code can be controlled with one • Points must reside in the same device as the program.
ENABLE command.
• This command reverses the DISALM command.
Example
• Points must be set up for alarming and have the ability to report
100 IF (TIME.GT.8:00.AND.TIME.LT.17:00) THEN
alarms.
ENABLE(120) ELSE DISABL(120)
• This command does not override *ODSB*.
Notes
The ACT and ENABLE commands can be used interchangeably. • For BACnet firmware, all three alarm events are enabled; that is,
OFFNORMAL, NORMAL, and FAULT.

See also See also


ACT, DEACT, DISABL ALARM, DISALM, HLIMIT, LLIMIT, NORMAL

Siemens Building Technologies, Inc. 3-45 3-46 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

ENCOV (Enable COV) EPHONE (Enable phone)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž 2.1 only

Syntax Syntax
ENCOV(pt1,...,pt16) EPHONE(pn#1,...,pn#16)
pt1 Point name that is enabled to report updated changes-of- pn#1 Telephone ID numbers that are defined in the device.
through value (COV). through
pt16 pn#16

Use Use
Enables devices to report change-of-value (COV) information to Enables telephone ID numbers. The telephone ID number is a
other nodes. When this command is executed, all operations that numeric code that represents the actual telephone number defined in
use COVs to function will start reporting. the device.

Unless the points defined in this command are disabled, updates to A maximum of 16 telephone number IDs can be enabled with one
graphics, archiving, COV printing, alarming, and in some cases EPHONE command.
evaluation of equations are reported.
Example
• Points defined in the statement must reside in the same device 530 EPHONE(1,2,3,5,6)
as the command.
Notes
• A maximum of 16 points can be controlled with one ENCOV
command. Do not use the EPHONE command over the network.

Example See also


50 IF (SFAN.EQ.ON) THEN ENCOV(ROOM1, ROOM2)
ELSE DISCOV(ROOM1,ROOM2) DPHONE

See also
DISCOV

Siemens Building Technologies, Inc. 3-47 3-48 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

FAST (Fast status) GOSUB (Go to subroutine)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
FAST(pt1,...,pt16) GOSUB line# (pt1,...,pt15)
pt1 Point name to be set to FAST status. or parentheses are optional
through • This parameter can be a LFSSL or LFSSP point.
pt16 GOSUB line# pt1,...,pt15
line# Indicates which program command line number should be
FAST(@prior, pt1,...,pt15)
executed next (that is, where the subroutine starts).
@prior Defines a specific point priority. • Line numbers must be entered as integers ranging
from 1 to 32767.
pt1 Point name to be set to FAST status.
through • This parameter can be a LFSSL or LFSSP point pt1 Point name or local variables whose values are to be passed
pt15 through to the subroutine.
pt15 • This parameter can be omitted if the subroutine does
Use not use variable arguments.
Changes the operational status of a FAST/SLOW/STOP point to Use
FAST.
Subroutines are particularly useful for programs in which the same
• Acceptable point types are: LFSSL or LFSSP. calculation is carried out several times using different values.

• A maximum of 16 points can be changed with one FAST The main subroutine commands, GOSUB and RETURN are required
command. for all subroutines. When this command is executed, the line
specified in the GOSUB command is the next line evaluated. When
• A maximum of 15 points can be defined with one the computer encounters the RETURN command, the next line
FAST(@prior…) command. evaluated is the line following the GOSUB statement.
Example The variable parameters in a subroutine are designated by the local
10 IF (RMTEMP.GT.78.0)THEN FAST(@NONE, FAN1,FAN2) variables $ARG1 through $ARG15. These variables can be used by
PPCL code in the subroutine in the same way that point names and
See also constants are used.
AUTO, OFF, ON, SLOW
Multiple-Level Subroutines
A multiple-level subroutine is a block of program code that is called
from within another subroutine. Each call made within a subroutine
constitutes a level. You are limited to a total of eight levels.

Siemens Building Technologies, Inc. 3-49 3-50 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

When using multi-level subroutines, the rules that govern $ARGn The program flow through one complete pass is as follows:
variables and point name declarations for GOSUB commands
change as follows: 1. At line 130, the GOSUB command transfers control to line 1010.
2. At line 1010, the program assigns a value of 10 to PT1 and the
• $ARGn variables used in multi-level subroutines cannot be value of 20 to PT2. Line 1030 branches back to the line after the
shared between subroutine levels. That is, you cannot assign the GOSUB command (at line 130). After the program returns to the
value of PT1 to $ARG1 in the call to level one and then assign main line code, the values of the two points become:
the value of PT2 to $ARG1 in the call to level two.
PT1 = 10
• When defining a new level in a multi-level subroutine, list the PT2 = 20
previously-defined $ARGn variables in sequential order to
preserve their values. 3. The program continues to sequentially evaluate program lines
until it encounters the GOSUB command at line 300. The
Any new points declared in that level must be placed after the program branches to line 2010. This command also defines two
$ARGn variables. For example, in the third level of a multi-level values that are passed (PT1 and PT2).
subroutine, $ARG1 and $ARG2 would be redefined before the
defining the new value of PT3. 4. At line 2010, a $ARGn point is assigned a value. When the
program encounters a $ARGn point, it checks the calling
• If a previously-defined $ARGn variable is not redefined in the call GOSUB command for point names. The GOSUB command used
to a new level, any values introduced in the new level replace the to call this subroutine contains two point names. When the
values in $ARGn. program encounters the first $ARGn variable at line 2010, it
takes the first point name defined in the GOSUB command
Subroutine Examples (PT1) and stores that value in $ARG1 (10). Line 2010 also adds
one (1) to the value of $ARG1.
To explain the concept of subroutine program control, two examples
of program code are provided in this section: 5. When the program encounters the second $ARGn variable at
line 2020, it takes the second point name defined in the GOSUB
• Program flow sequence command (PT2) and stores that value in $ARG2 (20). Line 2020
also adds one (1) to the value of $ARG2.
• Multiple level subroutines Line 2030 returns control of the program to the line after the
GOSUB command (at line 300). At line 400, the program
Program Flow Sequence
executes the GOTO command to line 3000 that returns control
This example demonstrates how a number of PPCL commands are back to mainline code.
used in subroutines. Refer to Figure 3-1 as you follow the program
After one pass of the program, the values of the points after
flow sequence.
being updated by the $ARGn variables, will be as follows:
• The variables PT1 and PT2 demonstrate the passing of values PT1 = 11
between subroutines.
PT2 = 21
• The $ARG local variable demonstrates how values are passed
between subroutines.

• The GOTO command, which is used to bypass subroutines, is


also shown in this example.
Siemens Building Technologies, Inc. 3-51 3-52 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

100 C MAINLINE PROGRAM FOR LOGICAL FIRMWARE


110 C LEARNING HOW TO USE GOSUB, RETURN, AND Multiple-Level Subroutines
112 C $ARG COMMANDS.*** The following example demonstrates the use of $ARGn variables
120 and point declarations used in multiple-level subroutines.
130 GOSUB 1010
... This example demonstrates a method for preserving the values of
... $ARGn variables as program control is transferred among
... subroutines. The example program contains a main line section of
300 GOSUB 2010 PT1, PT2 program code and three subroutines. Refer to Figure 3-2 as you
... follow the program flow sequence.
...
... The program flow through one complete pass is as follows:
400 GOTO 3000
1. At line 1500, the GOSUB command transfers control to line 2030
1000 C --SUBROUTINE 1
and passes the value defined in PT1 to $ARG1 in the
1001 C THIS SUBROUTINE ASSIGNS NUMBERS
subroutine.
1002 C TO PT1 AND PT2. IT THEN RETURNS 2. While executing the first subroutine, the program encounters a
1004 C CONTROL TO THE MAIN PROGRAM. call to a second subroutine at line 2500.
1008 C
1010 PT1 = 10 • Since the GOSUB command at line 2500 is defined within
1020 PT2 = 20 another subroutine, this command must redefine $ARG1 in
1030 RETURN order to preserve the value from the GOSUB command at
line 1500.
2000 C --SUBROUTINE 2 • If $ARG1 is not redefined in the call to the second
2001 C THIS SUBROUTINE PASSES THE VALUE OF subroutine, any value introduced in the second subroutine
2002 C PT1 AND PT2 TO THEIR RESPECTIVE $ARG replaces the value in $ARG1.
2003 C POINTS. IT THEN ADDS ONE TO BOTH $ARG
2004 C POINTS AND RETURNS THE NEW VALUES TO • The new value introduced in the second subroutine (PT2 in
2005 C PT1 AND PT2. the example) is defined after the $ARG1 variable.
2006 C
• As the program works with the variables $ARG1 and PT2 in
2010 $ARG1 = $ARG1 + 1
the second subroutine, $ARG1 continues to represent the
2020 $ARG2 = $ARG2 + 1
value of PT1, while $ARG2 represents the value of PT2.
2030 RETURN
3. At line 3200, the second subroutine calls a third subroutine.
3000 C WHEN THE SUBROUTINE IS FINISHED
3002 C EXECUTING, THE PROGRAM RETURNS TO
• Sine the GOSUB command at line 3200 is defined within two
3004 C MAINLINE CODE.
other subroutines, this command must redefine both $ARG1
and $ARG2 in order to preserve their values.
Figure 3-1. Example Program with Two Subroutines. • Note that $ARG1 and $ARG2 are placed in the same order
in which they were originally defined.
• Line 3200 also defines a new point called PT3. Note that
PT3 is placed after the two $ARGn variables.

Siemens Building Technologies, Inc. 3-53 3-54 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

• As the program branches from the second subroutine to the 3100 C VALUE CALLED PT3.
third subroutine, $ARG1 and $ARG2 continue to represent 3200 GOSUB 4020 $ARG1,$ARG2,PT3
PT1 and PT2 respectively. 3210 RETURN

1000 C MAINLINE PROGRAM FOR LOGICAL FIRMWARE 4000 C SUBROUTINE #3


1010 C 4010 C
1020 C THIS PROGRAM TEACHES HOW GOSUBS AND 4020 ...
1030 C $ARG POINTS WORK IN MULTIPLE 4030 ...
1040 C LEVEL SUBROUTINES. 4040 RETURN
1050 C
Figure 3-2. Multiple Level Subroutines.
1100 ...
1200 ...
Notes
1300 ...
1350 C THIS GOSUB CALLS THE FIRST SUBROUTINE • A GOSUB command can only reference point names or local
1360 C AND PASSES THE VALUE DEFINED IN PT1 TO variables.
1370 C TO $ARG1.
1380 C • A GOTO command can be used inside of a subroutine only if the
1500 GOSUB 2030 PT1 command does not transfer program control out of that
subroutine.
2000 C
2010 C SUBROUTINE #1 • The last line of a subroutine must be a RETURN command.
2020 C
• Do not transfer control out of a subroutine without using a
2030 ...
RETURN command.
2040 ...
2050 C IN ORDER TO PRESERVE THE VALUE LOCATED • Do not use time-based commands such as LOOP, SAMPLE,
2060 C IN $ARG1, YOU MUST DEFINE $ARG1 IN THE TOD, and WAIT inside a subroutine.
2070 C SECOND SUBROUTINE'S CALLING GOSUB. THE
2080 C PROGRAM ALSO PASSES A SECOND POINT • Do not use an IF/THEN/ELSE command with a GOSUB
2090 C VALUE NAMED PT2. command.
2100 C
2500 GOSUB 3030 $ARG1,PT2 See also
2510 RETURN
GOTO, RETURN
3000 C
3010 C SUBROUTINE #2
3020 C
3030 ...
3040 ...
3050 C IN ORDER TO PRESERVE THE VALUES
3060 C LOCATED IN $ARG1 AND $ARG2, YOU MUST
3070 C DEFINE BOTH POINTS IN THE THIRD
3080 C SUBROUTINE'S CALLING GOSUB. THE
3090 C PROGRAM ALSO PASSES A THIRD POINT
Siemens Building Technologies, Inc. 3-55 3-56 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

GOTO (Go to line) HLIMIT (High limit)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
GOTO line# HLIMIT(value,pt1,...,pt15)
line# The next line number to which execution is directed. value New value to which the high limit is set.
• Line numbers must be entered as integers ranging • This value can be a decimal, a point name, or a local
from 1 to 32767. variable.
• Integers are not allowed.
Use
pt1 Logical names of analog points whose high limits are
This command is used to control program execution by branching to through changed to the new value.
a different section of the program. pt15

Example Use
10 IF (FANRUN.GE.1000) THEN GOTO 50
Sets a new high alarm limit for alarmable analog points.
Notes A maximum of 15 points can be set to the same high limit with one
HLIMIT command.
• A GOTO command should only transfer program control to a
sequentially higher line number.
Example
• If the line number indicated in the GOTO does not exist, 100 IF (OATEMP.GT.70.0) THEN HLIMIT(84.0,
execution is transferred to the next line after the line number ROOM16)ELSE HLIMIT(78.0,ROOM16)
specified in the GOTO command.
Notes
• A GOTO command should not transfer program control to a
comment line. • Points must reside in the same device as the program.

• Do not use the GOTO command to transfer control to the top of a • Points used in the HLIMIT command must be defined as
program. If the last program line is missed because of this, time- alarmable.
based commands (LOOP, WAIT, etc.) will not function properly.
See also
See also ALARM, DISALM, ENALM, LLIMIT, NORMAL
GOSUB, RETURN

Siemens Building Technologies, Inc. 3-57 3-58 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

PPCL HOLIDA statement and the days defined in the TOD


HOLIDA (Holiday) calendar.
Unitary pre-APOGEE APOGEE BACnet
See also
Ž Ž Ž
TOD, TODMOD, TODSET

Syntax
HOLIDA(month1,day1,...,month8,day8)
month1 Month of the designated holiday. (January = 1, June = 6,
through December = 12, etc.)
month8

day1 Day of the month for the designated holiday. The first day
through of the month is entered as 1.
day8
Use
Defines the dates of holidays up to a year in advance.

A maximum of eight holidays can be specified with a single HOLIDA


command. If more than eight holiday definitions are needed, multiple
HOLIDA commands can be used.

Example
630 HOLIDA(12,24,12,25,12,26,12,27)

Notes
• The HOLIDA and TODMOD commands must precede any TOD
or TODSET commands in order for the program to operate
correctly.

• A HOLIDA or TODMOD command in a device will only affect


TOD, TODSET and SSTO commands in that device.

• When a holiday date occurs in a HOLIDA command, the mode


number for that day in the TODMOD command is set to 16.

• If holidays are defined using both the HOLIDA command and the
TOD calendar, make sure that the holidays are defined as the
same day in both places. Otherwise, the equipment commanded
will operate in holiday mode on both the days defined in the

Siemens Building Technologies, Inc. 3-59 3-60 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

IF/THEN and IF/THEN/ELSE (Conditional control) Example 1


110 IF (OATEMP.GT.70.0) THEN OADPR = 80.0
Unitary pre-APOGEE APOGEE BACnet
Example 2
Ž Ž Ž Ž 310 IF (TIME.GT.8:00.AND.TIME.LT.16:00) THEN
ON(@NONE,SFAN) ELSE ON(@OPER, SFAN)
Syntax
Notes
IF(exp) THEN x
• GOSUB commands should not be used for the x or y parameters.
or
• Time-based commands such as WAIT and TODMOD should not
IF(exp) THEN x ELSE y be directly used for the x or y parameters.
exp Expression representing one or more logical or relational
tests that are the basis for the THEN/ELSE decision making.
• The logical test can compare variables, constants,
status indicators, priority indicators, and/or numbers,
state text, and system points.
• Several logical tests can be linked together with
relational or logical operators.
• A maximum of 13 operands can be tested.
• Operands can be point names, status indicators (i.e.,
ON, ALARM, etc.), @ priority indicators, and/or
numbers.

x Represents a condition, assignment, or course of action to


take if the expression (exp) is true.

y Represents a condition, assignment, or course of action to


take if the expression (exp) is false.

Use
This conditional logic command is used to provide customized
decision logic.

• When the IF expression is true, the THEN command is executed.

• When the IF expression is false, the ELSE command (if defined)


is executed.

• If the IF expression is false and no ELSE command is defined,


execution continues with the next line of code.

Siemens Building Technologies, Inc. 3-61 3-62 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

INITTO (Initialize totalized value) LLIMIT (Low limit)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
INITTO(value,pt1,...,pt15) LLIMIT(value,pt1,...,pt15)
value The new value which replaces the current totalized values for value New value to which the low limit is set.
all specified points. • This value can be a decimal, point name, or local
• This value can be a decimal, point name, or local variable. Integers are not allowed.
variable. Integers are not allowed.
pt1 Logical names of analog points whose low limits are changed
pt1 Names of points that are defined for totalization. Points must through to the new value. Points must reside in the same device as
through reside in the same device as the control program. pt15 the command.
pt15
Use
Use
Sets a new low alarm limit for alarmable analog points.
Change the totalized value of a point to a new value (generally 0).
A maximum of 15 points can be set to the same low limit with one
A maximum of 15 point names can receive the new value through LLIMIT command.
one INITTO command.
Example
Example 100 IF (OATEMP.GT.68.0) THEN LLIMIT(76.0,
10 IF (DAYOFM.EQ.1.0) THEN INITTO(0.0, PMP1,PMP2) ROOM16) ELSE LLIMIT(68.0,ROOM16)

Notes Notes
• Points must reside in the same device as the command. • Points must reside in the same device as the program.
• The INITTO command cannot reset the value of LPACI point • Points used in the LLIMIT command must be defined as
types. alarmable.
• Only points that are defined to be totalized can be initialized by
See also
this command.
ALARM, DISALM, ENALM, HLIMIT, NORMAL
• When used in APOGEE field panels (which can totalize individual
states of a point), INITTO will reset all totalized states of a digital
point to zero.

Siemens Building Technologies, Inc. 3-63 3-64 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

LOCAL (Local variable) LOOP (Loop control)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž

Syntax Syntax
LOCAL(pt1,... ,pt16) LOOP(type,pv,cv,sp,pg,ig,dg,st,bias,lo,hi,0)
pt1 Names of virtual points created for the program. type Designates the type of control action.
through • Valid values are 0 and 128.
pt16 0 = direct acting.
128 = reverse acting.
Use
pv Point name of the process variable which is being controlled
Creates virtual points for the program. or regulated.
• This parameter is usually an LAI point, but it can be
• The program can reference these points as $pt1 through $pt16. an LAO point, which represents a temperature, flow
rate, air velocity, etc.
• Other programs can reference these points by referencing the
program name, followed by the system delimiter (:), followed by cv Point name of the loop output (control variable).
the local point name. • This parameter is usually an LAO point that
represents an actuator signal such as pressure,
Example 1 current, or voltage.
• This value can be entered as a local variable.
The following is an example of commanding a local point contained
within a program: sp Setpoint for the loop against which the process variable is
100 LOCAL(FANPT) compared. The value of the setpoint should represent the
200 ON($FANPT) same engineering units as the process variable.
• This parameter can be entered as a point name or a
Example 2 decimal number.
• This value can be entered as a local variable.
The following is an example of a program using the value of a local
point in a different program (where PROG1 is the program name): pg Proportional gain determines the part of a PID control action
300 IF(“PROG1:FANPT”.EQ.ON)THEN ... that is directly proportional to the error between the setpoint
(sp) and the process variable (pv).
• This parameter can be entered as a point name, local
variable, integer, or decimal.

Proportional gain is calculated using the following formula:

Full range of controlled device


pg = × 1000
Throttling range to change the output
device from full open to full close.

Siemens Building Technologies, Inc. 3-65 3-66 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

ig Integral gain. The contribution of integral control action to the lo Low limit of the loop output. The low limit should be set to
total control action of the loop. Integral action minimizes offset match the low end range of the controlled device.
(the difference between the process variable and the • This parameter is entered as a decimal, integer, point
setpoint). Adding integral gain can increase the time required name, or local variable.
to tune the loop.
hi High limit of the loop output. The high limit should be set to
When using integral gain, be sure to reduce the proportional match the high end range of the controlled device.
gain so that the total gain of the loop is not high enough to • This parameter is entered as a decimal, integer, point
cause instability and cycling. Begin with a low integral gain name, or local variable.
and increase it slowly, if required. A recommended starting
point is 2% of the proportional gain. 0 Not used. Enter zero.
• This parameter can be a point name, integer,
decimal, or local variable. Example
• If using an integral gain, use the following calculation: 2000 C CONTROL LOOP STATISTICS
ig = pg × .02 2002 C DIRECT CONTROL LOOP
• If not using an integral gain, set ig to 0. 2004 C INPUT = RM100 OUTPUT = HVALVE
2006 C SETPOINT = HSETPT
dg Derivative gain. The time rate of response of the control 2008 C PROPORTIONAL GAIN = PGAIN-NO I OR D GAINS
system. Derivative gain is usually applied to fast responding 2010 C SAMPLE TIME = 1 SECOND
systems. Adding derivative gain can increase the time
2012 C BIAS = 5.5
required to tune the loop.
2014 C LOW = 3.0
• This parameter is entered as an integer, decimal,
point name, or local variable. 2016 C HIGH = 9.0
• When derivative gain is not used, enter a zero. 2018 LOOP(0,RM100,HVALVE,HSETPT,PGAIN,0,0,1,5.5,3.0,
9.0,0)
st Sample time. How frequently (in seconds) the process
variable (pv) is sampled. Use
• The minimum sampling time allowed is 1 second.
• This parameter is entered as an integer, decimal,
This command performs closed loop control by using any
point name, or local variable. combination of proportional, integral, and derivative control actions in
either direct or reverse acting modes.
bias Bias is the value (in engineering units) of the control output
(cv), in a proportional only loop, when the measured variable LOOP monitors an input point (process variable), compares it with a
(pv) equals the setpoint (sp). desired value (the setpoint), and adjusts an output (control variable)
• This parameter entered as a decimal number, integer, to bring the input closer to the setpoint.
point name, or logical point.
• The bias value should always be between the high • The LOOP command is the software counterpart to a pneumatic
and low value. receiver controller.
Bias is calculated by adding 50% of the output control span to • Anti-windup is automatically prevented for the integral action
the low limit. For example, you would do the following to once the high or low limit is reached.
calculate the bias for a valve with a 3 to 8 psi spring range:
• Find one-half of the spring range. (5 psi spring range
See also
÷ 2 = 2.5)
• Add that value to the low limit of the valve (3 psi). ADAPTM, ADAPTS
• The bias for this device is 5.5 psi.

Siemens Building Technologies, Inc. 3-67 3-68 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

MAX (Maximum value) MIN (Minimum value)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
MAX(result,pt1,...,pt15) MIN(result,pt1,...,pt15)
result Point name where the largest value is stored. result Point name where the lowest value is stored.
• This parameter can be a virtual point name or a local • This parameter can be a virtual point name or local
variable. variable.

pt1 Values which are compared. pt1 Values which are compared.
through • The values can be any combination of point names, through • The values can be any combination of point names,
pt15 decimals, integers, and local variables. pt15 decimals, integers, and local variables.

Use Use
This command selects the largest value from 2 to 15 point names or This command selects the lowest value from 2 to 15 point names or
numbers, (numbers must be in decimal format), and stores that numbers (numbers must be in decimal format), and stores that value
value in the result point. in the result point.

Example Example
10 MAX(HOTZON,ZONE1,ZONE2,ZONE3, 9.0) 10 MIN(COOLZN,ZONE1,ZONE2,ZONE3,9.0)

See also See also


MIN MAX

Siemens Building Technologies, Inc. 3-69 3-70 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

NIGHT (Night mode) NORMAL (Normal operating mode)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž

Syntax Syntax
NIGHT(pt1,...,pt16) NORMAL(pt1,...,pt16)
pt1 Name of a point to be set to NIGHT mode. pt1 Name of a point to be removed from the alarm-by-command
through • This parameter must be a logical controller (LCTLR) through state.
pt16 point type. pt16

Use Use
Changes a LCTLR point to NIGHT mode status. Removes the specified points from the alarm-by-command condition
and returns them to their normal operating mode.
A maximum of 16 points can be changed with one NIGHT command.
A maximum of 16 points can be changed with one NORMAL
Example command.
100 IF (TIME.LT.7:00.OR.TIME.GT.18:00) THEN
NIGHT(LCTLR2) ELSE DAY(LCTLR2) Example
100 IF (RM90T.GT.80.0) THEN ALARM(ROOM90)
Notes ELSE NORMAL(ROOM90)

For some equipment controllers, NIGHT mode is also referred to as Notes


UNOCC (unoccupied) mode. If an equipment controller is in UNOCC
mode, PPCL recognizes this status as NIGHT. Points must reside in the same device as the program.

See also See also


DAY ALARM, DISALM, ENALM, HLIMIT, LLIMIT

Siemens Building Technologies, Inc. 3-71 3-72 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

See also
OFF (Off status)
AUTO, FAST, ON, SLOW
Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž

Syntax
OFF(pt1,...,pt16)
pt1 through Point names that are commanded to OFF.
pt16

OFF(@prior,pt1,...,pt15)
@prior Defines a specific point priority.

pt1 through Point names of LDI, LDO, L2SL, L2SP, LOOAL, LOOAP,
pt15 LFSSL, or LFSSP points.
NOTE: The OFF(@prior) command is not available in Unitary
firmware.

Use
Changes the operational status of an ON/OFF/AUTO point to OFF.

• Acceptable point types are: LDI, LDO, L2SL, L2SP, LOOAL,


LOOAP, LFSSL, and LFSSP.

• A maximum of 16 points can be changed with one OFF


command.

• A maximum of 15 points can be defined with one OFF(@prior…)


command.

Example
20 IF (OATEMP.GE.63.0) THEN OFF(@NONE,PUMP1,PUMP2)

Notes
FAST/SLOW/STOP points (LFSSL, LFSSP) use the OFF command
for STOP.

Siemens Building Technologies, Inc. 3-73 3-74 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

Example
OIP (Operator interface program) 100 C
Unitary pre-APOGEE APOGEE BACnet 102 C OIP COMMAND INFORMATION:
104 C OPERATOR SEQUENCE
Ž Ž Ž 106 C
108 C - POINT
Syntax 110 C - DISPLAY
112 C - PRINTER
OIP(trigger, ''seq'') 114 C - YES
trigger The trigger for the operator interface sequence. 116 C - VALUE
• This parameter can be an LDO or LDI point name or 118 C - ANY
a local variable. 120 C - NAME
seq This variable represents the sequence of keystrokes you 122 C - ALL NAMES
would enter if you were using a terminal. 124 C
• The sequence must not exceed 80 characters 130 C TRIGGER POINT - RPT7AM
(including slashes) in length. 150 OIP(RPT7AM,"P/D/P/Y/V/A/N/*")
• The sequence must be enclosed in double quotes
('' ''). Example to Dial Out Using a Modem—APOGEE Firmware
• For each level in the sequence that you advance, you 100 C APOGEE OIP COMMAND INFORMATION:
must enter a slash (/). 102 C DIAL-OUT TO MODEM
• If a pause is needed in a phone number, do the 110 OIP(TRIGGER,”S/H/P/I/C/P/<field panel
following: #>/<partner id>”)
ƒ For APOGEE firmware, enter a comma.
ƒ For pre-APOGEE firmware, enter a period. Example to Dial Out Using a Modem—pre-APOGEE Firmware
100 C PRE-APOGEE OIP COMMAND INFORMATION:
Use 102 C DIAL-OUT TO MODEM
Allows most operator functions to be executed from within a PPCL 110 OIP(TRIGGER,”S/D/<cabinet #>/O/C/<phone # id>/”)
program. This command is generally used for the following functions:
Notes
• Generating reports
• OIP commands used to generate messages, displays, and
• Changing point priorities reports should be staggered in time (that is, do not use the same
trigger point for all OIP commands). This allows one command to
• Sending messages complete before another begins.
• Triggering auto-dial • The OIP command will appear as FAILED if the operator
sequence was entered incorrectly and the control program
The OIP command uses a trigger point to determine the conditions
attempts to execute it.
for execution. When the trigger point is turned on, the operator
sequence is executed once. To execute the operator sequence • On return from power failure, after an enable command has been
again, the trigger point must be turned OFF, and then turned ON executed, or during the first execution of the control program after
again. a database load, the OIP command will not execute until the
trigger point toggles.

Siemens Building Technologies, Inc. 3-75 3-76 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

• After the OIP command has been executed, the trigger point
must be reset (commanded back to its original state) before the ON (On status)
OIP command can be executed again. Unitary pre-APOGEE APOGEE BACnet
• When using an OIP command with an LDO type subpoint, you Ž Ž Ž Ž
must command the point ON/OFF with the number 1 or 0. Using
any text other than 1 or 0 will cause the statement to fail.
Syntax
• If the trigger point name begins with a number, then the point ON(pt1,...,pt16)
name should be preceded by an @ sign. If a variable in the
keystroke sequence begins with a number, then the point name pt1 Point names that are commanded to ON.
should not be preceded by an @ sign. through
pt16
Correct
100 OIP(TRIG,"P/T/D/H///FAN/1FAN//60/") ON(@prior,pt1,...,pt15)
@prior Defines a specific point priority.
Incorrect
100 OIP(TRIG,"P/T/D/H///FAN/@1FAN//60/") pt1 Point names of LDO, L2SL, L2SP, LOOAL, or LOOAP points.
through
• The OIP command must be executed with every pass of the
pt15
program in order to see the trigger point change value.

• The OIP command cannot be used to perform loop tuning. Use


• In an OIP statement, a slash / can be used to represent a Changes the operational status of an ON/OFF/AUTO point to ON.
carriage return. An example of a multi-point trend display would
look like: • Acceptable point types are: LDO, L2SL, L2SP, LOOAL, or
OIP (TRIG, "P/T/D/P/// Name1/Name2/Name3//10/") LOOAP.
• To specify which trend instance should display, use the following • A maximum of 16 points can be changed with one ON command.
syntax for the Multi-Point Trend Report:
OIP (TRIG, "P/T/D/P/// Name1//Name2//Name3//10/") • A maximum of 15 points can be defined with one ON(@prior…)
command.

Example
100 IF (OATEMP.LT.60.0)THEN ON(@NONE,
PUMP1,PUMP2)

See also
AUTO, FAST, OFF, SLOW

Siemens Building Technologies, Inc. 3-77 3-78 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

ONPWRT (On after power return) PDL (Peak demand limiting)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž

Syntax Syntax
ONPWRT(line#) PDL(area,totkw,target,g1s,g1e,sh1,...,g4s,g4e,sh4)
line# Line number at which execution begins in the control area Meter area number.
program after returning from power failure. • Enter this number as an integer.
• Line numbers must be entered as integers ranging
from 1 to 32767. totkw Total amount of power consumed by the loads that are
• If the line number is invalid, this command is controlled by the PDL command.
ignored. • The same virtual LAO point must be used for both
the PDL totkw parameter and the kwtot parameter in
Use the owning PDLDPG command. The value of this
parameter is calculated by the PDL command.
This command is similar to a GOTO command and allows you to
select the first program line that is executed when power has A power-consuming load is controlled by a PDL command if
returned. The ONPWRT command is only executed once and is then the following criteria are met:
ignored as long as power stays ON. • The power-consuming load is defined in a PDLDAT
command that is associated with a PDL command.
Example • The load is currently in NONE or PDL priority.
10 ONPWRT(1800) • The PDL command is traced and is enabled.
• The PDLDPG command is enabled.
Notes • The PDLDAT command is enabled.

• The ONPWRT command should be the first command in a PPCL target Power consumption limit that is maintained by the PDL
program since program execution returns to the first line of a command.
PPCL program after a power failure. • The same virtual LAO point must be used for both
the PDL target parameter and the target parameter in
• If the database for a field panel is lost due to a power failure, the the corresponding PDLDPG command. The value of
this parameter is calculated by the PDLDPG
ONPWRT command is not executed when power is restored.
command.

g1s Start line for the group 1 load definition in the corresponding
PDLDAT commands. This is the first group to shed when
demand exceeds the setpoint.

g1e End line for the group 1 load definition.

sh1 Shedding sequence for group 1.


• Valid values are 0 and 1.
0 = Fixed shedding
1 = Round robin shedding
Siemens Building Technologies, Inc. 3-79 3-80 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

g4s Start line for the group 4 load definition in the corresponding Example
PDLDAT commands. This is the last group to shed when 100 PDL(1,TOTKW1,TGT1,100,199,0,200,299,1,
demand exceeds the setpoint. 300,399,0,400,499,0)
g4e End line for the group 4 load definition.
Notes
sh4 Shedding sequence for group 4.
• PDL must control 10-20% of the building demand to be effective.
• Valid values are 0 and 1.
0 = Fixed shedding • When points are controlled by the PDL command, they are
1 = Round robin shedding
placed into PDL priority. Group 1 is shed first, while Group 4 is
Use shed last.

Maintains a defined level of kilowatt use (or target) for a group of • With APOGEE firmware, one meter can be defined in each
loads. program.

NOTE: For a detailed explanation of Peak Demand Limiting • With pre-APOGEE firmware, only one meter can be defined in a
(PDL), see Chapter 2–Control Option Comparisons. field panel.

A single PDL command is responsible for the direct control of a • The PDL statement fails if more than four shedding groups are
group of PDLDAT commands in a load-handling field panel. The defined.
PDL command control includes:
• Do one of the following if all four shedding groups are not used:
• Maintaining a target kilowatt (kW) value by shedding and — With Firmware Revision 2.6/2.6.1 and later, no entry is
restoring loads. The target value is passed to the PDL command required for unused groups.
through an LAO point value from the PDLDPG command.
— With Firmware Revision 2.5.2 and earlier, enter the integer 0
• Monitoring the total available kilowatts under its control. The PDL for the starting line, ending line, and shedding type for all the
command determines which of the loads defined in the unused groups.
associated PDLDAT command is available for peak demand
limiting control. The total kilowatts available to the PDL command
are placed in an LAO point. See also
PDLDAT, PDLDPG, PDLMTR, PDLSET
• Maintaining the timing as defined in the PDLDAT command for
minon, minoff, and maxoff.

• Defining how each load under PDL control fits into one of four
priority groups. This is accomplished by referring to the line
numbers of the PDLDAT commands.

• Defining and controlling the sequence of shedding and restoring


for each priority group.
— There are two types of shedding and restoring: fixed and
round robin.

— Shedding begins at 90% of the setpoint.


Siemens Building Technologies, Inc. 3-81 3-82 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

Example
PDLDAT (PDL, define load attributes) 100 C
Unitary pre-APOGEE APOGEE BACnet 102 C PDLDAT COMMAND INFORMATION:
104 C
Ž Ž Ž 106 C - CONTROLLED POINT - FAN17
108 C - MINIMUM ON TIME - 10 MINUTES
Syntax 110 C - MINIMUM OFF TIME - 5 MINUTES
112 C - MAXIMUM OFF TIME - 180 MINUTES
PDLDAT(ptname,minon,minoff,maxoff,kwval) 114 C - KILOWATT RATING - 10KW
ptname Point name of the load. 116 C
118 PDLDAT(FAN17,10,5,180,10)
minon Minimum time (in minutes) that the load must remain ON
after PDL has restored it. Notes
• This parameter must be less than 546 and can be
defined as a decimal, integer, point name, or a local • In a network system, a load defined by a PDLDAT statement
variable. must reside in the same field panel as the PDL statement.

minoff Minimum time (in minutes) that the load must remain OFF • A PDLDAT statement is referenced by only one PDL statement.
before PDL can restore it. Using multiple references produces unpredictable results.
• This parameter must be less than 546 and can be
defined as a decimal, integer, point name, or a local • The PDLDAT statement should be in the same field panel as the
variable. load.

maxoff Maximum time (in minutes) that PDL can keep the load off See also
after shedding it.
• This parameter can be a decimal, integer, point PDL, PDLDPG, PDLMTR, PDLSET
name, or a local variable.
• The maximum allowable value of maxoff is
(minoff + 546).

kwval Kilowatt value for the load.


• This parameter can be a decimal, integer, point
name, or a local variable.

Use
Defines the minimum on-time, minimum off-time, maximum off-time,
and kilowatt value for a specific load.

A group of PDLDAT commands in a load handling field panel are


controlled by a single PDL command that defines load parameters
and maintains a certain level of kilowatt use (or target) for a group of
loads.

Siemens Building Technologies, Inc. 3-83 3-84 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

• Each of these kwtot parameters must be the same


PDLDPG (PDL, digital point group) virtual LAO point that is specified as the kwtot
parameter for the corresponding PDL and PDLDPG
Unitary pre-APOGEE APOGEE BACnet statements. The value of the parameter is assigned
Ž Ž Ž by the PDL statement in which it is defined.

Use
Syntax Keeps track of how many kilowatts worth of load are available in
PDLDPG(area,kwtot1,target1,...,kwtot7,target7) each load-handling field panel and how many kilowatts are to be
shed or restored at any time in each field panel.
area Meter area designation.
• In order for the program to operate correctly, the Sets the target value for each PDL command associated with a
same numeric value must be used for the meter area meter area.
parameter in the PDLDPG, PDLMTR, and PDLSET
statements. The PDLDPG statement proportionally distributes the target value to
each PDL statement according to the values of kwtot1 through
kwtot1 Total amount of power consumed by the loads that are
through controlled by the PDL command. kwtot7.
kwtot7 • The same virtual LAO point must be used for both
the PDL totkw parameter and the kwtot parameter in Example
the owning PDLDPG command. The value of this 100 PDLDPG(1,TOTKW1,TGT1,TOTKW2,TGT2)
parameter is calculated by the PDL command.
See also
A power-consuming load is controlled by a PDL command if
the following criteria are met: PDL, PDLDAT, PDLMTR, PDLSET
• The power-consuming load is defined in a PDLDAT
command that is associated with a PDL command.
• The load is currently in NONE or PDL priority.
• The PDL command is traced and is enabled.
• The PDLDPG command is enabled.
• The PDLDAT command is enabled.

target1 Power consumption target value. One target parameter must


through be specified for the corresponding PDL command in the load-
target7 handling field panels.
• The same virtual LAO point must be used for both
the PDL target parameter and the target parameter in
the corresponding PDLDPG command. The value of
this parameter is calculated by the PDLDPG
command.

One kwtot parameter must be specified for each PDL


statement that is a number of this meter area. The sum of the
value of all kwtot parameters is used by the PDLDPG
command to calculate the power consumption target value for
each PDL command.

Siemens Building Technologies, Inc. 3-85 3-86 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

warning Determines if warning messages are issued as predicted


PDLMTR (PDL, meter monitor) demand nears or exceeds the setpoint.
• Valid values are 0 and 1.
Unitary pre-APOGEE APOGEE BACnet 0 = Warning messages disabled
Ž Ž Ž 1 = Warning messages enabled

mt1 Logical point names for demand consumption meters.


Syntax through • This parameter can be an LPACI or analog point.
mt5 ƒ When an LPACI points is used, the engineering
PDLMTR(area,hist,calc,window,plot,warning,mt1, def1,...,mt5,def5) units are kWH.
ƒ When an analog point is used, the engineering
area Meter area.
units are kW.
• In order for the program to operate correctly, the
same numeric value must be used for the meter area
def1 The default values are used instead of the meter values (mt1
parameter in the PDLDPG, PDLMTR, and PDLSET
through through mt5) when communication is lost or the meters
statements.
def5 cannot be read.
• This parameter can be an integer (1 to 32,767), a
• This parameter can be a decimal, integer, point
point name, or a local variable.
name, or local variable.
ƒ For historical (latest, best) reading, enter -1
hist Historical forecast weighting factor (in percent) for the sliding
(default value), or enter a constant or a fixed
window predictions.
default value.
• This parameter can be a decimal or integer. ƒ Default values are expressed in kilowatts
• The weighting factor should be less than 50% to (demand) for both analog and pulse inputs.
anticipate demand.
• The recommended value is 30%. Use
calc Interval (in minutes) for how often demand predictions are The PDLMTR command is responsible for the following actions:
calculated.
• This parameter is usually a decimal or integer, but • Defining meters by point name.
can be a point name or a local variable.
• The minimum time allowed is one minute. • Monitoring meters.

window Predictions on the width of the sliding window interval (in • Making demand predictions that are used by the PDLDPG
minutes). command.
• This parameter is usually a decimal or integer, but
can be a point name or a local variable. • Updating report information pertaining to demand and
• Up to 30 samples can be stored per window. consumption.

plot Maximum value for the Time versus Demand plot section of • Deciding when warning messages should be issued.
the PDL Activity Report.
• This parameter can be a decimal, integer, point • Initializing a meter area.
name, or a local variable.
• This value should be greater than the highest • Defining default meter values.
setpoint used in PDLSET.

Siemens Building Technologies, Inc. 3-87 3-88 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

Example
200 C PDLSET (PDL, setpoints)
202 C PDLMTR COMMAND INFORMATION: Unitary pre-APOGEE APOGEE BACnet
204 C
206 C - HISTORICAL WEIGHTING FACTOR - 30% Ž Ž Ž
208 C - CALCULATION INTERVAL - 1 MINUTE
210 C - PREDICTION WINDOW - 15 MINUTES Syntax
212 C - THE TIME VERSUS DEMAND SECTION OF
214 C THE ACTIVITY REPORT PLOT HAS A PDLSET(area,exceed,set1,time1,...,set7,time7)
216 C FULL SCALE OF 500 KILOWATTS. area Meter area.
218 C - WARNING MESSAGES ARE ENABLED TO • In order for the program to operate correctly, the
220 C BE SENT TO ALARM DEVICES. same numeric value must be used for the meter area
222 C - THE DEFAULT VALUES OF THE TWO parameter in the PDLDPG, PDLMTR, and PDLSET
224 C METER POINTS (METER1 AND statements.
226 C METER2) ARE 100 KILOWATTS AND • This parameter is an integer.
228 C 50 KILOWATTS RESPECTIVELY.
230 C exceed DO point which is turned ON if the actual floating window
250 PDLMTR(1,30,1,15,500,1,METER1,100, peak exceeded the setpoint at any time during the preceding
interval. This point is reset to OFF at the end of each setpoint
METER2,50)
interval.
Notes set1 Demand setpoint (in kilowatts) that is not to be exceeded.
through • This parameter can be a decimal, integer, point
• Only one PDLMTR command can be defined per meter area. set7 name, or a local variable.
• For APOGEE field panels, one PDLMTR command can be
time1 The time at which the corresponding setpoint ends.
defined per program. through • This parameter is usually entered as a clock time in
time7 military format (7:30 p.m. = 19:30). It can also be
• With pre-APOGEE firmware, one meter area can be defined in a
entered as a decimal, integer, or a local variable.
field panel.
• Times must be in ascending order.
• If a LPACI point is used in a PDLMTR statement, then PDL
Use
should be restarted for that meter area after the LPACI is reset.
The PDLSET command designates the peak demand limiting (PDL)
See also levels and ensures that the PDL levels for a meter area are not
exceeded during the time those setpoints are in effect.
PDL, PDLDAT, PDLDPG, PDLSET
Demand predictions made by the PDLMTR command are compared
with the appropriate setpoints defined by the PDLSET command.
The PDLSET command then determines the number of kilowatts (if
any) that must be shed or restored for the meter area.

Siemens Building Technologies, Inc. 3-89 3-90 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

Example
100 C RELEAS (Release)
101 C PDLSET COMMAND INFORMATION: Unitary pre-APOGEE APOGEE BACnet
102 C
103 C - THIS COMMAND CONTROLS METER AREA 1. Ž Ž Ž
104 C - THE VIRTUAL LDO POINT WHICH WILL
105 C TOGGLE ON AND OFF AT THE END OF Syntax
106 C THE SET POINT INTERVALS WHEN THE
107 C SET POINT WAS EXCEEDED IS RELEAS(pt1,...,pt16)
108 C CALLED PEAKEX. pt1 Point name to be released to NONE priority.
109 C - PDLST1 SET POINT ENDS AT 11:00 A.M. through • This parameter can be a LFSSL or LFSSP point.
110 C - PDLST2 SET POINT ENDS AT 4:30 P.M. pt16 • This command only works for points in EMER or PDL
111 C priority. To release points in OPER or SMOKE
120 PDLSET(1,PEAKEX,PDLST1,11:00,PDLST2,16:30) priority, the RELEAS(@prior…) command must be
used.
Notes RELEAS(@prior, pt1,...,pt15)
The PDLSET command requires at least two setpoint/time definitions @prior Defines a specific point priority that the point is being
for each day in order to generate reports. released from.

pt1 Point name to be released to NONE priority.


See also
through
PDL, PDLDAT, PDLDPG, PDLMTR pt15

Use
Changes the operational status of a point to NONE priority.

• A maximum of 16 points can be changed with one RELEAS


command.

• A maximum of 15 points can be defined with one


RELEAS(@prior…) command.
An LAO or LDO point that is used in a RELEAS statement can
generate multiple entries in the Trend Data Report if a command
statement such as SET, =, ON, or OFF is used on the same point at
the same time.

Example 1
110 IF(TEMP.NE.ALARM.AND.PT2.NE.@NONE)THEN
RELEAS(@EMER, PT2)
In this example, PT2 will only be released if its priority is not equal to
NONE and TEMP is not in alarm.

Siemens Building Technologies, Inc. 3-91 3-92 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

Example 2
120 RELEAS(@SMOKE, PT1, PT2, PT3) RETURN (Return/end subroutine)
In this example, all three points will be released to NONE priority if Unitary pre-APOGEE APOGEE BACnet
they currently have a priority of SMOKE, EMER, or PDL. If any point Ž Ž Ž Ž
is in OPER priority, it will not be released.

Notes Syntax
RETURN
• With APOGEE and pre-APOGEE firmware, always use a priority
at least as high as the one that the point will be in to ensure
proper release. If the point has been commanded from the Use
keyboard, it will require an @OPER entry to release the priority of Marks the end of a subroutine.
the point to NONE.
RETURN must be the last command of any GOSUB subroutine.
• With BACnet firmware, the RELEAS(@prior, pt1,…,pt15) When a RETURN command is encountered, the program returns to
command releases the BACnet slot which is mapped to the the line following the GOSUB command
stated APOGEE priority, but it may not release all the way to
NONE priority. The BACnet Command Priority levels must be Example
emptied to allow lower priority levels to control the point. 100 GOSUB 310
110 ...
The standard BACnet Priority Array rules control the @prior 120 ...
release process as follows: 130 ...
— If a value exists in a higher priority slot than the slot mapped 290 ...GO TO 350
to @prior, the value is not released.
300 C THIS SUBROUTINE PERFORMS...
— If the slot mapped to @prior is the highest slot, the value is 310 ...
released. The new value is determined by the presence, in 320 ...
order from higher to lower priority levels, of values in the 330 ...
slots below. 340 RETURN
350 CONTINUE WITH REST OF PROGRAM
— If no values exist in the lower priority slots, the relinquished
default value is used. See also
GOSUB, GOTO

Siemens Building Technologies, Inc. 3-93 3-94 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

SAMPLE (Sample a statement) SET (Set point value)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž Ž Ž

Syntax Syntax
SAMPLE(sec) line SET(value,pt1,...,pt15)
sec Interval in seconds between evaluations of state. value Value to which points are commanded.
• This value must be entered as an integer ranging • This value can be a decimal, a logical point, or a local
from 1 to 32,767. variable. Integers are not allowed.

line Any PPCL statement that does not include its own timing pt1 Point names of logical points.
function. This includes: WAIT, PDL, TOD, TIMAVG, LOOP, through
SSTO, or another SAMPLE command. pt15

Use SET(@prior, value, pt1,...,pt14)


Defines how often a command is evaluated. The SAMPLE command @prior Defines a specific point priority.
can be helpful in situations, such as preventing short cycling in
ON/OFF decisions or reducing COVs from noisy flow transmitters. value Value to which points are commanded. This value can be a
decimal, a logical point, or a local variable. Integers are
Example allowed in APOGEE firmware.
200 SAMPLE(600) ON(HALFAN)
pt1 Point names of LAO or LDO, L2SL, L2SP, LOOAL, LOOAP,
through LFSSL, LFSSP, and LPACI point types.
Notes pt14
The SAMPLE command executes immediately on a return from
power failure, after an ENABLE command, or during the first NOTE: The SET(@prior) command is not available in Unitary
execution of PPCL following a database load. firmware.

Valid commands can include assignment, calculations, and program


Use
control (GOTO, GOSUB).
Changes output points to a new value.

• Acceptable point types are: LAO or LDO, L2SL, L2SP, LOOAL,


LOOAP, LFSSL, LFSSP, and LPACI.

• A maximum of 15 points can be changed with one SET


command.

• A maximum of 14 points can be changed with one


SET(@ prior…) command.

Siemens Building Technologies, Inc. 3-95 3-96 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

Example 1
450 SET(75.0,RMSET1,RMSET2,RMSET3) SLOW (Slow status)
Unitary pre-APOGEE APOGEE BACnet
Example 2
550 SET(@EMER,75.0,RMSET1,RMSET2,RMSET3) Ž Ž Ž
Notes
Syntax
Do not use resident points in either the SET or the TABLE
command. With both the SET and TABLE commands, the following SLOW(pt1,...,pt16)
should be used for resident points: pt1 Point names of LFSSL or LFSSP points that are commanded
Virtual point = Resident point through to SLOW.
pt16

SLOW(@prior, pt1,...,pt15)
@prior Defines a specific point priority.

pt1 Point names of LFSSL or LFSSP point types.


through
pt15

Use
Changes the operational status of a FAST/SLOW/STOP point to
SLOW.

• Acceptable point types are: LFSSL or LFSSP.

• A maximum of 16 points can be changed with one SLOW


command.

• A maximum of 15 points can be defined with one


SLOW(@prior…) command.

Example
20 IF (RMTEMP.LT.75.0)THEN SLOW(@NONE, FAN1,FAN2)

See also
AUTO, FAST, OFF, ON

Siemens Building Technologies, Inc. 3-97 3-98 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

SSTO (Start/stop time optimization) esp Earliest stop time.


• This parameter can be a military time (7:30 p.m. =
Unitary pre-APOGEE APOGEE BACnet 19:30), a decimal time (7:30 p.m. = 19.50), a logical
Ž Ž Ž point name, or a local variable.

lsp Latest stop time.


Syntax • This parameter can be a military time (7:30 p.m. =
19:30), a decimal time (7:30 p.m. = 19.50), a logical
SSTO(zone,mode,cst,csp,est,lst,ost,esp,lsp,osp,ast,asp) point name, or a local variable.

NOTE: Valid mode values are described in the table following the osp Occupancy stop time.
parameter descriptions. • This parameter can be a military time (7:30 p.m. =
19:30), a decimal time (7:30 p.m. = 19.50), a logical
zone SSTO zone number.
point name, or a local variable.
• Valid values are 1 to 5.
ast Total adjustment to the calculated start time. This value is
mode Mode number. changed from day-to-day.
• Valid entries are any combination of 1, 2, 4, 8, or 16 • A decimal value or virtual LAO point type can be
as defined in the following table. defined to store the adjustment value.
• Mode numbers can be added together to create
customized schedules for the TOD program. See the asp Total adjustment to the calculated stop time. This value is
TODMOD command for more information. changed from day to day.
cst Calculated start time. • A decimal value or virtual LAO point type can be
• This parameter is a virtual LAO point name. defined to store the adjustment value.
• If SSTO is disabled (season = 0 in the SSTOCO
command), then cst is assigned to the latest start Valid SSTO Mode Values.
time.
Mode Schedule
csp Calculated stop time. 1 Normal schedule
• This parameter is a virtual LAO point name. 2 Extended schedule
• If SSTO is disabled (season = 0 in the SSTOCO 4 Shortened schedule
command), then csp is assigned the latest stop time. 8 Weekend schedule
16* Holiday schedule
est Earliest start time.
*Mode number 16 (Holiday) should only be used with the HOLIDA command.
• This parameter can be a military time (7:30 p.m. =
19:30), a decimal time (7:30 p.m. = 19.50), a logical
point name, or a local variable. Use

lst Latest start time. The SSTO command calculates the optimal start and stop times for
• This parameter can be a military time (7:30 p.m. = each zone based on information derived from the SSTOCO
19:30), a decimal time (7:30 p.m. = 19.50), a logical command (outside air temperature, zone temperature, desired zone
point name, or a local variable. temperature, etc.) as well as parameters for earliest, latest, and
ost Occupancy start time. occupancy start times provided in the SSTO command.
• This parameter can be a military time (7:30 p.m. =
19:30), a decimal time (7:30 p.m. = 19.50), a logical This command has the ability to tune itself by incrementing or
point name, or a local variable. decrementing the start time after calculating an adjust time (ast)
Siemens Building Technologies, Inc. 3-99 3-100 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

when errors between actual temperatures and desired temperatures


occur. SSTOCO (SSTO coefficients)
Unitary pre-APOGEE APOGEE BACnet
Example
60 SSTO(1,1,ONTIM,OFTIM,6:30,7:45,8:00,15:30, Ž Ž Ž
16:45,17:00,0.0,0.0)
Syntax
Notes
SSTOCO(zone,season,intemp,outemp,ctemp,ccoef1,ccoef2,
• The SSTO command only calculates the optimal start and stop ccoef3,ccoef4,htemp,hcoef1,hcoef2,hcoef3,hcoef4)
times. TOD and TODSET commands are needed to command
the point. NOTE: For variables used in this command, you can use
numbers, point names, or local variables.
• When ast or asp is defined as zero, the current adjustment value
is displayed each time the command is displayed. If a virtual LAO zone SSTO zone number.
point name is entered, the operator can specify (command) an • Valid values are 1 to 5.
initial value for ast or asp.
season Current season. Point name whose value represents the
coefficients to be used.
See also • Heat = 2
• Cool = 1
SSTOCO, TOD, TODSET
• Disable SSTO = 0

intemp Point name or average of indoor zone temperature sensor.

outemp Point name or average of outdoor air temperature sensor.

ctemp Desired zone temperature for cooling season.


• This parameter can be a floating point (decimal)
number, an integer, a point name, or a local variable.

ccoef1 Cooling coefficient. The time, in hours, required to lower the


zone temperature one degree while ignoring external load
factors.
• This value must be entered in fractions of an hour.

ccoef2 Cooling retention coefficient. The time, in hours, required to


raise the zone temperature one degree with the cooling
equipment off, outside air dampers open, and the outside
temperature 10 degrees higher than the desired zone
temperature for the cooling season.
• This value must be entered in fractions of an hour.

Siemens Building Technologies, Inc. 3-101 3-102 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

ccoef3 Cooling transfer coefficient. The time, in hours, required to Example


lower the zone temperature one degree with outside air 100 SSTOCO(1,1,ROOM10,OATEMP,75.0, 0.01,0.3,
dampers closed and the outside temperature 10 degrees 0.05,0.083,72.0,0.1,0.1,0.2,0.083)
higher than the desired zone temperature for the cooling
season.
• This value must be entered in fractions of an hour.
See also
SSTO, TOD, TODMOD
ccoef4 Cooling auto-tune coefficient. The time, in hours, added to or
subtracted from the adjusted time (ast or asp) in the SSTO
command as part of the self-tuning feature.
• This value must be entered in fractions of an hour.

htemp Desired zone temperature for heating season.


• This parameter can be a floating point (decimal)
number, an integer, a point name, or a local variable.

hcoef1 Heating coefficient. The time, in hours, required to raise the


zone temperature one degree while ignoring external load
factors.
• This value must be entered in fractions of an hour.

hcoef2 Heating retention coefficient. The time, in hours, required to


lower the zone temperature one degree with the heating
equipment off, outside air dampers open, and the outside
temperature 25 degrees lower than the desired zone
temperature for the heating season.
• This value must be entered in fractions of an hour.

hcoef3 Heating transfer coefficient. The time, in hours, required to


raise the zone temperature one degree with outside air
dampers closed and the outside temperature 25 degrees
lower than the desired zone temperature for the heating
season.
• This value must be entered in fractions of an hour.

hcoef4 Heating auto-tune coefficient. The time, in hours, added to or


subtracted from the adjusted time (ast or asp) in the SSTO
command as part of the self-tuning feature.
• This value must be entered in fractions of an hour.

Use
This command defines the thermal characteristics of a zone based
on the season, indoor temperature, outdoor temperature, and a
variety of heating and/or cooling coefficients that are necessary to
calculate optimal start and stop times.

Siemens Building Technologies, Inc. 3-103 3-104 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

STATE (State text command) TABLE (Table of coordinates)


Unitary pre-APOGEE APOGEE BACnet Unitary pre-APOGEE APOGEE BACnet

Ž Ž Ž Ž Ž Ž

Syntax Syntax
STATE(statetext,pt1...pt15) TABLE(input,output,x1,y1,...,x7,y7)
pt1 Points that are commanded to a particular state. input Point name of the input (x) variable.
through • This parameter can be a local variable or virtual LAI
pt15 point type.

STATE(@pri,statetext,pt1...pt14) output Point name of the output (y) variable.


• This parameter can be a local variable or virtual LAO
@pri Defines a specific point priority. point type.

statetext State text that can be found in the associated state text table. x1,y1 Pairs of coordinates that define the x-y relationship. y1 is the
through value of the output when the input equals x1; y2 is the value
pt1 Points that are commanded to a particular state. x7,y7 of the output when the input is x2, etc.
through • The coordinates can be integers or decimals.
pt14
Use
Use This command allows you to define a general function of two
Commands points using a state text value. variables by specifying pairs of coordinates (x,y).

The TABLE command makes a straight line interpolation for the


• A maximum of 15 points can be changed with one STATE
output (y) when the input is between a pair of x values.
command.

• A maximum of 14 points can be changed with one • The x points must be entered in ascending order (that is x3 must
STATE(@pri,statetext,…) command. be larger than x2, etc.).

• For inputs lower than x1, the output will always equal y1.
Example
500 STATE(NIGHT,TEC1,TEC2,TEC3,TEC4) • For inputs larger than the last x used, the output will equal the
last y value entered.

Siemens Building Technologies, Inc. 3-105 3-106 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

Example TIMAVG (Average over time)


500 C
502 C TABLE COMMAND INFORMATION: Unitary pre-APOGEE APOGEE BACnet
504 C Ž Ž Ž
506 C OATEMP (X) HWSP (Y)
508 C ---------- ----------
510 C 0 DEG F 180 DEG F Syntax
512 C 60 DEG F 100 DEG F
TIMAVG(result,st,samples,input)
514 C
520 TABLE(OATEMP,HWSP,0,180,60,100) result A point name used to store the result of the average value.
• This parameter can be a point name or a local
variable.
The hot water setpoint will remain at 180°F when the outside
temperature is below 0°F. The hot water setpoint will remain at 100° st Sample time. This is the time, in seconds, between each
F when the outside temperature is above 60°F. sample.
• This parameter can be an integer, a point name, or a
local variable.
Notes
samples Number of samples to be used to calculate the average.
TABLE statements can be cascaded by overlapping x-y pairs using
• This must be an integer between 1 and 10.
virtual points.
input Point name whose average value is to be calculated.
Do not use resident points in either the SET or the TABLE
• This parameter can be an LAI or LAO point or a local
command. With both the SET and TABLE commands, the following variable.
should be used for resident points:
Virtual point = Resident point Use
This command is used to find an average value over time. You
decide how often the values should be taken (sample time) and the
number of values to be taken.

The average is always over the most recent sample count and all
previous values are discarded.

Example
In the following statement, RMAVG would change every 600
seconds (assuming RMTEMP is changing frequently). The average
value (RMAVG) will also be updated every sample time.

Siemens Building Technologies, Inc. 3-107 3-108 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

10 C SIX SAMPLES WILL BE TAKEN TO


20 C CALCULATE THE RMAVG. TOD (Time of day, digital points)
30 C THE INTERVAL BETWEEN EACH SAMPLE
Unitary pre-APOGEE APOGEE BACnet
40 C WILL BE 10 MINUTES. RMTEMP WILL
50 C BE AVERAGED EVERY 60 MINUTES. Ž Ž Ž
60 TIMAVG(RMAVG,600,6,RMTEMP)

Notes Syntax

On a return from power failure, after an ENABLE command, or TOD(mode,recomd,time1,time2,pt1,...,pt12)


during the first execution of PPCL following a database load, the
NOTE: Valid mode values are described in the table following the
TIMAVG command begins executing with one sample. The value of
parameter descriptions.
the result will equal the current value of input.
mode Mode number.
• Valid values are any combination of 1, 2, 4, 8, or 16.
• Mode numbers can be added together to create
customized schedules for the TOD program.
• Mode number 16 should only be used with the
HOLIDA command.
recomd Determines if the points defined will be commanded after a
return from a power failure (fail-safe position). Recomd (re-
command) is sometimes necessary for field panel
warmstarts.
• Valid values are 0 and 1.

0 = Does not re-command pt1 through pt12 on return


from power failure.

1 = Re-commands pt1 through pt12 on return from


power failure.

time1 Time at which an ON command is executed.


• This parameter can be a military time (7:30 p.m. =
19:30), a decimal time (7:30 p.m. = 19.50), a logical
point name, or a local variable.

time2 Time at which an OFF command is executed.


• This parameter can be a military time (7:30 p.m. =
19:30), a decimal time (7:30 p.m. = 19.50), a logical
point name, or a local variable.

pt1 Point names of digital output points that are commanded ON


through or OFF.
pt12

Siemens Building Technologies, Inc. 3-109 3-110 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

Valid TOD Mode Values. TODMOD (TOD modes)


Mode Schedule Unitary pre-APOGEE APOGEE BACnet
1 Normal schedule
2 Extended schedule Ž Ž Ž
4 Shortened schedule
8 Weekend schedule Syntax
16* Holiday schedule
*Mode number 16 (Holiday) should only be used with the HOLIDA command.
TODMOD(momode,tumode,wemode,thmode,frmode,samode,
sumode)
Use NOTE: Valid mode values are described in the table following the
This command changes digital output point ON and OFF based on parameter descriptions.
the day of the week and the time of day. If the mode number in the momode Mode number for Monday.
TOD command matches the mode number in the TODMOD • Valid values are 1, 2, 4, or 8.
command, then TOD commands the particular output points ON and
OFF at the specified times. tumode Mode number for Tuesday.
• Valid values are 1, 2, 4, or 8.
Example
wemode Mode number for Wednesday.
10 TOD(1,1,17:00,07:00,OLITE1,OLITE2)
• Valid values are 1, 2, 4, or 8.
The command time can also be a relative time point that is assigned
a value of time. When you calculate a value of time to be used in a thmode Mode number for Thursday.
TOD command and assign it to the relative time point, make sure • Valid values are 1, 2, 4, or 8.
that the calculated time is greater later than or equal to the current
frmode Mode number for Friday.
time. The TOD command will not execute properly if the relative time
• Valid values are 1, 2, 4, or 8.
point is commanded to a time that precedes or is equal to the current
time. samode Mode number for Saturday.
• Valid values are 1, 2, 4, or 8.
See also
sumode Mode number for Sunday.
HOLIDAY, SSTO, TODMOD, TODSET • Valid values are 1, 2, 4, or 8.

Valid TODMOD Mode Values.


Mode Schedule
1 Normal schedule
2 Extended schedule
4 Shortened schedule
8 Weekend schedule
16* Holiday schedule
*Mode number 16 (Holiday) should only be used with the HOLIDA command.

Siemens Building Technologies, Inc. 3-111 3-112 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

Use
TODSET (Time of day, analog points)
This command defines specific modes (normal, weekend, etc.) for
each day of the week. Days that have the same schedule are Unitary pre-APOGEE APOGEE BACnet
assigned the same mode. Ž Ž Ž
The mode assigned to a specific day of the week is used in
conjunction with the TOD and TODSET commands to command Syntax
points on that day.
TODSET(mode,recomd,time1,val1,time2,val2,pt1,..., pt10)
Example NOTE: Valid mode values are described in the table following the
110 TODMOD(1,1,1,1,2,4,8) parameter descriptions.
In this example, Monday through Thursday are assigned to a normal mode Mode number.
schedule, Friday is assigned to an extended schedule, Saturday is • Valid values are 1, 2, 4, 8, or 16.
assigned to the shortened schedule, and Sunday is assigned to the • Mode numbers can be added together to create
weekend schedule. customized schedules for the TOD program.
• Mode number 16 should only be used with the
Notes HOLIDA command.

• The HOLIDA and TODMOD commands must precede any TOD recomd Determines if the points defined will be commanded after a
or TODSET commands in order for the program to operate return from a power failure (fail-safe position). Recomd (re-
correctly. command) is sometimes necessary for field panel
warmstarts.
• A HOLIDA or TODMOD command in a field panel will only affect • Valid values are 0 and 1.
TOD and TODSET commands in that field panel.
0 = Does not re-command pt1 through pt10 on return
• When a holiday date occurs in a HOLIDA command, the system from power failure.
sets the TODMOD mode number for that day to 16.
1 = Re-commands pt1 through pt10 on return from
power failure.
See also
time1 Time at which the output points (pt1 through pt10) are
HOLIDA, SSTO, TOD, TODSET commanded to val1.
• This parameter can be a military time (7:30 p.m. =
19:30), a decimal time (7:30 p.m. = 19.50), a logical
point name, or a local variable.

val1 Analog value which the output points (pt1 through pt10)
assume at time1.
• This parameter can be a military time (7:30 p.m. =
19:30), a decimal time (7:30 p.m. = 19.50), a logical
point name, or a local variable.

Siemens Building Technologies, Inc. 3-113 3-114 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

time2 Time at which the output points (pt1 through pt10) are WAIT (Wait time)
commanded to val2.
• This parameter can be a military time (7:30 p.m. = Unitary pre-APOGEE APOGEE BACnet
19:30), a decimal time (7:30 p.m. = 19.50), a logical
point name, or a local variable.
Ž Ž Ž Ž

val2 Analog value which the output points (pt1 through pt10) Syntax
assume at time2.
• This parameter can be a military time (7:30 p.m. = WAIT(time,pt1,pt2,mode)
19:30), a decimal time (7:30 p.m. = 19.50), a logical
point name, or a local variable. NOTE: Valid mode values are described in the table following the
parameter descriptions.
pt1 Names of analog output points that are commanded to a
through value. time Time delay in seconds.
pt10 • This parameter can be entered an integer (1 to 32,767),
a point name, or a local variable.

Valid TODSET Mode Values. pt1 Point name of a digital trigger point.
• This parameter can be a LDI, LDO, L2SL, L2SP,
Mode Schedule LOOAL, or LOOAP point.
1 Normal schedule • Local variables can also be used.
2 Extended schedule
4 Shortened schedule pt2 Point name of digital point to be commanded.
8 Weekend schedule • This parameter can be an LDI, LDO, L2SL, L2SP,
16* Holiday schedule LOOAL, or LOOAP point.
*Mode number 16 (Holiday) should only be used with the HOLIDA command.
• Local variables can also be used.

mode Defines the value to which pt2 should be commanded based on


Use the value of pt1.
• Valid values are 11, 10, 01, and 00.
This command is the counterpart of the TOD command for analog
points. It commands analog output points based on the day of the
week and the time of day. Valid WAIT Modes.

If the mode number in the TODSET command matches the mode Trigger Point After Wait (time)
Mode
(pt1) Action Seconds
number in the TODMOD command, then TODSET will command the
particular output points to val1 and val2 at the specified times. 11 Turns ON pt2 turns ON

Example 10 Turns ON pt2 turns OFF


550 TODSET(1,1,9:00,72.0,17:00,55.0, SPTEMP) 01 Turns OFF pt2 turns ON
00 Turns OFF pt2 turns OFF
See also
HOLIDAY, TOD, TODMOD

Siemens Building Technologies, Inc. 3-115 3-116 Siemens Building Technologies, Inc.
Command Syntax APOGEE PPCL User’s Manual

Use
The WAIT command turns a point ON or OFF based on the trigger
point switching ON or OFF. Selection of trigger/result action is based
on the mode you enter.

Example
70 C WHEN CNPUMP IS TURNED ON,
72 C THE FIELD PANEL WAITS 60 SECONDS
74 C BEFORE TURNING CHPUMP ON.
75 WAIT(60,CNPUMP,CHPUMP,11)
76 ON(CNPUMP)

Notes
• The position of the WAIT statement in a program affects its
operation. The WAIT statement only works if it sees a change of
value (COV) through both states for the trigger point.

• On a return from power failure or when the WAIT command is


enabled, the trigger point must be toggled before the command
executes regardless of the current state of either pt1 or pt2.

• The command to pt2 is only issued once during the normal


operation of the program until triggered again.

Siemens Building Technologies, Inc. 3-117 3-118 Siemens Building Technologies, Inc.
APOGEE PPCL User’s Manual

command
Glossary Instruction evaluated by the computer.

The glossary contains programming terminology you will encounter comment line
in this manual. Information that is written into the program but is not interpreted as a
program command. The compiler skips over the comment line during
APOGEE firmware compilation. Comment lines allow you to enter text information
describing the functionality of a specific section of code. Comment
Firmware used in APOGEE field panels; Firmware Revision 2.x and lines are especially helpful for describing subroutines and areas of
later. program code that are difficult to understand.

argument condition
Type of variable whose value is not a direct function of another Result of a comparison between two values.
variable. Arguments can represent the location of a number in a
mathematical operation, or the number with which a function works
to produce its result. debugging
Process by which the logic of the program is tested for errors. A
arithmetic function program is said to have “bugs” when it fails to function properly.

Function that performs mathematical calculations on a value


(number). When used in PPCL, the value derived from the device
calculation is usually assigned to a point name for future reference. In PPCL, a device represents any field panel or equipment controller
that can execute PPCL statements.
arithmetic operator
Mathematically related functions that are performed on two or more execute
operands (numbers). When used in PPCL, the value of the To carry out the instruction of an expression or program.
calculation is determined and assigned to a point name or local
variable for future reference.
expression
at (@) priority indicators Statement that describes a set of variables, constants, or values
combined with arithmetic, logical, or relational operators.
Indicators that are used to test if a point is at a specific priority, or to
command a point to a specific priority. A maximum of 16 parameters
can be used in one PPCL statement. When using a @ Priority firmware
indicator with PPCL statements, the priority level you define in that Portion of software used in a controller that is stored in non-volatile
statement occupies one of the parameters. memory. See APOGEE, pre-APOGEE, or Unitary firmware.

Siemens Building Technologies, Inc. Glossary-1 Glossary-2 Siemens Building Technologies, Inc.
Glossary APOGEE PPCL User’s Manual

integer pseudocode
Whole number (non-decimal number). Non-syntactical description of program logic.

line relational operators


Statement of program code assigned to a unique line number. Relational operators compare two values. The result of the
comparison is called a condition, and determines the type of action
that should be taken.
local variable
Points in a program of a field panel that can be used in place of user-
resident point
defined points to store temporary values ($LOC1 through $LOC15).
Predefined logical point that permanently resides in the PPCL
program in the field panel.
logical operators
Operator that compares two conditions. The result of a comparison
routing
between the two conditions is called a condition. If the result of the
condition is true, then a specific action is taken. If the result is false, Method for altering the flow of a program to transfer control to a line
then an alternative action is performed. of the program other than the next sequential line number.

modular programming special function


Style of programming that logical organizes code into common PPCL functions such as Alarm Priority (ALMPRI) that are used to
functions, such as operational modes. access a specific value that is unique to a point. The value of the
point can then be tested or assigned to other points. Since special
functions are maintained by the system, they cannot be manually
order of precedence
commanded to a different value. Special functions cannot be used
Order in which operators (mathematical, relational, logical, and over the network.
special function) are evaluated in a command statement. Operators
that have a higher precedence are evaluated before operators that
statement
have a lower precedence. If all the operators in the statement have
equivalent precedence levels, then the operators are evaluated from Collection of instructions to the computer in order to perform an
left to right. operation. A statement can also be considered a line of PPCL code.

pre-APOGEE firmware subroutine


Firmware Revision 1.5 and earlier, and Revision 12.x and earlier. Portion of program code referenced repeatedly through one pass of
the program.
program
Collection of instructions combined in a logical order to accomplish a
specific task.
Siemens Building Technologies, Inc. Glossary-3 Glossary-4 Siemens Building Technologies, Inc.
Glossary APOGEE PPCL User’s Manual

Unitary firmware
Firmware for Unitary Controllers that uses a subset of the PPCL
commands found in pre-APOGEE firmware.

Siemens Building Technologies, Inc. Glossary-5 Glossary-6 Siemens Building Technologies, Inc.
APOGEE PPCL User’s Manual

Appendix A—PPCL Reserved Word ATN AUTO


List C (comment) COM
COS CRTIME
Appendix A contains the PPCL Reserved Word List. The words, DAY DAYMOD
letters, and groups of letters placed on this list are used by the PPCL DAYOFM DBSWIT
compiler. If you use any of the entries on the word list in a way other
than the way they are designed (for example, defining a reserved DC DCR
word as a point name), your PPCL program will not operate properly. DEACT DEAD
The following predefined points permanently reside in the field DEFINE DISABL
panel’s point database. These names are reserved for specific
functions and should not be used as point names DISALM DISCOV

$ARG1 through $ARG15 $BATT DPHONE ELSE

$LOC1 through $LOC15 $PDL EMAUTO EMER

.AND. .EQ. EMFAST EMOFF

.GE. .GT. EMON EMSET

.LE. .LT. EMSLOW ENABLE

.NAND. .NE. ENALM ENCOV

.OR. .ROOT. EPHONE EQ

.XOR. @EMER EQUAL EXP

@NONE @OPER FAILED FAST

@PDL @SMOKE GE GOSUB

ACT ALARM GOTO GT

ALMACK ALMCNT HAND HLIMIT

ALMCT2 ALMPRI HOLIDA IF

AND ARG1 through ARG15 INITTO LE


LINK LLIMIT
LOC1 through LOC15 LOCAL

Siemens Building Technologies, Inc. A-1 A-2 Siemens Building Technologies, Inc.
Appendix A—PPCL Reserved Word List APOGEE PPCL User’s Manual

LOG LOW TIME TOD


LOOP LT TODMOD TODSET
MAX MIN TOTAL WAIT
MONTH NAND XOR
NE NGTMOD
NIGHT NODE1 through NODE99
NONE NOR
NORMAL OFF
OIP OK
ON ONPWRT
OPER OR
PDL PDLDAT
PDLDPG PDLMTR
PDLSET PRFON
RELEAS RETURN
ROOT SAMPLE
SECND1 through SECNDS
SECND7
SET SIN
SLOW SMOKE
SQRT SSTO
SSTOCO STATE
TABLE TAN
THEN TIMAVG

Siemens Building Technologies, Inc. A-3 A-4 Siemens Building Technologies, Inc.
APOGEE PPCL User’s Manual

alarm
Index acknowledge (point status indicator)............................................... 1-83
commands
ALARM......................................................................................... 3-24

$ DISALM........................................................................................ 3-36

$ARG1 through $ARG15 (local variable)............................................ 1-61 ENALM......................................................................................... 3-46

$BATT (resident point) ........................................................................ 1-49 HLIMIT ......................................................................................... 3-58

$LOC1 through $LOC15 (local variable) ............................................ 1-63 LLIMIT .......................................................................................... 3-64

$PDL (resident point) .......................................................................... 1-56 NORMAL...................................................................................... 3-72


count (resident point)....................................................................... 1-47
@ count 2 (resident point).................................................................... 1-48
@EMER (priority status indicator)....................................................... 1-72 priority (special function) ................................................................. 1-39
@NONE (PPCL, priority status indicator) ........................................... 1-73
ALARM
@OPER (priority status indicator)....................................................... 1-74 command......................................................................................... 3-24
@PDL (priority status indicator ........................................................... 1-75 point status indicator........................................................................ 1-82

@SMOKE (priority status indicator) .................................................... 1-76 ALMACK (point status indicator)......................................................... 1-83
ALMCNT (resident point) .................................................................... 1-47
A
ALMCT2 (resident point) ..................................................................... 1-48
abbreviating point names .................................................................... 3-34
ALMPRI (special function) .................................................................. 1-39
ACT (command).....................................................................................3-4
AND (logical operator)......................................................................... 1-18
activate/deactivate PPCL lines
ACT.....................................................................................................3-4 antilog, natural (arithmetic function).................................................... 1-32
DEACT............................................................................................. 3-33 APOGEE firmware
DISABL ............................................................................................ 3-35 commanding points to a priority ...................................................... 1-68
ENABLE........................................................................................... 3-45 defining a meter in a PDL command ............................................... 3-82
defining a meter in a PDLMTR command ....................................... 3-89
adaptive control............................................................................ 3-5, 3-16
dialing out to a modem .................................................................... 3-76
ADAPTM (command) .............................................................................3-5 maximum number of characters per line............................................1-4
ADAPTS (command)........................................................................... 3-16 point priority ..................................................................................... 1-64
addition (arithmetic operator) .............................................................. 1-23 point status indicators...................................................................... 1-80
RELEAS(@prior) ............................................................................. 3-93

arc-tangent (arithmetic function) ......................................................... 1-29


Siemens Building Technologies, Inc Index–1 Index–2 Siemens Building Technologies, Inc.
Index APOGEE PPCL User’s Manual

arithmetic functions ............................................................................. 1-28 ENALM ............................................................................................ 3-46


arc-tangent ...................................................................................... 1-29 maximum number of characters per line............................................1-4
complement ..................................................................................... 1-30 point priority ..................................................................................... 1-64
cosine .............................................................................................. 1-31 priority array..................................................................................... 1-66
natural antilog .................................................................................. 1-32 RELEAS(@prior) ............................................................................. 3-93
natural log........................................................................................ 1-33 value of released point .........................................1-72, 1-74, 1-75, 1-76
root................................................................................................... 1-34
battery condition (resident point)......................................................... 1-49
sine .................................................................................................. 1-35
square root ...................................................................................... 1-36 battery status (point status indicator)
almost discharged ........................................................................... 1-87
tangent............................................................................................. 1-37
charged............................................................................................ 1-88
arithmetic operators ............................................................................ 1-22 discharged ....................................................................................... 1-86
addition ............................................................................................ 1-23
assignment (equals) ........................................................................ 1-24 C
division............................................................................................. 1-25
changing
multiplication.................................................................................... 1-26 order of precedence ........................................................................ 1-43
subtraction ....................................................................................... 1-27 point priority ..................................................................................... 3-92
assignment (arithmetic operator) ........................................................ 1-24 closed loop control
at (@) priority status indicators ........................................................... 1-68 ADAPTM.............................................................................................3-5
EMER .............................................................................................. 1-72 ADAPTS .......................................................................................... 3-16
OPER............................................................................................... 1-74 LOOP............................................................................................... 3-66
PDL.................................................................................................. 1-75
COM (arithmetic function) ................................................................... 1-30
PPCL @NONE ................................................................................ 1-73
SMOKE............................................................................................ 1-76 commanding points to a priority .......................................................... 1-68
comment lines ................................................................................... 1-105
ATN (arithmetic function) .................................................................... 1-29
communications link (resident point)................................................... 1-53
AUTO
command......................................................................................... 3-25 compatibility bar ...................................................................................... XI
point status indicator........................................................................ 1-85 complement (arithmetic function)........................................................ 1-30
conditional control
B IF/THEN........................................................................................... 3-61
BACnet firmware IF/THEN/ELSE ................................................................................ 3-61
@NONE status ................................................................................ 1-73
converting a sequence of operation to program code ........................ 1-98
ALMACK .......................................................................................... 1-84
ALMPRI values................................................................................ 1-39 COS (arithmetic function).................................................................... 1-31
DISALM ........................................................................................... 3-36
Siemens Building Technologies, Inc. Index–3 Index–4 Siemens Building Technologies, Inc.
Index APOGEE PPCL User’s Manual

cosine (arithmetic function) ................................................................. 1-31 designing a program ......................................................................... 1-107


COV control determining point status ...................................................................... 1-77
DISCOV ........................................................................................... 3-37
dialing out to a modem........................................................................ 3-76
ENCOV ............................................................................................ 3-47
DISABL (command) ............................................................................ 3-35
creating a program ............................................................................ 1-107
DISALM (command)............................................................................ 3-36
CRTIME (resident point) ..................................................................... 1-50
DISCOV (command) ........................................................................... 3-37
current time (resident point) ....................................................... 1-50, 1-59
distributed peak demand limiting (PDL) .................................................2-8
D division (arithmetic operator)............................................................... 1-25
DAY documenting a program .................................................................... 1-105
command......................................................................................... 3-26 decision tables............................................................................... 1-106
resident point ................................................................................... 1-51 external documentation ................................................................. 1-106
internal documentation .................................................................. 1-105
day mode (point status indicator)........................................................ 1-89
pseudocode ................................................................................... 1-107
day of the month (resident point) ........................................................ 1-52
DPHONE (command).......................................................................... 3-38
DAYMOD (point status indicator)........................................................ 1-89
duty cycling
DAYOFM (resident point).................................................................... 1-52
control option ......................................................................................2-2
DBSWIT (command) ........................................................................... 3-27 DC.................................................................................................... 3-29
DC DCR ................................................................................................. 3-31
command......................................................................................... 3-29
control option ......................................................................................2-2 E

DCR economizer
command......................................................................................... 3-31 GOSUB............................................................................................ 3-50
control option ......................................................................................2-2 GOTO .............................................................................................. 3-57
RETURN.......................................................................................... 3-94
DEACT (command)............................................................................. 3-33
EMAUTO (command).......................................................................... 3-39
DEAD (point status indicator).............................................................. 1-86
emergency (priority status indicator)................................................... 1-72
dead band switching (DBSWIT).......................................................... 3-27
emergency control
decimal time (resident point)............................................................... 1-50
EMAUTO ......................................................................................... 3-39
decision logic....................................................................................... 3-61 EMFAST .......................................................................................... 3-40
DEFINE (command)............................................................................ 3-34 EMOFF ............................................................................................ 3-41
defining points in a PPCL program ........................................................1-6 EMON .............................................................................................. 3-42
EMSET ............................................................................................ 3-43
Siemens Building Technologies, Inc. Index–5 Index–6 Siemens Building Technologies, Inc.
Index APOGEE PPCL User’s Manual

EMSLOW......................................................................................... 3-44 syntax page .......................................................................................... X


truth tables.......................................................................................... XII
EMFAST (command) .......................................................................... 3-40
EMOFF (command) ............................................................................ 3-41 exclusive or (logical operator) ............................................................. 1-21

EMON (command) .............................................................................. 3-42 EXP (arithmetic function) .................................................................... 1-32

EMSET (command)............................................................................. 3-43 extending program line length................................................................1-4

EMSLOW (command) ......................................................................... 3-44 F


ENABLE (command)........................................................................... 3-45 FAILED (point status indicator) ........................................................... 1-90
enable COV......................................................................................... 3-47 FAST (command)................................................................................ 3-49
enable/disable telephone ID numbers ....................................... 3-38, 3-48 FAST (point status indicator) .............................................................. 1-91
ENALM (command)............................................................................. 3-46 firmware types......................................................................................... XI
ENCOV (command) ............................................................................ 3-47
G
energy conservation
DC.................................................................................................... 3-29 GE (relational operator)....................................................................... 1-12
DCR ................................................................................................. 3-31 global storage variable ........................................................................ 1-63
PDL.................................................................................................. 3-80 GOSUB
PDLDAT .......................................................................................... 3-83 command......................................................................................... 3-50
PDLDPG .......................................................................................... 3-85 program methodology ................................................................... 1-102
PDLMTR .......................................................................................... 3-87 used with $ARGn............................................................................. 1-61
PDLSET........................................................................................... 3-90
GOTO
enthalpy............................................................................................... 3-57 command......................................................................................... 3-57
guidelines ...................................................................................... 1-102
enthalpy optimization
GOSUB............................................................................................ 3-50 greater than (relational operator) ........................................................ 1-13
RETURN.......................................................................................... 3-94
greater than or equal to (relational operator) ...................................... 1-12
EPHONE (command).......................................................................... 3-48 GT (relational operator)....................................................................... 1-13
EQ (relational operator)....................................................................... 1-11
H
equal to (relational operator)............................................................... 1-11
HAND (point status indicator) ............................................................. 1-92
equals (assignment)............................................................................ 1-24
HMLIMIT (command) .......................................................................... 3-58
example
dialing out to a modem .................................................................... 3-76 HOLIDA (command)............................................................................ 3-59
duty cycling.........................................................................................2-2

Siemens Building Technologies, Inc. Index–7 Index–8 Siemens Building Technologies, Inc.
Index APOGEE PPCL User’s Manual

I maximum number of characters


per comment line ................................................................................1-5
IF/THEN .............................................................................................. 3-61
per program line .................................................................................1-4
IF/THEN/ELSE .................................................................................... 3-61
military time (resident point) ................................................................ 1-59
INITTO (command) ............................................................................. 3-63
MIN (command) .................................................................................. 3-70
L
modular programming ......................................................................... 1-99
LE (relational operator) ....................................................................... 1-14
module................................................................................................. 1-99
less than (relational operator) ............................................................. 1-15
monitoring point status ........................................................................ 1-77
less than or equal to (relational operator) ........................................... 1-14
MONTH (resident point) ...................................................................... 1-54
LINK (resident point) ........................................................................... 1-53
multiple programs vs. subroutines .................................................... 1-103
LLIMIT (command).............................................................................. 3-64
multiplication (arithmetic operator)...................................................... 1-26
LOCAL (command) ............................................................................. 3-65
N
local variables ............................................................................ 1-60, 3-65
$ARGn ............................................................................................. 1-61 naming a program ..................................................................................1-7
$LOCn ............................................................................................. 1-63 naming points, rules ...............................................................................1-6
global storage .................................................................................. 1-63
NAND (logical operator) ...................................................................... 1-19
subroutines ...................................................................................... 1-61
NE (relational operator)....................................................................... 1-16
LOG (arithmetic function) .................................................................... 1-33
nested subroutines.............................................................................. 3-54
logical operators.................................................................................. 1-17
NGTMOD (point status indicator)........................................................ 1-93
AND ................................................................................................. 1-18
conditions ........................................................................................ 1-17 NIGHT (command).............................................................................. 3-71
exclusive or...................................................................................... 1-21 night mode (point status indicator)...................................................... 1-93
not and............................................................................................. 1-19 node number (resident point).............................................................. 1-55
OR ................................................................................................... 1-20
NODEn (resident points) ..................................................................... 1-55
LOOP (command) ............................................................................... 3-66 NORMAL (command).......................................................................... 3-72
LOW (point status indicator) ............................................................... 1-87 not and (logical operator) .................................................................... 1-19
LT (relational operator)........................................................................ 1-15 not equal to (relational operator)......................................................... 1-16

M notepad with comment lines ..................................................................1-5

manual override (point status indicator).............................................. 1-92


MAX (command) ................................................................................. 3-69

Siemens Building Technologies, Inc. Index–9 Index–10 Siemens Building Technologies, Inc.
Index APOGEE PPCL User’s Manual

O P
Occupied mode (OCC) ................................................................See DAY PDL
command......................................................................................... 3-80
OFF
command......................................................................................... 3-73 control option ......................................................................................2-6
point status indicator........................................................................ 1-94 distributed peak demand limiting........................................................2-8
monitor (resident point) ................................................................... 1-56
OIP (command)................................................................................... 3-75
target peak demand limiting (TPDL)...................................................2-7
dialing out to a modem .................................................................... 3-76
PDLDAT (command)........................................................................... 3-83
OK (point status indicator) .................................................................. 1-88
PDLDPG (command) .......................................................................... 3-85
ON
command......................................................................................... 3-78 PDLMTR (command) .......................................................................... 3-87
point status indicator........................................................................ 1-95 PDLSET (command) ........................................................................... 3-90
ONPWRT (command) ......................................................................... 3-79 peak demand limiting
control option ......................................................................................2-6
operator (priority status indicator) ....................................................... 1-74
PDL.................................................................................................. 3-80
Operator Interface Program (OIP) ...................................................... 3-75
PDLDAT .......................................................................................... 3-83
optimizing system performance PDLDPG .......................................................................................... 3-85
DC.................................................................................................... 3-29
PDLMTR .......................................................................................... 3-87
DCR ................................................................................................. 3-31
PDLSET........................................................................................... 3-90
GOSUB............................................................................................ 3-50
priority status indicator .................................................................... 1-75
GOTO .............................................................................................. 3-57
PDL.................................................................................................. 3-80 point command
AUTO............................................................................................... 3-25
PDLDAT .......................................................................................... 3-83
DAY ................................................................................................. 3-26
PDLDPG .......................................................................................... 3-85
FAST................................................................................................ 3-49
PDLMTR .......................................................................................... 3-87
NIGHT.............................................................................................. 3-71
PDLSET........................................................................................... 3-90
OFF.................................................................................................. 3-73
RETURN.......................................................................................... 3-94
ON ................................................................................................... 3-78
SSTO ............................................................................................... 3-99
SET.................................................................................................. 3-96
SSTOCO ....................................................................................... 3-102
SLOW .............................................................................................. 3-98
OR (logical operator)........................................................................... 1-20 STATE ........................................................................................... 3-105
order of precedence ............................................................................ 1-42
point control
changing with parentheses.............................................................. 1-43
ALARM ............................................................................................ 3-24
dead band switching........................................................................ 3-27
DISALM ........................................................................................... 3-36
Siemens Building Technologies, Inc. Index–11 Index–12 Siemens Building Technologies, Inc.
Index APOGEE PPCL User’s Manual

ENALM ............................................................................................ 3-46 PPCL program


HLIMIT ............................................................................................. 3-58 @NONE (priority status indicator)................................................... 1-73
INITTO ............................................................................................. 3-63 assigning line numbers............................................................... 1-4, 1-8
LLIMIT.............................................................................................. 3-64 control after power return ................................................................ 3-79
MAX ................................................................................................. 3-69 documentation ............................................................................... 1-105
MIN .................................................................................................. 3-70 execution ............................................................................................1-4
NORMAL ......................................................................................... 3-72 guidelines ...........................................................................................1-8
TIMAVG ......................................................................................... 3-108 introduction to PPCL...........................................................................1-3
WAIT.............................................................................................. 3-116 maximum comment line length...........................................................1-5
maximum number of characters per line............................................1-4
point names
maximum number of lines permitted ..................................................1-4
abbreviating ..................................................................................... 3-34
naming ................................................................................................1-7
rules ....................................................................................................1-6
point definitions...................................................................................1-6
structured......................................................................................... 3-34
point priorities .................................................................................. 1-65
point priority......................................................................................... 1-64 rules for creating.................................................................................1-4
APOGEE and pre-APOGEE firmware............................................. 1-64
testing ............................................................................................ 1-104
BACnet firmware ............................................................................. 1-66
transferring control to another line................................................. 1-102
point status indicators ......................................................................... 1-77
pre-APOGEE firmware
ALARM ............................................................................................ 1-82
defining a meter in a PDL command ............................................... 3-82
ALMACK .......................................................................................... 1-83
defining a meter in a PDLMTR command ....................................... 3-89
AUTO............................................................................................... 1-85
dialing out to a modem .................................................................... 3-76
DAYMOD ......................................................................................... 1-89
maximum number of characters per line............................................1-5
DEAD............................................................................................... 1-86
OIP command.................................................................................. 3-75
FAILED ............................................................................................ 1-90
point priority ..................................................................................... 1-64
FAST................................................................................................ 1-91
point status indicators...................................................................... 1-80
HAND............................................................................................... 1-92
RELEAS(@prior) ............................................................................. 3-93
LOW................................................................................................. 1-87
releasing point priorities .................................................................. 1-69
NGTMOD......................................................................................... 1-93
OFF.................................................................................................. 1-94 precedence, order of evaluation ......................................................... 1-42
OK.................................................................................................... 1-88 predictor panel .......................................................................................2-8
ON ................................................................................................... 1-95 PRFON (point status indicator) ........................................................... 1-96
PRFON ............................................................................................ 1-96
priority array, BACnet firmware........................................................... 1-66
SLOW .............................................................................................. 1-97
priority status indicators ...................................................................... 1-68
Powers Process Control Language ............................ See PPCL program
program ....................................................................... See PPCL program
Siemens Building Technologies, Inc. Index–13 Index–14 Siemens Building Technologies, Inc.
Index APOGEE PPCL User’s Manual

program control TIME ................................................................................................ 1-59


DEFINE............................................................................................ 3-34
RETURN (command) .......................................................................... 3-94
ONPWRT......................................................................................... 3-79
SAMPLE .......................................................................................... 3-95 ROOT (arithmetic function) ................................................................. 1-34
TABLE ........................................................................................... 3-106
S
proof on (point status indicator) .......................................................... 1-96 SAMPLE (command) .......................................................................... 3-95

Q scheduling
HOLIDA ........................................................................................... 3-59
quotes in programs ................................................................................1-6
TOD ............................................................................................... 3-110
R TODMOD....................................................................................... 3-112
TODSET ........................................................................................ 3-114
relational operators ............................................................................. 1-10
EQ.................................................................................................... 1-11 SECNDn (resident point) .................................................................... 1-58
GE.................................................................................................... 1-12
SECNDS (resident point) .................................................................... 1-57
GT.................................................................................................... 1-13
seconds counter (resident points)....................................................... 1-57
LE .................................................................................................... 1-14
LT..................................................................................................... 1-15 SET (command) .................................................................................. 3-96
NE.................................................................................................... 1-16 SIN (arithmetic function)...................................................................... 1-35

RELEAS (command)........................................................................... 3-92 sine (arithmetic function) ..................................................................... 1-35

release statement................................................................................ 3-92 SLOW


point status indicator........................................................................ 1-97
resident points..................................................................................... 1-46
$BATT.............................................................................................. 1-49 SLOW (command) .............................................................................. 3-98
$PDL................................................................................................ 1-56 SMOKE (priority status indicator)........................................................ 1-76
ALMCNT .......................................................................................... 1-47
solving a programming problem........................................................ 1-107
ALMCT2 .......................................................................................... 1-48
special functions.................................................................................. 1-38
CRTIME ........................................................................................... 1-50
ALMPRI ........................................................................................... 1-39
DAY ................................................................................................. 1-51
limitations......................................................................................... 1-38
DAYOFM ......................................................................................... 1-52
TOTAL ............................................................................................. 1-41
limitations..................................................................... 1-46, 3-97, 3-107
LINK................................................................................................. 1-53 SQRT (arithmetic function) ................................................................. 1-36
MONTH ........................................................................................... 1-54 square root (arithmetic function) ......................................................... 1-36
NODEn ............................................................................................ 1-55 SSTO
SECNDn .......................................................................................... 1-58 command......................................................................................... 3-99
SECNDS.......................................................................................... 1-57 formulas ........................................................................................... 2-13
Siemens Building Technologies, Inc. Index–15 Index–16 Siemens Building Technologies, Inc.
Index APOGEE PPCL User’s Manual

SSTOCO (command)........................................................................ 3-102 subtraction (arithmetic operator) ......................................................... 1-27


start/stop time optimization syntax
SSTO ............................................................................................... 3-99 compatibility bar................................................................................... XI
SSTOCO ....................................................................................... 3-102 notes .................................................................................................. XIII
use ...................................................................................................... XII
Start/Stop Time Optimization (control option) ..................................... 2-10
STATE (command) ........................................................................... 3-105 T
status indicators TABLE (command)............................................................................ 3-106
ALARM ............................................................................................ 1-82
TAN (arithmetic function) .................................................................... 1-37
ALMACK .......................................................................................... 1-83
AUTO............................................................................................... 1-85 tangent (arithmetic function) ............................................................... 1-37
DAYMOD ......................................................................................... 1-89 target peak demand limiting (TPDL) ......................................................2-7
DEAD............................................................................................... 1-86 telephone ID numbers
FAILED ............................................................................................ 1-90 DPHONE ......................................................................................... 3-38
FAST................................................................................................ 1-91 EPHONE ......................................................................................... 3-48
HAND............................................................................................... 1-92
testing a program .............................................................................. 1-104
LOW................................................................................................. 1-87
NGTMOD......................................................................................... 1-93 testing point priorities .......................................................................... 1-68
OFF.................................................................................................. 1-94 TIMAVG (command) ......................................................................... 3-108
OK.................................................................................................... 1-88 TIME (resident point)........................................................................... 1-59
ON ................................................................................................... 1-95 time of day
PRFON ............................................................................................ 1-96 HOLIDA ........................................................................................... 3-59
SLOW .............................................................................................. 1-97 TOD ............................................................................................... 3-110
structured naming convention............................................................. 3-34 TODMOD....................................................................................... 3-112
TODSET ........................................................................................ 3-114
subroutine .................................................................................... 1-8, 1-99
$ARGn ............................................................................................. 1-61 Time of Day
commands ..................................................................................... 1-102 control option ................................................................................... 2-22
GOSUB............................................................................................ 3-50 time-based commands...........................................................................1-9
GOTO .............................................................................................. 3-57
TOD (command) ............................................................................... 3-110
nested .............................................................................................. 3-54
RETURN.......................................................................................... 3-94 TODMOD (command) ....................................................................... 3-112
transferring program control ...............................................................1-4 TODSET (command) ........................................................................ 3-114
using .............................................................................................. 1-100 TOTAL (special function) .................................................................... 1-41
versus multiple programs .............................................................. 1-103 transferring program control (subroutines) ....................................... 1-102
Siemens Building Technologies, Inc. Index–17 Index–18 Siemens Building Technologies, Inc.
Index APOGEE PPCL User’s Manual

truth tables.............................................................................................. XII

U
unitary firmware
point status indicators...................................................................... 1-81

Unoccupied mode (UNOCC) ................................................... See NIGHT


using subroutines .............................................................................. 1-100

V
variables, local .................................................................................... 3-65

W
WAIT (command) .............................................................................. 3-116
writing a program .............................................................................. 1-107

X
XOR (logical operator) ........................................................................ 1-21

Siemens Building Technologies, Inc. Index–19 Index–20 Siemens Building Technologies, Inc.

You might also like