Siemens - PPCL (1) (Process Control Lang)
Siemens - PPCL (1) (Process Control Lang)
Siemens - PPCL (1) (Process Control Lang)
Powers Process
Control Language
(PPCL)
User’s Manual
125-1896 Rev. 5, 10/00
APOGEE PPCL User’s Manual
4 - Syntax............................................................................ 4-1
ACT ...................................................................... 4-2
ALARM ................................................................. 4-3
AUTO ................................................................... 4-4
DAY ...................................................................... 4-5
DBSWIT ............................................................... 4-6
DC ........................................................................ 4-8
DCR.................................................................... 4-11
DEACT ............................................................... 4-13
DEFINE .............................................................. 4-14
DISABL............................................................... 4-15
DISALM .............................................................. 4-16
DISCOV.............................................................. 4-17
DPHONE ............................................................ 4-18
SSTO.................................................................. 4-89
SSTOCO ............................................................ 4-92
STATE................................................................ 4-95
TABLE ................................................................ 4-96
TIMAVG.............................................................. 4-98
TOD.................................................................. 4-102
TODMOD ......................................................... 4-102
TODSET........................................................... 4-104
WAIT ................................................................ 4-107
Introduction to PPCL
Manual Organization
Manual conventions
Table 1-1 provides you with the text conventions
used in this manual. This list should help you
distinguish between the various syntactical items
used in this manual.
Table 1-1. Text Conventions.
Conventions Example Identifies
DISALM
Physical Logical Unitary CM APOGEE
! ! ! !
Syntax DISALM(pt1,...,pt16)
pt1 Names of the points that should have
through alarm reporting disabled.
pt16
Compatibility bar
At the top of each syntax page is a compatibility
bar. This bar identifies if a command can be used
with a specific type of firmware. When that
command is available for a type of firmware, a
symbol is placed under that firmware type's name.
This symbol identifies that the command is
available in all supported revisions of that specific
type of firmware. Figure 1-1 shows the symbol
used for all firmware revisions.
Logical
!
Figure 1-1. "All Revisions"
Logical Firmware Symbol.
Logical
9.2
Figure 1-2. Revisions 9.2 and
Higher Logical Firmware Symbol.
Syntax
There are differences in logical firmware when
compared to physical firmware. In order to
describe the syntax of both firmware types, the
manual uses the following labels accordingly:
• Syntax - Describes the usage and parameters
for the command which applies to all firmware
types.
• Logical syntax - Defines the usage and
parameters for the commands that are only
used in logical firmware.
• Physical syntax - Defines the usage and
parameters for the commands that are only
used in physical firmware.
If you are unsure of the type of firmware running in
a field panel, contact your local Siemens Building
Technologies, Inc. representative.
Use
The Use section describes what function the
command performs. There are also some one-line
examples of program code that allow you to see
how parameters and values are defined.
To help explain conditional and comparison logic,
truth tables are provided. Truth tables define
inputs which are compared in a logical condition to
produce results (outputs). To help you understand
the concept of truth tables, imagine you have a
barrel of apples and oranges. You reach into the
barrel to select two pieces of fruit. To compare the
two fruits you selected, refer to table 1-2.
Table 1-2. Comparing Apples to Oranges.
Notes
The Notes section contains helpful hints that relate
to how the command operates, as well as specific
details that are commonly missed and
subsequently cause errors in a program. If the
command does not contain any notes, there is no
Notes section.
See also
The See also section directs you to other
commands, operators or sections that are related
to the command. If the command does not have
any cross-references, there is no See also
section.
Introduction
PPCL rules
PPCL guidelines
Relational operators
Equal to (.EQ.)
Physical Logical Unitary CM APOGEE
! ! ! ! !
! ! ! !
! ! ! ! !
! ! ! ! !
! ! ! !
! ! ! ! !
Logical operators
And (.AND.)
Physical Logical Unitary CM APOGEE
! ! ! ! !
Example
200 IF (TIME.LT.19:00.AND.TIME.GT.5:00)
THEN ON(LIGHTS)
! ! ! ! !
Example
200 IF (TIME.LE.19:00.NAND.OCC.EQ.OFF) THEN
OFF(LIGHTS)
Or (.OR.)
Physical Logical Unitary CM APOGEE
! ! ! ! !
Example
200 IF (TIME.LT.5:00.OR.TIME.GT.17:00) THEN
ON(LIGHTS)
Exclusive Or (.XOR.)
Physical Logical Unitary CM APOGEE
! ! ! ! !
Example
200 IF (PMP1.EQ.ON.XOR.PMP2.EQ.ON) THEN
NORMAL(PMPALM)
Arithmetic operators
Addition
Physical Logical Unitary CM APOGEE
! ! ! ! !
Assignment
Physical Logical Unitary CM APOGEE
! ! ! ! !
Division
Physical Logical Unitary CM APOGEE
! ! ! ! !
Multiplication
Physical Logical Unitary CM APOGEE
! ! ! ! !
Subtraction
Physical Logical Unitary CM APOGEE
! ! ! ! !
Arithmetic functions
Arc-Tangent (ATN)
Physical Logical Unitary CM APOGEE
9.2 ! !
Complement (COM)
Physical Logical Unitary CM APOGEE
! ! ! ! !
Cosine (COS)
Physical Logical Unitary CM APOGEE
9.2 ! !
! ! ! ! !
! ! ! ! !
Root (.ROOT.)
Physical Logical Unitary CM APOGEE
! ! ! !
Sine (SIN)
Physical Logical Unitary CM APOGEE
9.2 ! !
! ! ! ! !
Tangent (TAN)
Physical Logical Unitary CM APOGEE
9.2 ! !
Special functions
Syntax ALMPRI(pt1)
pt1 A point name for which the current
alarm priority is taken.
Example 2
330 C
332 C THIS LINE ASSIGNS THE ALARM
334 C PRIORITY LEVEL OF RMTEMP TO THE
336 C POINT CALLED TMPPRI.
338 C
340 TMPPRI = ALMPRI(RMTEMP)
! ! ! !
Syntax TOTAL(pt1)
pt1 A point name for which the totalized
value is taken.
Example 2
800 C
801 C THIS LINE ASSIGNS THE TOTALIZED
802 C VALUE OF FAN1 TO THE POINT CALLED
803 C FANRUN.
804 C
810 FANRUN = TOTAL(FAN1)
Order of precedence
Example
The following example will help you understand
how parentheses can change the way the
computer evaluates formulas. This example uses
two levels of precedence (Level 3 - multiplication
and Level 4 - addition/subtraction).
10 - 5 + 2 * 3 = 11
While the solution to this equation is 11, the same
equation would produce a different solution when
parentheses are inserted as follows:
(10 - 5 + 2) * 3 = 21
The following steps will solve this problem:
1. The parentheses is the highest level of
precedence and the expression with the
parentheses is evaluated first. Since all the
operators within the parentheses have the
same precedence, the operators are
evaluated in a left to right manner. The first
step of the problem is evaluated as follows:
(10 - 5 + 2) = 7
After the parentheses in the example have
been evaluated, the problem appears as
follows:
7 * 3 = 21
2. With the parentheses evaluated, the standard
precedence conventions apply. With only one
operation left, the multiplication operator is
evaluated and produces a value of 21.
Resident points
! ! ! !
Syntax ALMCNT
Syntax ALMCT2
! !
Syntax $BATT
Use For field panels that have the ability to monitor the
strength of their backup battery, this resident point
allows you to access that status. The status of
$BATT can be tested for a numeric value. The
status can also be tested by using the backup
battery status indicators.
Testing can be implemented accordingly:
• Test $BATT for a numeric value (0, 50 or100).
If the value of $BATT is equal to 0, then the
battery has discharged and needs to be
replaced. If the value of $BATT is equal to
100, then the battery does not need to be
replaced. A value of 50 means the battery is
about to discharge and should be replaced to
prevent any loss of data.
• To test $BATT using status indicators (OK,
LOW, or DEAD). If $BATT has a status equal
to LOW or DEAD, then the battery has
discharged and needs to be replaced. If
$BATT has a status equal to OK, then the
battery does not need to be replaced.
Example 1
200 IF ($BATT.EQ.0) THEN ALARM(P26BAT)
Example 2
210 IF ($BATT.EQ.DEAD) THEN ALARM(P26BAT)
! ! ! !
Syntax CRTIME
Day (DAY)
Physical Logical Unitary CM APOGEE
! ! ! ! !
Syntax DAY
1 Monday
2 Tuesday
3 Wednesday
4 Thursday
5 Friday
6 Saturday
7 Sunday
Example
300 IF (DAY.EQ.1) THEN TOTRAN = 0
! ! ! !
Syntax DAYOFM
! ! ! ! !
Syntax LINK
Month (MONTH)
Physical Logical Unitary CM APOGEE
! ! ! ! !
Syntax MONTH
Example
950 IF (MONTH.GE.4.AND.MONTH.LE.10) THEN
SEASON = 1 ELSE SEASON = 0
! ! !
Syntax NODEn
n Represents the number of a NODE.
Acceptable node numbers for the
NODE resident point range from 0
through 99.
! ! !
Syntax $PDL
! ! ! !
Syntax SECNDS
! ! ! !
Syntax SECNDn
n The number that describes which
SECNDn point is referenced. Valid
values are 1 through 7.
! ! ! !
Syntax TIME
Local variables
! ! ! !
Syntax $ARGn
n The number that describes what
$ARGn point is referenced. Valid
values are 1 through 15.
! ! ! !
Syntax $LOCn
n The number that describes what
$LOCn point is referenced. Valid
values are 1 through 15.
Example 2
100 $LOC7 = (50/VALUE1+10.0) * 2.0
Emergency (@EMER)
Physical Logical Unitary CM APOGEE
9.2 ! !
Syntax @EMER
PPCL (@NONE)
Physical Logical Unitary CM APOGEE
9.2 ! !
Syntax @NONE
Operator (@OPER)
Physical Logical Unitary CM APOGEE
9.2 ! !
Syntax @OPER
500 ON(@OPER,SFAN)
700 RELEAS(@OPER,SFAN)
Syntax @PDL
Smoke (@SMOKE)
Physical Logical Unitary CM APOGEE
9.2 ! !
Syntax @SMOKE
Alarm (ALARM)
Physical Logical Unitary CM APOGEE
! ! ! !
Auto (AUTO)
Physical Logical Unitary CM APOGEE
! ! !
! !
! !
! !
Failed (FAILED)
Physical Logical Unitary CM APOGEE
! ! !
Fast (FAST)
Physical Logical Unitary CM APOGEE
! ! !
! ! !
Off (OFF)
Physical Logical Unitary CM APOGEE
! ! ! !
On (ON)
Physical Logical Unitary CM APOGEE
! ! ! !
Proof on (PRFON)
Physical Logical Unitary CM APOGEE
! ! ! !
Slow (SLOW)
Physical Logical Unitary CM APOGEE
! ! !
Structured programming
Modular programming
Modular programming is a style of programming
which logically organizes code into common
functions. This style of programming can be
applied to a single program, or to multiple
programs running on the network or in one field
panel. The objectives of modular programming are
as follows:
• To reduce program code. If you use a
section of code many times during one pass
of the program, that code can be defined as a
subroutine. When you need to access that
routine, you transfer control to that part of the
program.
1 Call No No No No
Using GOTO
The GOTO command unconditionally transfers
control to another location in the program. A
GOTO command is commonly used to skip over
subroutines and blocks of code.
NOTE: Do not use the GOTO command to
transfer program control to and from subroutines
or to jump back in a program without first
executing the last line of the program.
Using GOSUB
The GOSUB command transfers control to a
subroutine. Variable arguments can be passed to
the subroutine from the mainline code using
$ARG local variables (if applicable). When the
subroutine processing is complete, the program
control is transferred back to the GOSUB
statement. The values in the $ARG points replace
their respective point values. The field panel then
continues processing at the next sequential line
number.
Program testing
To ensure that a program is working properly, it
should be tested. Testing program code verifies
that the program works properly under normal
operating conditions. Testing also allows you to
check the durability of the program by providing a
wide variety of operating conditions that the
program must evaluate.
Structured programming practices allow program
testing to be more complete and less time
consuming. Tests can be developed so that
individual modules as well as the complete
program are tested. Programs with a modular
design are easier to test because the number of
variables and lines of code that must be tested are
small.
When a program is tested, the data used should
adequately test all conditions that the program
may encounter. Test conditions not only include
testing the range at which an input responds, but
also testing values outside the range of response.
If an input is defined to accept values from 50°F to
70°F, use an input value of 40°F to find out how
the system responds. If the program turns a point
ON, find out what happens when you turn it OFF.
Program documentation
After you have written and tested your program,
the final step in completing a structured program
is documentation. When using a structured
method of programming, documentation of that
program becomes an easier task. Programs
should have some type of documentation written
about their functions and the equipment they
control.
The following sections describe the methods for
documenting programs. One or more of these
methods can be used to document operation of
the program. In addition to documenting the
program, these methods can also be used as
planning tools when designing your PPCL
program.
Internal documentation
Internal documentation refers to information
written into the program lines. To prevent that
information from being interpreted as program
commands, a comment line is used. Comment
lines allow you to enter text information describing
the functionality of a specific section of code.
Comment lines are especially helpful for
describing subroutines and areas of program code
that are difficult to understand.
External documentation
External documentation refers to physical control
diagrams, layouts, and information written about
the program. This information can be used as a
reference to learn about the functions of the
control system. This section describes two of the
more common methods of external
documentation.
Decision tables - Decision tables are similar to
truth tables. Like truth tables, a decision table
defines objects which are compared to each other
and produce a result. The objects for a decision
table are the equipment and modes of operation.
A result is determined by the comparison between
a piece of equipment and a mode of operation.
The result of this comparison is considered to be
the status of that piece of equipment during a
specific mode of operation. Decision tables are
useful because they provide a visual
representation of how the specific equipment
interacts with other equipment during each mode
of operation.
Table 2-8 provides an example of a decision table
that defines six pieces of equipment and four
modes of operation.
Introduction
Example
To help you understand how PDL works, refer to
the following example.
PDL is monitoring an electrical meter that supplies
power to three air handling units and some low
voltage equipment. Two of the air handlers are
currently ON while the third air handler is about to
be turned ON. When all three air handlers and the
Point priority
Physical firmware
Physical firmware PPCL has only two priorities:
NONE and EMER. All points are considered to be
at NONE priority unless their priorities are
changed with the EMON/EMOFF commands. The
EMON command turns the point ON and can
change its priority to EMER. The EMOFF
command turns the point OFF and can change its
priority to NONE.
This section discusses using the NONE and
EMER priorities. It does not address Insight for
minicomputers priorities such as the PDL priority.
Refer to the Insight for Minicomputers User's
Documentation Set (125-1910) for more
information about priorities and how they interact
with PPCL programs running in the field panel.
Logical firmware
The logical firmware revision you have determines
the functionality of your system. Your firmware
may not support the concepts presented in this
section.
120 OFF(SFAN,RFAN)
120 OFF(@OPER,SFAN,RFAN)
160 RELEAS(FAN1,FAN2)
300 RELEAS(@EMER,FAN1,FAN2)
Unitary firmware
Unitary firmware does not support the use of
priority indicators and manual priority
modifications.
Point status
Value Meaning
0 OFF
1 ON
LAI AI
LAO AO
LDI DI
LDO DO
LFSSL DO DO DI
(OFF/FAST) (OFF/SLOW) (PROOF)
LFSSP DO DO DO DI
(OFF) (FAST) (SLOW) (PROOF)
LOOAL DO DO DI
(ON/OFF) (AUTO) (PROOF)
LOOAP DO DO DO DI
(ON) (OFF) (AUTO) (PROOF)
LPACI DI
(COUNT)
L2SL DO DI
(ON/OFF) (PROOF)
L2SP DO DO DI
(ON) (OFF) (PROOF)
Example
To explain testing a point for a status, an LFSSL
point type is used in this example. The LFSSL
point is similar to an OFF/SLOW/FAST switch that
could be used to control a fan. When you
command LFSSL point to FAST, it has the same
effect as turning the control switch on a fan to
FAST. The actual process that occurs is
somewhat more complex than turning a switch.
FANDO1 Point 1
FANDO2 Point 2
FANDI1 Point 3
CAUTION:
When using this method of point control, it is very
important that only one digital output point be ON
at any time. Commanding multiple digital output
points ON will cause serious damage to that piece
of HVAC equipment.
550 ON(FANDO1)
550 ON(FAN#1)
OFF/FAST address 0 0 1
switch (OFF) (OFF) (ON)
OFF/Slow address 0 1 0
switch (OFF) (ON) (OFF)
Pulsed points
When commanding pulsed points in physical
firmware, there are some precautions you should
program into your code. Since pulsed points can
be either ON or OFF, they are sometimes
commanded to the wrong position because their
status is not checked. If pulsed points are
commanded incorrectly, the relays in the point will
produce a chattering effect. A chattering relay
causes the point to wear out quicker and degrade
the response of the system.
Commanding pulsed points, using the following
code, will help your system run more efficiently.
This methodology for commanding a pulsed point
only works with physical firmware.
100 C
101 C THIS CODE PROVIDES A TEST FOR
102 C COMMANDING PULSED POINTS. TYPES CAN
103 C BE A L2SP, LOOAP, OR LFSSP POINT.
104 C ANY POINTS STARTING WITH "PUL" ARE
105 C PULSED POINTS. VLDO IS A POINT
106 C FLAG.
107 C
119 C CHECK IF THE PULSE POINTS ARE ON
120 IF (VLDO.EQ.1) THEN GOTO 140
129 C TURN ON PULSE FLAG
130 ON(PUL1#1,PUL2#1,PUL3#1,VLDO)
140 ...
159 C CHECK IF PULSE POINTS ARE OFF
160 IF (VLDO.EQ.0) THEN GOTO 190
169 C TURN OFF PULSE POINTS
170 OFF(PUL1#2,PUL2#2,PUL3#2,VLDO)
179 C TURN OFF PULSE FLAG
180 OFF(VLDO)
190 ...
MIN(RMMIN,RM1TMP,RM2TMP,RM3TMP)
• AUTO
• ALARM
• DAYMOD (Rev. 9.1+)
• FAILED
• FAST
• NGTMOD (Rev. 9.1+)
• OFF
• ON
• PRFON
• SLOW
APOGEE firmware
In addition to CM 1.x and revision 12.0 and higher
logical firmware, APOGEE firmware supports the
following additional status indicator:
• ALMACK
CAUTION:
The PTM manual override switch is not
intended to be used as a safety device when
performing maintenance. If you use the PTM
manual override switch as a safety device, it
can result in serious injury to personnel or
cause damage to property in the area.
Continue to follow safety procedures when
performing maintenance.
CAUTION:
Be aware of how your system will react before
attempting to take control of the system using
a PTM override switch. Manually controlling
equipment can cause the system to react in an
unstable manner. You may also need to
perform other functions once you return
control to the system before normal operations
can resume.
Unitary firmware
Unitary firmware uses the same syntactical
conventions for status indicators as Revision 9.2
and higher logical firmware, but does not support
FAST, SLOW and AUTO indicators. Refer to
Revision 9.2 and higher logical firmware under the
Determining point status using logical firmware.
Time-Of-Day (TOD)
CAUTION:
Be careful when points you define for TOD
are commanded by another application such
as Duty Cycling (DC). If you have a point
being controlled by TOD and DC during the
same time period, one program could
interfere with the operation of the other.
Time-Of-Day commands
These commands are the actual TOD specific
functions used in TOD programs. The TODMOD
statement must come first before any number of
TOD or TODSET statements. Refer to the
following:
TODMOD - Defines the types of schedules
(normal, weekend, etc.) for each day of the week.
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.
TOD examples
The following examples illustrate the results when
defining holidays using the PPCL HOLIDA
statement or the TOD Calendar.
Holiday
10:30:00 OFF LITE1
17:00:00 ON LITE1
Holiday
10:30:00 OFF LITE1
17:00:00 ON LITE1
IF/THEN/ELSE Time-Of-Day
Although Time-Of-Day uses actual commands
dedicated to performing TOD functions, time
scheduling can be accomplished using the
IF/THEN/ELSE commands.
The following example illustrates TOD scheduling
using conditional testing:
One of the simplest applications for time
scheduling using conditional tests is the control of
lights. You decide to control the outdoor parking
lights for a building using IF/THEN/ELSE
commands. You set up a schedule so that the
lights are ON from 7:00 p.m. until 5:00 a.m. The
IF/THEN/ELSE statement might look like the
following:
100 C THIS LINE OF CODE TURNS THE LIGHTS
102 C OFF AT 5:00 AM AND ON AT 7:00 PM.
104 C
110 IF(TIME.GT.5:00.AND.TIME.LT.19:00)THEN
OFF(LITES)ELSE ON(LITES)
ACT
Physical Logical Unitary CM APOGEE
! ! ! ! !
Syntax ACT(line1,...,line16)
line1 Valid line numbers for commands
through within the same device as the control
line16 command. You must enter line
numbers as integers, which can range
from 1 to 32,767.
ALARM
Physical Logical Unitary CM APOGEE
! ! !
Syntax ALARM(pt1,...,pt16)
pt1 Names of the points to be alarmed.
through They have to be in the same device.
pt16 They cannot be local variables.
AUTO
Physical Logical Unitary CM APOGEE
! ! !
Syntax AUTO(pt1,...,pt16)
pt1 Point names of LOOAL or LOOAP
through through type points.
pt16
DAY
Physical Logical Unitary CM APOGEE
! ! !
Syntax DAY(pt1,...,pt16)
pt1 Point names of logical controller
through through (LCTLR) points.
pt16
DBSWIT
Physical Logical Unitary CM APOGEE
! ! ! !
Syntax 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 analog point. This
can also be a local variable.
low Represents the low temperature at
which a switching action occurs. This
parameter can contain a decimal or
integer value. The parameter can be
defined as a point name, local variable,
or number.
high Represents the high temperature at
which a switching action occurs. This
parameter can contain a decimal or
integer value. The parameter can be
defined as a point name, local variable,
or number.
Example 2
200 DBSWIT(1,RMTEMP,55,58,SFAN,RFAN)
DC
Physical Logical Unitary CM APOGEE
! ! ! !
Syntax DC(pt1,pat1,...,pt8,pat8)
pt1 Point names of the output points to be
through duty cycled. Acceptable point types are
pt8 LDO, LOOAL, LOOAP, L2SL, and
L2SP. Local, virtual, and physical
points are valid for pt1, pt2, pt3, and
pt4, although virtual and physical
points must be of the type specified.
pat1 Hourly pattern that describes how each
through point is duty cycled. Each pattern
pat8 consists of four code numbers
between 0 and 7. Each digit represents
the on/off pattern for 15 minutes of the
hour. Table 4-1 lists the code numbers
for each 15-minute interval. Valid
values include local, physical, and
virtual points, as well as integers.
DCR
Physical Logical Unitary CM APOGEE
! ! ! !
Syntax DCR(pt1,temp1,high1,low1,...,pt4,temp4,high4,low4)
pt1 Point names of output points to be duty
through cycled. Acceptable point types for this
pt4 command are LDO, logical, physical,
and virtual. Virtual and physical types
must be of the type specified.
temp1 Point names of the space temperature
through points.
temp4
high1 High temperature limits of the space
through points. Any number entered for this
high4 parameter can be a decimal, integer,
point name, or local variable.
low1 Low temperature limits of the space
through points. Any number entered for this
low4 parameter can be a decimal, integer,
point name, or local variable.
See also DC
DEACT
Physical Logical Unitary CM APOGEE
! ! ! !
Syntax DEACT(line1,...,line16)
line1 Valid line numbers for commands,
through which reside in the same device as the
line16 control command. The numbers must
be entered as integers ranging from 1
to 32,767.
DEFINE
Physical Logical Unitary CM APOGEE
Syntax DEFINE(abbrev,string)
abbrev Text string used in other PPCL statements,
representing the string parameter.
string Actual text string that will be substituted
where the abbreviation is used. The string
text usually contains a significant portion of
a long point name.
DISABL
Physical Logical Unitary CM APOGEE
! ! !
Syntax DISABL(line1,...,line16)
line1 Valid line number for commands which
through reside in the same device as the
line16 control command. The numbers must
be entered as integers ranging from 1
to 32,767.
DISALM
Physical Logical Unitary CM APOGEE
! ! ! !
Syntax DISALM(pt1,...,pt16)
pt1 Names of the points that should have
through alarm reporting disabled.
pt16
DISCOV
Physical Logical Unitary CM APOGEE
! ! !
Syntax DISCOV(pt1,...,pt16)
pt1 Point names of the points for which
through Change-Of-Value (COV) reporting is
pt16 disabled. Up to 16 points can be
controlled by a single DISCOV
command.
DPHONE
Physical Logical Unitary CM APOGEE
9.1 ! 2.1
Syntax DPHONE(pn#1,...,pn#16)
pn#1 Telephone ID numbers that are
through defined in the device.
pn#16
EMAUTO
Physical Logical Unitary CM APOGEE
! ! !
Syntax EMAUTO(pt1,...,pt16)
pt1 Point names of LOOAL or LOOAP
through points.
pt16
EMFAST
Physical Logical Unitary CM APOGEE
! ! !
Syntax EMFAST(pt1,...,pt16)
pt1 Point names of LFSSL or LFSSP
through points.
pt16
EMOFF
Physical Logical Unitary CM APOGEE
! ! ! !
Logical EMOFF(pt1,...,pt16)
syntax
Physical EMOFF(prior,pt1)
syntax
EMON
Physical Logical Unitary CM APOGEE
! ! ! !
Logical EMON(pt1,...,pt16)
syntax
Physical EMON(prior,pt1)
syntax
EMSET
Physical Logical Unitary CM APOGEE
! ! !
Syntax EMSET(value,pt1,...,pt15)
value All the points defined in the statement
will be commanded to this analog
value. This parameter can be a
integer, decimal, point name, or local
variable.
pt1 Point names of LAI or LAO points.
through
pt15
EMSLOW
Physical Logical Unitary CM APOGEE
! ! !
Syntax EMSLOW(pt1,...,pt16)
pt1 Point names of LFSSL or LFSSP
through points.
pt16
ENABLE
Physical Logical Unitary CM APOGEE
! ! !
Syntax ENABLE(line1,...,line16)
line1 Valid line numbers for commands
through within the same device as the control
line16 command. Line numbers must be
entered as integers from 1 to 32,767.
ENALM
Physical Logical Unitary CM APOGEE
! ! ! !
Syntax ENALM(pt1,...,pt16)
pt1 Point names whose alarm reporting
through through capabilities are to be enabled.
pt16
ENCOV
Physical Logical Unitary CM APOGEE
! ! !
Syntax ENCOV(pt1,...,pt16)
pt1 Point names of the points for which
through Change-Of-Value (COV) reporting is
pt16 enabled. A maximum of 16 points can
be controlled by a single ENCOV
command.
EPHONE
Physical Logical Unitary CM APOGEE
9.1 ! 2.1
Syntax EPHONE(pn#1,...,pn#16)
pn#1 Telephone ID numbers that are
through defined in the device.
pn#16
FAST
Physical Logical Unitary CM APOGEE
! ! !
Syntax FAST(pt1,...,pt16)
pt1 Point names of LFSSL or LFSSP type
through points.
pt16
GOSUB
Physical Logical Unitary CM APOGEE
! ! ! ! !
Example
100 C MAINLINE PROGRAM FOR LOGICAL FIRMWARE
110 C LEARNING HOW TO USE GOSUB, RETURN, AND
112 C $ARG COMMANDS.***
120
130 GOSUB 1010
...
...
...
300 GOSUB 2010 PT1, PT2
...
...
...
400 GOTO 3000
1000 C --SUBROUTINE 1
1001 C THIS SUBROUTINE ASSIGNS NUMBERS
1002 C TO PT1 AND PT2. IT THEN RETURNS
1004 C CONTROL TO THE MAIN PROGRAM.
1008 C
1010 PT1 = 10
1020 PT2 = 20
1030 RETURN
2000 C --SUBROUTINE 2
2001 C THIS SUBROUTINE PASSES THE VALUE OF
2002 C PT1 AND PT2 TO THEIR RESPECTIVE $ARG
2003 C POINTS. IT THEN ADDS ONE TO BOTH $ARG
2004 C POINTS AND RETURNS THE NEW VALUES TO
2005 C PT1 AND PT2.
2006 C
2010 $ARG1 = $ARG1 + 1
2020 $ARG2 = $ARG2 + 1
2030 RETURN
Nested subroutines
A multiple level subroutine is a block of program
code that is called from within another subroutine.
Each call you make within a subroutine constitutes
a level. You are limited to a total of eight levels.
If you need to use multi-level subroutines, the
rules that govern $ARGn variables and point
name declarations for GOSUB commands change
slightly. When using $ARGn variables in a multi-
level subroutines, you cannot share the $ARGn
variables between subroutine levels. Once a value
is assigned to a $ARGn variable, you must retain
that value by not assigning another value to that
variable.
The following example demonstrates the use of
$ARGn variables and point declarations used in
multiple level subroutines. This example contains
a main line section of program code and three
subroutines. It demonstrates a method to preserve
the values of $ARGn variables as you transfer
program control among subroutines.
Refer to Figure 4-2 as you follow the steps of the
example program code:
1. During the evaluation of mainline code, the
program encounters a subroutine call at line
1500. The GOSUB command transfers
control to line 2030. This command also
passes the value of PT1 to the subroutine.
2. While executing the first subroutine, the
program encounters a call to a second
subroutine (located at line 2500). Since this
call is defined within another subroutine, and a
variable has been passed (PT1 to $ARG1),
you must retain the value of $ARG1 by
2000 C
2010 C SUBROUTINE #1
2020 C
2030 ...
2040 ...
2050 ...
2060 C IN ORDER TO PRESERVE THE VALUE LOCATED
2070 C IN $ARG1, YOU MUST DEFINE $ARG1 IN THE
2080 C SECOND SUBROUTINE'S CALLING GOSUB. THE
2090 C PROGRAM ALSO PASSES A SECOND POINT
2100 C VALUE NAMED PT2.
2110 C
2500 GOSUB 3030 $ARG1,PT2
2510 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
3100 C VALUE CALLED PT3.
3200 GOSUB 4020 $ARG1,$ARG2,PT3
3210 RETURN
4000 C SUBROUTINE #3
4010 C
4020 ...
4030 ...
4040 RETURN
Figure 4-2. Multiple Level Subroutines.
GOTO
Physical Logical Unitary CM APOGEE
! ! ! ! !
HLIMIT
Physical Logical Unitary CM APOGEE
! ! ! !
Syntax HLIMIT(value,pt1,...,pt15)
value New value to which the high limit is set.
This value can be a decimal, a point
name, or a local variable. Integers are
not allowed.
pt1 Logical names of analog points whose
through high limits are changed to the new
pt15 value. These points must be in the
same device as the command.
HOLIDA
Physical Logical Unitary CM APOGEE
! ! !
Syntax HOLIDA(month1,day1,...,month8,day8)
month1 Month of the designated holiday. Up to
through eight holidays can be specified with a
month8 single command (January = <1>, June
= <6>, December = <12>, etc.).
day1 Day of the month for the designated
through holiday. Up to eight holidays can be
day8 specified with a single command. The
first day of the month is entered as
<1>.
IF/THEN/ELSE
Physical Logical Unitary CM APOGEE
! ! ! ! !
Example 2
310 IF (TIME.GT.8:00.AND.TIME.LT.16:00) THEN
ON(@NONE,SFAN) ELSE ON(@OPER, SFAN)
INITTO
Physical Logical Unitary CM APOGEE
! ! ! !
Syntax INITTO(value,pt1,...,pt15)
value The new value which replaces the
current totalized values for all specified
points. A number entered for this
parameter must be either a decimal, a
point name, or a local variable.
Integers are not allowed.
pt1 Names of points that are defined for
through totalization. Points must reside in the
pt15 same device as the control program.
LLIMIT
Physical Logical Unitary CM APOGEE
! ! ! !
Syntax LLIMIT(value,pt1,...,pt15)
value New value to which the low limit is set.
This value can be a decimal, a point
name, or a local variable. Integers are
not allowed.
pt1 Logical names of analog points whose
through high limits are changed to the new
pt15 value. These points must be in the
same device as the command.
LOCAL
Physical Logical Unitary CM APOGEE
Example 2
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):
300 IF(“PROG1:FANPT”.EQ.ON)THEN ...
LOOP
Physical Logical Unitary CM APOGEE
! ! ! ! !
Logical LOOP(type,pv,cv,sp,pg,ig,dg,st,bias,lo,hi,0)
syntax
Full range of
controlled device
pg = Throttling range to x 1000
change the output
device from full open
to full close.
ig Integral gain - The contribution of
integral control action to the total
control action of the loop. Integral
action minimizes offset (the difference
between the process variable and the
set point).
When using integral gain, be sure to
reduce the proportional gain so that
the total gain of the loop is not high
enough to cause instability and cycling.
Begin with a low integral gain and
increase it slowly if required. A
recommended starting point is 2% of
the proportional gain. Adding integral
gain can increase the time required to
tune the loop. This value can be
entered as a point name, integer,
decimal, or local variable. Integral gain
should be calculated by using the
following formulas.
If using an integral gain:
ig = pg x .02
If not using an integral gain:
ig = 0
Physical LOOP(type,pv,cv,sp,pg,ig,dg,st,bias,lo,hi,0)
syntax
Full range of
controlled device
pg = Throttling range to x 1000
change the output
device from full open
to full close.
ig Integral gain determines the
contribution of integral control action to
the total control action of the loop.
Integral action minimizes offset (the
difference between the process
variable and the set point).
When using integral gain, be sure to
reduce the proportional gain so that
the total gain of the loop is not high
enough to cause instability and cycling.
Begin with a low integral gain and
increase it slowly if required. A
hi - lo
lo Low limit of the loop output. This
parameter should be set to match the
low end range of the controlled device.
The low limit is entered as an decimal
number, point name, or local variable.
Use the formulas and the values
shown in Table 4-2 and Table 4-3 to
calculate the low limit.
hi High limit of the loop output. This
parameter should be set to match the
high end of the range of the controlled
device. The high limit is entered as a
decimal number, point name, or local
variable. Use the formulas and values
shown in Table 4-2 and Table 4-3 to
calculate the low limit.
0 Not used. Enter zero.
- - 1 (7) 14 4 0 0 0 0 0
- -
- -
MAX
Physical Logical Unitary CM APOGEE
! ! ! ! !
Syntax MAX(result,pt1,...,pt15)
result Point name where the largest value is
stored. This can be a virtual point
name or a local variable.
pt1 Values which are compared. The
through values can be any combination of point
pt15 names, decimals, integers, and local
variables.
MIN
Physical Logical Unitary CM APOGEE
! ! ! ! !
Syntax MIN(result,pt1,...,pt15)
result Point name where the lowest value is
stored. This can be a virtual point
name or local variable.
pt1 Values which are compared. The
through values can be any combination of point
pt15 names, decimals, integers, and local
variables.
NIGHT
Physical Logical Unitary CM APOGEE
9.1 ! !
Syntax NIGHT(pt1,...,pt16)
pt1 Names of logical controller points.
through
pt16
NORMAL
Physical Logical Unitary CM APOGEE
! ! !
Syntax NORMAL(pt1,...,pt16)
pt1 Names of the points to be taken out of
through the alarm-by-command state.
pt16
OFF
Physical Logical Unitary CM APOGEE
! ! ! ! !
Syntax OFF(pt1,...,pt16)
pt1 Point names that will have their priority
through set to NONE.
pt16
OIP
Physical Logical Unitary CM APOGEE
! ! !
Example
100 C
102 C OIP COMMAND INFORMATION:
104 C OPERATOR SEQUENCE
106 C
108 C - POINT
110 C - DISPLAY
112 C - PRINTER
114 C - YES
116 C - VALUE
118 C - ANY
120 C - NAME
122 C - ALL NAMES
124 C
130 C TRIGGER POINT - RPT7AM
150 OIP(RPT7AM,"P/D/P/Y/V/A/N/*")
ON
Physical Logical Unitary CM APOGEE
! ! ! ! !
Syntax ON(pt1,...,pt16)
pt1 Point names that will have their priority
through set to NONE.
pt16
ONPWRT
Physical Logical Unitary CM APOGEE
! ! ! !
Syntax ONPWRT(line#)
line# Line number at which execution begins
in the control program after returning
from power failure. This number must
be an integer in the range of 1 to
32,767. If the line number is invalid,
this command is ignored.
PARAMETER
Physical Logical Unitary CM APOGEE
Syntax PARAMETER A = B
A A valid label name. This name cannot
be defined in any database and cannot
start with a number.
B The value that is assigned to the label
name.
PDL
Physical Logical Unitary CM APOGEE
! ! ! !
Physical PDL(totkw,target,g1s,g1e,...,g4s,g4e)
syntax
Logical PDL(area,totkw,target,g1s,g1e,sh1,...,g4s,g4e,sh4)
syntax
PDLDAT
Physical Logical Unitary CM APOGEE
! ! ! !
Syntax PDLDAT(ptname,minon,minoff,maxoff,kwval)
ptname Point name of the load. In a network
system, a load defined by a PDLDAT
statement must reside in the same
field panel as the PDL statement.
minon Minimum time (in minutes) that PDL
must keep the load on after restoring
it. This parameter must be less than
546 and can be defined as an integer,
decimal, point name, or a local
variable.
minoff Minimum time (in minutes) that the
load must remain OFF before PDL can
restore it. This parameter must be less
than 546 and can be defined as an
integer, decimal, point name, or a local
variable.
maxoff Maximum time (in minutes) that PDL
can keep the load off after shedding it.
This parameter can be defined as an
integer, decimal, point name or a local
variable. The maximum allowable
value of maxoff is (minoff + 546).
kwval Kilowatt rating for the load. This
parameter can be a decimal, integer, a
point name, or a local variable.
PDLDPG
Physical Logical Unitary CM APOGEE
! ! !
Syntax PDLDPG(area,kwtot1,target1,...,kwtot7,target7)
area The meter area designation. This
parameter must have the same
numeric value as the area parameter
that is specified for the corresponding
PDLMTR statement.
kwtot1 The amount of power that is consumed
through by the loads which are under control of
kwtot7 the PDL command. A power
consuming load is considered to be
under control of a PDL command if it is
defined in the PDLDAT command
associated with the PDL command
and the following criteria are met:
• The load is currently in the ON
state and was placed in this state
at a priority level that is below or
equal to PDL priority.
• The load is currently in the OFF
state and was placed in this state
at PDL priority (that is, if it was
shed by the PDL algorithm).
• The PDLDAT command is being
traced and is enabled.
The totkw parameter must be the
same virtual LAO point that is specified
as the kwtot parameter in the owning
PDLDPG command. The value of this
PDLMTR
Physical Logical Unitary CM APOGEE
! ! !
Syntax PDLMTR(area,hist,calc,window,plot,warning,mt1,
def1,...,mt5,def5)
area Meter area, entered as an integer (1 to
32,767). This value is usually entered
as an integer, but can be a point name
or a local variable.
hist Historical forecast weighting factor as
a percent. This parameter should be
less than 50% to anticipate demand.
The recommended value is 30% and
can be a decimal or integer value.
calc Calculation interval in minutes (one
minute is the minimum). This value is
usually entered as an integer or
decimal, but can be a point name or a
local variable.
window Sliding window interval in minutes (up
to 30 samples can be stored per
window). This value is usually entered
as an integer or decimal, but can be a
point name or a local variable.
plot Maximum value for Time versus
Demand plot section of PDL Activity
Report. This value should be greater
than the highest set point used in
PDLSET. This value can be entered as
a decimal, integer, point name, or a
local variable.
PDLSET
Physical Logical Unitary CM APOGEE
! ! !
Syntax PDLSET(area,exceed,set1,time1,...,set7,time7)
area Meter area. This is entered as an
integer.
exceed DO point which is commanded OFF at
the end of each set point interval. It is
then turned ON if the actual floating
window peak exceeded the set point at
any time during the preceding interval.
set1 Demand set point (in kilowatts) which
through is not to be exceeded. This parameter
set7 can be a decimal, integer, a point
name or a local variable.
time1 The time at which the corresponding
through set point ends. This parameter is
time7 usually entered as a clock time in
military format (24-hour clock). It can
also be entered as an integer, a
decimal, or a local variable. Times
must be in ascending order.
RELEAS
Physical Logical Unitary CM APOGEE
! ! !
Syntax RELEAS(pt1,...,pt16)
pt1 Point names that will have their priority
through set to NONE.
pt16
RETURN
Physical Logical Unitary CM APOGEE
! ! ! ! !
Syntax RETURN
SAMPLE
Physical Logical Unitary CM APOGEE
! ! ! !
SET
Physical Logical Unitary CM APOGEE
! ! ! !
Syntax SET(value,pt1,...,pt15)
value Value to which points should be
commanded. This number can be a
decimal, logical point, or local variable.
Integers are not allowed.
pt1 Point names that will have their priority
through set to NONE.
pt15
Example 2
550 SET(@EMER,75.0,RMSET1,RMSET2,RMSET3)
SLOW
Physical Logical Unitary CM APOGEE
! ! !
Syntax SLOW(pt1,...,pt16)
pt1 Point names of LFSSL or LFSSP type
through are commanded to slow.
pt16
SSTO
Physical Logical Unitary CM APOGEE
! ! !
Syntax SSTO(zone,mode,cst,csp,est,lst,ost,esp,lsp,
osp,ast,asp)
zone SSTO zone number (valid values are 1
to 5).
mode Mode number. Valid entries are any
combination of 1, 2, 4, 8, or 16 as
defined in the following table. Mode
numbers can be added together to
create customized schedules for the
TOD program. Refer to the TODMOD
command for more information.
MODE Schedule
1 Normal Schedule
2 Extended Schedule
4 Shortened Schedule
8 Weekend Schedule
16 Holiday Schedule
cst Point name of the virtual LAO point
which stores the calculated start time.
If SSTO is disabled (season = 0 in the
SSTOCO command), then cst is
assigned to the latest start time.
csp Point name of the virtual LAO that
stores the calculated stop time. If
SSTO is disabled (season = 0 in the
SSTOCO command), then csp is
assigned the latest stop time.
SSTOCO
Physical Logical Unitary CM APOGEE
! ! !
Syntax SSTOCO(zone,season,intemp,outemp,ctemp,
ccoef1,ccoef2,ccoef3,ccoef4,htemp,hcoef1,
hcoef2,hcoef3,hcoef4)
For variables used in this command, you can use
numbers, point names, or local variables. The
values for the coefficients must be entered as
follows:
• in minutes for revisions 5.0 logical firmware
only.
• in fractions of an hour for all other revisions of
firmware
zone SSTO zone number. Valid values are 1
to 5.
season Current season. Point name whose
value represents the coefficients to be
used (heat = 2, cool = 1, and 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 can be entered as a
floating point (decimal) number, a
integer, a point name, or a local
variable.
STATE
Physical Logical Unitary CM APOGEE
Syntax STATE(@pri,statetext,pt1...pt14)
@pri Specifies an optional parameter that
designates a specific point priority.
statetext State text that can be found in the
associated state text table
pt1 Points that can be commanded to a
through particular state. If using the @pri
pt14 parameter, only 14 points can be
defined.
TABLE
Physical Logical Unitary CM APOGEE
! ! ! !
Syntax TABLE(input,output,x1,y1,...,x7,y7)
input Point name of the input (x) variable. A
local variable or virtual LAI point type
can be used.
output Point name of the output (y) variable. A
local variable or virtual LAO point type
can be used.
x1,y1 Pairs of coordinates that define the x-y
through relationship. y1 is the value of the
x7,y7 output when the input equals x1; y2 is
the value of the output when the input
is x2, etc. The coordinates can be
entered as integers or decimals.
Example
500 C
502 C TABLE COMMAND INFORMATION:
504 C
506 C OATEMP (X) HWSP (Y)
508 C ---------- ----------
510 C 0 DEG F 180 DEG F
512 C 60 DEG F 100 DEG F
514 C
520 TABLE(OATEMP,HWSP,0,180,60,100)
TIMAVG
Physical Logical Unitary CM APOGEE
! ! !
Syntax TIMAVG(result,st,samples,input)
result A point name used to store the result
of the average value. Local variables
can also be used.
st Number of seconds between each
sample. This can be entered as an
integer, a point name, or a local
variable.
samples Number of samples to be used to
calculate the average. This must be an
integer between 1 and 10.
input Point name of the LAI or LAO point
whose average value is to be
calculated. A local variable can also be
used.
Example
100 TIMAVG (RMAVG, 600, 6, RMTEMP),
TOD
Physical Logical Unitary CM APOGEE
! ! !
Syntax TOD(mode,recomd,time1,time2,pt1,...,pt12)
mode Mode number. Valid entries are any
combination of 1, 2, 4, 8, or 16 as
defined in the following table. Mode
numbers can be added together to
create customized schedules for the
TOD program. The mode number 16
should only be used with the HOLIDA
command.
MODE Schedule
1 Normal Schedule
2 Extended Schedule
4 Shortened Schedule
8 Weekend Schedule
16 Holiday Schedule
recomd Determines if the points defined will be
commanded after a return from a
power failure (fail-safe position).
Recomd is sometimes necessary for
field panel warmstarts.
Valid entries are as follows:
0 = Does not recommand the points,
pt1 through pt12, on return from power
failure.
1 = Recommand the points, pt1
through pt12, on return from power
failure.
TODMOD
Physical Logical Unitary CM APOGEE
! ! !
Syntax TODMOD(momode,tumode,wemode,thmode,
frmode,samode,sumode)
For all modes values, refer to the table following
the mode descriptions:
momode Mode number for Monday. Valid
entries are 1, 2, 4 or 8.
tumode Mode number for Tuesday. Valid
entries are 1, 2, 4 or 8.
wemode Mode number for Wednesday. Valid
entries are 1, 2, 4 or 8.
thmode Mode number for Thursday. Valid
entries are 1, 2, 4 or 8.
frmode Mode number for Friday. Valid entries
are 1, 2, 4 or 8.
samode Mode number for Saturday. Valid
entries are 1, 2, 4 or 8.
sumode Mode number for Sunday. Valid entries
are 1, 2, 4 or 8.
MODE Schedule
1 Normal Schedule
2 Extended Schedule
4 Shortened Schedule
8 Weekend Schedule
16* Holiday Schedule
TODSET
Physical Logical Unitary CM APOGEE
! ! !
Syntax TODSET(mode,recomd,time1,val1,time2,val2,pt1,.
.., pt10)
mode Mode number. Valid entries are 1, 2, 4,
8, or 16 as defined in the following
table:
MODE Schedule
1 Normal Schedule
2 Extended Schedule
4 Shortened Schedule
8 Weekend Schedule
16* Holiday Schedule
Mode numbers can be added together
to create customized schedules for the
TOD program. The 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 is sometimes necessary for
field panel warmstarts.
Valid entries are as follows:
0 = Does not recommand the points,
pt1 through pt10, on return from power
failure.
WAIT
Physical Logical Unitary CM APOGEE
! ! ! ! !
Logical WAIT(time,pt1,pt2,mode)
syntax
Mode Meaning
11 When pt1 turns ON, wait
time seconds then turn pt2
ON.
10 When pt1 turns ON, wait
time seconds then turn pt2
OFF.
01 When pt1 turns OFF, wait
time seconds then turn pt2
ON.
00 When pt1 turns OFF, wait
time seconds then turn pt2
OFF.
Physical WAIT(time,pt1,pt2)
syntax
Glossary of terms
APOGEE firmware
Firmware used in APOGEE field panels.
Argument
Type of variable whose value is not a direct
function of another 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.
Arithmetic function
Function that performs mathematical calculations
on a value (number). When used in PPCL, the
value derived from the calculation is usually
assigned to a point name for future reference.
Arithmetic operator
Mathematically related functions that are
performed on two or more operands (numbers).
When used in PPCL, the value of the calculation is
determined and assigned to a point name or local
variable for future reference.
CM firmware
Firmware used in Controller Modules and early
revision Open Processors.
Command
Instruction evaluated by the computer.
Comment line
Information that is written into the program but is
not interpreted as a program command. The
compiler skips over the comment line during
compilation. Comment lines allow you to enter text
information describing the functionality of a
specific section of code. Comment lines are
especially helpful for describing subroutines and
areas of program code that are difficult to
understand.
Condition
Result of a comparison between two values.
Debugging
Process by which the logic of the program is
tested for errors. A program is said to have “bugs”
when it fails to function properly.
Device
In PPCL, a device represents any field panel or
equipment controller that can execute PPCL
statements.
Execute
To carry out the instruction of an expression or
program.
Expression
Statement that describes a set of variables,
constants, or values combined with arithmetic,
logical, or relational operators.
Firmware
Portion of software used in a controller that is
stored in non-volatile memory. See Logical,
Physical, Unitary, CM or AOPGEE firmware.
Integer
Whole number (non-decimal number).
Line
Statement of program code assigned to a unique
line number.
Local variable
Points in a program of a field panel that can be
used in place of user-defined points to store
temporary values ($LOC1 through $LOC15).
Logical firmware
Logical firmware is designed to accept
engineering values (Deg °F, kPa, psi) for
parameters in PPCL commands.
Logical operators
Operator that compares two conditions. The result
of a comparison 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, then an alternative action is performed.
Modular programming
Style of programming that logical organizes code
into common functions, such as operational
modes.
Order of precedence
Order in which operators (mathematical, relational,
logical, and special function) are evaluated in a
command statement. Operators that have a higher
precedence are evaluated before operators that
have a lower precedence. If all the operators in the
statement have equivalent precedence levels,
then the operators are evaluated from left to right.
Physical firmware
Physical firmware is designed to accept values for
parameters in PPCL commands derived from
formulas and calculations.
Program
Collection of instructions combined in a logical
order to accomplish a specific task.
Pseudocode
Non-syntactical description of program logic.
Relational operators
Relational operators compare two values. The
result of the comparison is called a condition, and
determines the type of action that should be taken.
Resident point
Predefined logical point that permanently resides
in the PPCL program in the field panel.
Routing
Method for altering the flow of a program to
transfer control to a line of the program other than
the next sequential line number.
Special function
PPCL functions such as Alarm Priority (ALMPRI)
that 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,
they cannot be manually commanded to a
different value. Special functions cannot be used
over the network.
Statement
Collection of instructions to the computer in order
to perform an operation. A statement can also be
considered a line of PPCL code.
Subroutine
Portion of program code referenced repeatedly
through one pass of the program.
Unitary firmware
Firmware that uses a subset of PPCL commands
found in logical firmware.
DAYOFM DBSWIT
DC DCR
DEACT DEAD
DEFINE DISABL
DISALM DISCOV
DPHONE ELSE
EMAUTO EMER
EMFAST EMOFF
EMON EMSET
EMSLOW ENABLE
ENALM ENCOV
EPHONE EQ
EQUAL EXP
FAILED FAST
GE GOSUB
GOTO GT
HAND HLIMIT
HOLIDA IF
INITTO LE
LINK LLIMIT
LOC1 through LOC15 LOCAL
LOG LOW
LOOP LT
MAX MIN
MONTH NAND
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
TIME TOD
TODMOD TODSET
TOTAL WAIT
XOR
$
$ARG1 through $ARG15 (local variable) ........................... 2-63
$BATT (resident point)....................................................... 2-50
$LOC1 through $LOC15 (local variable) ............................ 2-65
$PDL (resident point)......................................................... 2-58
A
ACT (command) .................................................................. 4-2
Addition (arithmetic operator)............................................. 2-24
ALARM (command) ............................................................. 4-3
ALARM (status indicator)................................................... 2-73
Alarm acknowledge (status indicator) ................................ 2-74
Alarm Priority (special function) ......................................... 2-40
ALMCNT (resident point) ................................................... 2-48
ALMCT2 (resident point).................................................... 2-49
ALMPRI (special function) ................................................. 2-40
AND (logical operator) ....................................................... 2-18
Antilog, natural (arithmetic function) .................................. 2-33
Arc-Tangent (arithmetic function)....................................... 2-30
Arithmetic functions
Arc-tangent ................................................................... 2-30
Complement.................................................................. 2-31
Cosine........................................................................... 2-32
Natural antilog ............................................................... 2-33
Natural log..................................................................... 2-34
Root .............................................................................. 2-35
Sine............................................................................... 2-36
Square root ................................................................... 2-37
Tangent......................................................................... 2-38
Arithmetic functions ........................................................... 2-29
Arithmetic operators .......................................................... 2-23
Addition ......................................................................... 2-24
Assignment ................................................................... 2-25
Division ......................................................................... 2-26
Multiplication ................................................................. 2-27
Subtraction.................................................................... 2-28
Assignment ....................................................................... 2-25
At (@) priority indicators
EMER ........................................................................... 2-67
OPER............................................................................ 2-69
PDL............................................................................... 2-70
PPCL (NONE) ............................................................... 2-68
SMOKE ......................................................................... 2-71
ATN (arithmetic function)................................................... 2-30
AUTO (command) ............................................................... 4-4
AUTO (status indicator) ..................................................... 2-75
B
Battery condition (resident point) ....................................... 2-50
Battery status - Almost discharged (status indicator) ......... 2-77
Battery status - Charged (status indicator)......................... 2-78
Battery status - Discharged (status indicator) .................... 2-76
C
COM (arithmetic function).................................................. 2-31
Comment Lines ................................................................. 2-95
Communications link (resident point)................................. 2-55
H
HAND (status indicator) ..................................................... 2-82
HLIMIT (command)............................................................ 4-39
HOLIDA (command) .......................................................... 4-40
I
IF/THEN/ELSE (command) ............................................... 4-42
INITTO (command)............................................................ 4-44
Internal documentation
See
Comment Lines ........................................................ 2-95
L
LE, Less than or equal to (relational operator) ................... 2-13
Less than (relational operator) ........................................... 2-14
Less than or equal to (relational operator) ......................... 2-13
LINK (resident point).......................................................... 2-55
LLIMIT (command) ............................................................ 4-45
LOCAL (command)............................................................ 4-46
Local variables
$ARG1 through $ARG15............................................... 2-63
$LOC1 through $LOC15................................................ 2-65
Log, natural (arithmetic function) ....................................... 2-34
Logical operators ............................................................... 2-16
AND .............................................................................. 2-18
Exclusive Or.................................................................. 2-22
Not And ......................................................................... 2-19
Or 2-20
LOOP (command) ............................................................. 4-47
Loop Limit Calculations. .................................................... 4-54
LOW (status indicator)....................................................... 2-78
LT, less than (relational operator) ...................................... 2-14
M
Manual conventions............................................................. 1-5
MAX (command)................................................................ 4-57
Military time ....................................................................... 2-61
MIN (command)................................................................. 4-58
Modular programming........................................................ 2-89
Monitoring points
See
Point status indicators............................................... 2-73
MONTH (resident point)..................................................... 2-56
Multiple programs vs. Subroutines..................................... 2-93
Multiplication (arithmetic operator)..................................... 2-27
N
NAND (logical operator)..................................................... 2-19
NE, not equal to (relational operator) ................................. 2-15
Nested subroutines............................................................ 4-34
NGTMOD (status indicator) ............................................... 2-83
NIGHT (command) ............................................................ 4-59
NODE0 through NODE99 (resident point) ......................... 2-57
NONE (PPCL, priority)....................................................... 2-69
NORMAL (command) ........................................................ 4-60
Not equal to (relational operator) ....................................... 2-15
O
OFF (command) ................................................................ 4-61
OFF (status indicator)........................................................ 2-84
OIP (command) ................................................................. 4-62
OK (status indicator).......................................................... 2-79
ON (command).................................................................. 4-65
ON (status indicator).......................................................... 2-85
R
Relational operators
Equal to......................................................................... 2-10
Greater an or equal to ................................................... 2-11
Greater than .................................................................. 2-12
Less than ...................................................................... 2-14
Less than or equal to..................................................... 2-13
Not equal to................................................................... 2-15
order of evaluation........................................................... 2-9
RELEAS (command) ......................................................... 4-82
Resident points
Alarm count................................................................... 2-48
Alarm count 2................................................................ 2-49
Battery condition ........................................................... 2-50
Communications link ..................................................... 2-55
Day ............................................................................... 2-53
Day of the month........................................................... 2-54
Decimal time ................................................................. 2-52
Military time................................................................... 2-61
Month ............................................................................ 2-56
Node number ................................................................ 2-57
PDL monitor .................................................................. 2-58
Seconds counter .................................................. 2-59, 2-60
RETURN (command) ........................................................ 4-84
ROOT (arithmetic function)................................................ 2-35
S
SAMPLE (command)......................................................... 4-85
SECND1 through SECND7 (resident point) ....................... 2-60
SECNDS (resident point)................................................... 2-59
SET (command) ................................................................ 4-86
W
WAIT (command) ............................................................ 4-107
X
XOR (logical operator) ....................................................... 2-22