Académique Documents
Professionnel Documents
Culture Documents
Technical Manual
TAC Menta
Technical Manual
Copyright © 2006 TAC AB. All rights reserved.
This document, as well as the product it refers to, is only intended for licensed users. TAC AB owns the copyright of this document and reserves
the right to make changes, additions or deletions. TAC AB assumes no responsibility for possible mistakes or errors that might appear in this
document.
Do not use the product for other purposes than those indicated in this document.
Only licensed users of the product and the document are permitted to use the document or any information therein. Distribution, disclosure,
copying, storing or use of the product, the information or the illustrations in the document on the part of non-licensed users, in electronic or
mechanical form, as a recording or by other means, including photo copying or information storage and retrieval systems, without the express
written permission of TAC AB, will be regarded as a violation of copyright laws and is strictly prohibited.
Trademarks and registered trademarks are the property of their respective owners.
TAC Menta, Technical Manual Contents
Contents
INTRODUCTION
1 Introduction 15
1.1 Structure ..................................................................................................................... 15
1.2 Prerequisites ............................................................................................................... 16
1.3 Terminology ............................................................................................................... 17
1.4 New in this Edition..................................................................................................... 19
1.5 Typographic Conventions .......................................................................................... 19
GETTING STARTED
2 Menta Programming Fundamentals. 23
2.1 Basic project analysis ................................................................................................. 23
2.2 System configuration ................................................................................................. 23
2.3 Application Programming Phases .............................................................................. 23
2.4 Function Phase of the Application Programming ...................................................... 24
2.5 Design Phase of the Application Programming ......................................................... 24
2.5.1 Point Identification and Allocation ............................................................................ 24
2.5.2 Naming of Points and Alarms. ................................................................................... 24
2.5.3 Structuring the FBD ................................................................................................... 25
2.5.4 Using Modules in the Application ............................................................................. 26
2.5.5 Menus in the OP......................................................................................................... 26
2.6 Test Phase of the Application Programming ............................................................. 28
3 Planning the Project 29
3.1 Folder Structure.......................................................................................................... 29
3.1.1 Creating the Project Folder ........................................................................................ 29
3.2 Case Study.................................................................................................................. 29
3.2.1 Description of the Facility.......................................................................................... 29
3.2.2 Device Description and Naming Convention ............................................................ 30
3.2.3 Devices in Our Example ............................................................................................ 32
4 The RTU4 Application 33
4.1 Functional Description ............................................................................................... 33
4.2 Organizing the FBD ................................................................................................... 36
4.3 Configuring the Device in Menta............................................................................... 38
4.4 The Zone Bypass state ............................................................................................... 40
4.4.1 Designing the FBD..................................................................................................... 40
4.4.2 Simulating the Design ................................................................................................ 43
4.5 Starting and Stopping the VAV AHU Fan................................................................. 45
4.5.1 Designing the FBD..................................................................................................... 45
REFERENCE
5 Introduction to TAC Menta 227
5.1 System of Units .......................................................................................................... 227
5.2 Operation Modes ........................................................................................................ 227
5.3 Program Licenses ....................................................................................................... 228
5.4 Setup ........................................................................................................................... 228
5.5 TAC Menta Start ........................................................................................................ 229
6 General Concepts 231
6.1 Function Block Diagrams........................................................................................... 231
6.2 Signals ........................................................................................................................ 232
6.2.1 Signal Types ............................................................................................................... 232
6.2.2 Signal Names.............................................................................................................. 232
6.2.3 Public Signals ............................................................................................................. 233
6.3 Connections ................................................................................................................ 233
6.4 Function Blocks.......................................................................................................... 233
6.4.1 Simple Blocks............................................................................................................. 234
6.4.2 Expressions................................................................................................................. 234
6.4.3 Operators .................................................................................................................... 235
1 Introduction
This manual describes the use of the TAC Menta programming tool.
For information of specific products we refer to the manual of the prod-
uct in question.
For information on how to install software, please refer to the instruc-
tions delivered with the software.
For information on specific products, please refer to the manual for the
product in question.
If you discover errors and/or unclear descriptions in this manual, please
contact your TAC representative.
Note
We are continuously improving and correcting our documentation.
This manual may have been updated.
Please check our Docnet site at www.tac-global.com for the latest ver-
sion.
1.1 Structure
This handbook is divided into the following parts:
• Introduction
The Introduction section contains information on how this handb-
bok is structured and how it should be used to find information in
the most efficient way.
• Getting Started
The Getting Started section covers some fundamentals of Menta
programming. An application from the ACME project is used as
example for step-by-step design description of how to engineer or
operate tasks described in this manual.
• Reference
The Reference section contains more easily comprehensible infor-
mation about various parts of the Menta programming tool. It also
gives you information on alternative solutions not covered in the
Getting Started section.
1.2 Prerequisites
To be able to profit from the contents in this manual, you are recom-
mended to read the following manuals:
• TAC Xenta 280 - 300 - 401 Handbook, and
• TAC Xenta OP Handbook
1.3 Terminology
Term Description
TAC Xenta All programmable TAC Xentas, 280/300/401,
Devices will be called Xenta devices throughout this
manual.
When talking about the Xenta 511/911 and the
Xenta 901, we will use their proper names.
The Xenta 422, 452 etc. will be referred to as I/
O modules.
LonWorks All other devices will be called LonWorks
Devices devices, including the Xenta 100.
Classic Network Classic Network refers to a TAC Vista system
with a LonWorks network, TAC Xenta devices
and/or LonWorks devices, using an LTA port
connection/communication to the network and
no LNS database. A Classic Network does
NOT use any SNVT bindings.
LNS Network LNS Network refers to a TAC Vista system
with a LonWorks network, TAC Xenta devices
and/or LonWorks devices, using an LTA port
with a VNI as the Network Interface (NI) appli-
cation, LonMaker 3 and an LNS database. This
type of LTA port is referred to as an LNS port
in TAC Vista.
TAC Xenta A standard controller or a freely programmable
unit with a modular I/O configuration.
OP Operator Panel on the TAC Xenta device.
LonWorks™ The standardized network, used for communi-
cation between the TAC Xenta devices.
TAC Vista A PC based operator unit for the monitoring
and control of air handling and heating systems.
TAC Menta Application programming tool for TAC Xenta.
OP configuration Programming tool for the TAC Xenta Operator
toolpanel, included in TAC Menta.
ASCII American Standard Code for Information Inter-
change.
BMS Building Management System
HVAC Heating, Ventilation & Air Conditioning
Term Description
ID Plant specific names/descriptors of points etc.
I/O Input/Output
B Defines a physical terminal in a TAC Xenta
device, used for thermistor type inputs.
Cold Start Restart after a power outage which has lasted
longer than 72h, i.e. when the contents of the
RAM in the TAC Xenta are no longer reliable.
FB Function Block
FBD Function Block Diagram.
OP Configuration Programming tool for the TAC Xenta Operator
Tool panel, included in TAC Menta.
OP Operator Panel for the TAC Xenta controller.
SNVT Standard Network Variable Type, which
enables LonWorks™ network communication
between nodes from different manufacturers.
TAC Menta Application programming tool for TAC Xenta
controllers.
TAC Xenta A series of application specific standard con-
trollers (TAC Xenta 3000) and freely program-
mable controllers (TAC Xenta 300/401) with a
modular I/O configuration, and a slimmed-
down version (TAC Xenta 280) without I/O
configuration.
TAC Vista Tool for display and control.
U Defines a physical terminal in a TAC Xenta
device, used for universal type inputs.
Warm Start Restart after a power outage less than 72 h, that
is when the RAM content of the TAC Xenta is
still reliable.
X Defines a physical terminal in a TAC Xenta
device, used for digital type inputs.
Y Defines a physical terminal in a TAC Xenta
device, used for analog type outputs.
K Defines a physical terminal in a TAC Xenta
device, used for relay type outputs.
! Warning
Alerts you that failure to take, or avoid, a specific action might result
in physical harm to you or to the hardware.
Caution
Alerts you to possible data loss, breaches of security, or other more
serious problems.
Important
Alerts you to supplementary information that is essential to the com-
pletion of a task.
Note
Alerts you to supplementary information.
Tip
Alerts you to supplementary information that is not essential to the
completion of the task at hand.
FBD programming
User documentation
DI DO
The design phase starts with the overall structuring, that is identifying
the main functions and how to graphically locate these function groups
in relation to each other.
The grouping can be doen in several ways. The most important thing is
to make the FBD easy to understand. Function blocks that perform a
function together should preferrably be located together.
The second step is to graphically locate the groups. Create a left-to-right
logical sequence in the FBD, meaning that, if there is a connection
between two groups, placing a group that delivers an output, to the left
of a group that recieves an input. To standardize this, we recommend a
logical order from left-to-right: START CONDITION - STOP CONDI-
TION - GENERAL CONTROL - PID CONTROL SEQUENCES -
ALARM HANDLING.
Program header
STOP GENERAL PID CONTROL ALARM
START
CONDITION CONDITION CONTROL SEQUENCES HANDLING
When you locate blocks and groups, in accordance with the described
structure, use the following rules of thumb:
• Enter a framed comment containing the last edition date of the
FBD in the upper left corner. History notes, describing the revi-
sion, can also be included. Update this information whenever you
make a program revision.
• Try to structure every page so that the physical input blocks are
arranged in a column to the left, and the physical output blocks are
in a column to the right.
• Adjust the FBD to the page break lines, so that a printout will be
easy to read.
• Make space between the groups so that it will be possible to draw
extra connections and additional functions.
• Add new pages to the right when necessary, but try to use only one
page in a vertical direction.
• Mostly it will be convenient to use/locate connections like a bus
with common left-to-right connections at the top of the diagram.
Try to avoid connections running in the opposite direction. But
whenever necessary, put these connections in a separate bus at the
bottom of the page. Mark the direction of these signals.
1.7-9 1.6-9
1.7-6 1.6-6
1.7-10 1.6-10
Fan control Cooling/heating sequence
1.7-1 1.6-1
<<< <<<
1.7-12 1.6-12
1.7-4 1.6-4
1.7-11 1.6-11
1.7-7 1.6-7 1.7-3 1.6-3
1.7-8 1.6-8
1.7-2 1.6-2
1.7-5 1.6-5
• Reuse tested macro blocks from the Macro Block Library or your
own library as much as possible.
1ST _FLOOR
1ST_FLOOR_LW
2ND_FLOOR
Group Level
CONF_ROOM
LOBBY
RTU4
Device Level
RTU4 RTU4
Info
Binary
Analog
Application Level
The next string on the same line is the name of the application. The
abbreviation and the application name are entered using the Program
Specification form in TAC Menta.
The contents of the remaining lines in these device specific menu win-
dows are created when you use the OP configuration tool.
These menus only contain device specific information and will only be
available in the specific Xenta devices. The revised meny tree is only
downloaded to the actual Xenta device.
Lobby
RTU1
RTU3
RTU2
RTU4
Lobby
Conf_Room Engineering
Accounts
Support
Conference Room
VistaSrv_1
Lobby RTU4
Conf_Room
Second Floor
RTU4
Xenta 401
I/O-Modules
Xenta 452
Xenta 422
with a minimum value for the opening degree of the dampers. When the
unit is off, the dampers must close.
DX Cooling Control
Four chillers are to be be started/stopped in sequence and adjusted to the
actual cooling demand, where the cooling demand is a function of the
supply fan (VSD) speed, adjusted with regard to the discharge air tem-
perature and the maximum terminal load.
Each chiller stage is to have a defined minimum on and a minimum off
time to be in service. There must also be a delay between the start of
each chiller stage.
The chiller stages are to be started and stopped on the demand level
using hysteresis.
The first chiller stage is to be started and stopped on the demand level,
and the following three chiller stages may only start when Economizer
mode is off.
Separate alarms are to be provided for each chiller stage.
Zone Values for Presentation and Alarms.
The difference between the Effective Setpoint and the actual Space
Temperature for zones VAV_4:1, VAV_4:2, VAV_4:3, VAV_4:4,
VAV_4:5, and VAV_4:6 is to be calculated for graphic display and
alarms when levels exceed their limits.
I/O Alarms
There must be alarms when any expansion I/O module is offline and
when an I/O is manually forced.
Chiller energy consumption
Data for the chiller compressor’s energy consumption is to be totalled
up and stored on both an hourly and a daily basis.
Trend Log
A Trend Log of the Discharge Air Temperature is to be defined.
OP menu tree
An automatically generated menu tree for the Operators panel is to be
generated.
Downloading to a Xenta device
The finished application is to be downloaded to a Xenta 401 device
using RS232 connection.
System Configuration and Documentation
For our project, the system configuration has been prepared. This means
that the Xenta device and expansion I/O modules have already been
selected. All signals and alarms have also bee determined in respect of
where they are connected, and their names and alarm texts are given. At
the end of this chapter you find the following documentation for the
Xenta device:
• Devices
• I/O point Allocation, SNVTs (Network Variables)
• Alarms
• Public Signals
• Constants
• Constants Usage
• Time Schedules
• Block Parameters
The documentation is arranged the same way as a Menta-generated
Xenta document.
Zone Bypass Status VAV AHU Fan Start/Stop VAV AHU Fan VSD Control
Program Specification
We will also give the application a name and an abbreviation to be used
in the menus of an Operator Panel (OP).
3 Use Program specification under the Options menu and enter the
name RTU4 in the Name: box. Also use RTU4 also for the abbre-
viation and enter RTU4 in the ABBR: box.
For this application we will use the default cycle time of 1000 ms.
4 Check that the Cycle Time: box contains the value 1000.
For this application, we will use a number of blocks representing
SNVTs so we will make sure two boxes are checked.
5 Make sure that the following two boxes are checked.
• XIF-Header generated according to LonMark standard.
• Add new network variables (SNVT) last in the XIF file.
6 Right-click and select Comment ... to create a comment contain-
ing information on the name of the application, the author, perhaps
the version number and the most recent revision date. Frame the
comment by right-clicking and selecting Rectangle ... Locate the
comment in the upper left corner of the FBD diagram, thus making
it the first thing to appear each time the application is opened.
In the Public Signal Table, we will be able to see all signals made pub-
lic during the programming. These are the signals that can be seen in a
Vista and also signals that can be used in an OP menu tree design.
Note
Use the Online help or read Chapter 8, “Edit Mode” to learn more
about how to work in the Edit Mode of Menta.
Identifier VAV_4:1_Occ_Status
Unit
Description From FPB-4:1 Software
Public Yes
R/W (Acc.)
Backup No
Bound to SNVT
Type occupancy
Member
Name occupancy nvi4:1_Occ_Stat
Initial Value = 0
Poll No
Period: 60
Note
Use the Online help or read Section 14.3, “AI – Analog Input”to learn
more about the AI block.
Identifier VAV_4:2_Occ_Status
Description From FPB-4:2 Hardware
Type occupancy
Member
Name occupancy nvi4:2_Occ_Stat
Identifier VAV_4:3_Occ_Status
Description From FPB-4:3 Rio Grande
Type occupancy
Member
Name occupancy nvi4:3_Occ_Stat
Identifier VAV_4:4_Occ_Status
Description From FPB-4:4 R&D Services
Type occupancy
Member
Name occupancy nvi4:4_Occ_Stat
Identifier VAV_4:5_Occ_Status
Description From FPB-4:5 Software Dev.
Type occupancy
Member
Name occupancy nvi4:5_Occ_Stat
Identifier VAV_4:6_Occ_Status
Description From FPB-4:6 ASG
Type occupancy
Member
Name occupancy nvi4:6_Occ_Stat
Identifier VAV_Bypass
Unit Auto/Bypass
Description Any Terminal Unit in Bypass
Public Yes
R/W (Acc.)
Type Binary
Expression A=2|B=2|C=2|D=2|E=2|F=2
Note
Use the Online help or read Chapter 15, “Expressions” to learn more
about the EXPRESSION blocks.
each button is brief, the full name being shown on the status bar down
to the left.
Clicking any of the buttons to the left will open a dialog where you can
enter a value.
Since there is no point in following the values on the logger area, we
can click and press the separator and move it to the right. Alternatively,
you can double-click the separator to make it horizontal..
2 Click execute and observe the state (the gray field close to the out-
put) of the VAV_Bypass block (the XPB block). It should remain 0
(off) as all inputs are 0 (zero).
3 Click a button and enter a value of 1 followed by return (or click
outside the box). No change of the XPB block state is expected.
4 Repeat the procedure but enter a value of 2. The XPB block should
now show a state of 1 (On).
5 Enter a value of 3 and confirm that the state of the XPB returns to
0 (zero). Enter values for the other inputs, the XPB should remain
at 1 as long as at least one input has a value of 2.
Identifier SFan_Status
Unit
Description Supply Fan Status from VFD
Public Yes
R/W (Acc.)
Backup NO
Bound to Physical input
Mod Number M1
Term. Ref X1
Initial Value = Off
Normally Open = 1
Note
Use the Online help or read Section 14.14, “DI – Digital Input” to
learn more about the DI block.
Identifier Fan_Time_Sched
Unit
Description Fan Start Stop Time Schedule
Public Yes
R/W (Acc.)
Backup
Max Week Charts 4
Chart 1 Start 07:00
Chart 1 Stop 18:00
Chart 1 Weekdays MTWTF__
Max Holiday Charts 7
Holiday Chart 1 2002/5/27
Start Date
Holiday Chart 1 2002/5/27
Stop date
Holiday Chart 1 00:00
Start Time
Holiday Chart 1 00:00
Stop Time
Holiday Chart 1 MTWTFSS
1Weekdays
Holiday Chart 2 2002/12/24
Start Date
Holiday Chart 2 2002/12/25
Stop date
Holiday Chart 2 00:00
Start Time
Holiday Chart 2 00:00
Stop Time
Holiday Chart 2 MTWTFSS
1Weekdays
Holiday Chart 3 2002/11/21
Start Date
Note
Use the Online help or read Section 14.56, “TSCH – Time Schedule”
to learn more about the TSCH block.
Identifier SFan_MC
Unit -1/0/1/2
Description Manual control
Public Yes
R/W (Acc.) Yes
Backup Yes
InitValue = -1
Note
Use the Online help or read Section 14.41, “PVI – Integer Value
Parameter” to learn more about the PVI block.
Note
Use the Online help or read Section 14.18, “ERR – System Error”" to
learn more about the ERR block.
Identifier SFan_Start_Stop
Unit -1/0/1/2
Description Supply Fan Start Stop Circuit
Public Yes
R/W (Acc.) RO
Backup
Bound to Physical output (Digital output)
Mod Number M1
Term. Ref K1
Initial Value = Off
Normally Open = 1
Note
Use the Online help or read Section 14.15, “DO – Digital Output” to
learn more about the DO block.
Identifier Term_Unit_Occ_Cmd
Unit Occu/Unoc
Description Occupancy Command to Terminal Units
Public Yes
R/W (Acc.)
Backup
Bound to SNVT
Type occupancy
Member
Name occupancy nvoVAV_Occ
Initial Value = 1
Send Yes
Delta: 0.5
Period: 60
Note
Use the Online help or read Section 14.6, “AO – Analog Output” to
learn more about the AO block.
Identifier (Name)
Unit
Description
Public
R/W (Acc.)
Type Real/Integer/Binary
Expression A>-0.5
8 Connect the output of the SFan_MC block to the input of the XPB
expression block.
The alarm will be generated by an ALARM function block.
9 Locate SFan_MO, which is an ALARM type block, in the dia-
gram window, to the right of the XPB block. Then define the
block.
Identifier SFan_MO
Unit Normal/Alarm
Description Controlled manually
Public
R/W (Acc.)
Backup
Delay On 30
Delay Off 5
Priority 3
OP Alarm text Manual operation
Alarm Processing
Vista Alarm tripped Unit controlled manually
Vista Alarm reset Unit controlled manually
Note
Use the Online help or read Section 14.4, “ALARM – Alarm” to learn
more about the ALARM block.
10 Connect the output of the XPB block to the input of the SFan_MO
alarm block.
Time scheduled command
TSCH Fan_Time_Sched has a value which is either positive or nega-
tive, depending on whether or not the actual time lies within the defined
start and stop period(s). A standard way of decoding this is to use the
expression A<0 in an expression block of the XPB type.
11 Locate in the diagram window an XPB expression block, to the
right of the TSCH block Fan_Time_Sched.Then define the block
and enter the expression A<0.
Identifier
Unit
Description
Public
R/W (Acc.)
Type Binary
Expression A<0
12 Connect the output of the TSCH block to the input of the XPB
block.
Combining the Scheduled Start and Manual Mode
We want the Scheduled start to be logically combined with the opera-
tor's manual command mode. In this case, we use the two signals as
inputs to an expression block with a Boolean (logical) output, XPB type
block. We use the expression A<-0.5?b:A. This expression will create a
block with two inputs, A and b. Input A is an analog input and will be
connected to the PVI block SFan_MC. Input b is a logical input and we
use our decoded time schedule value by connecting the XPB block here.
Identifier
Unit
Description
Public
R/W (Acc.)
Type Binary
Expression A<-0.5?b:A
14 Connect the output of the XPB block decoding the time schedule
block to input b of the XPB block.
For input a we use the output of the PVI block SFan_MC.
15 Create a new node from the connection to the subsequent XPR
block and connect the new node to input A.
Delayed Start after Power Restore
It is specified that the unit is to have a start delay following a power
restore, if this occurs. To provide for this, we use a function block called
ERR. This function block has a numerical value that is dependent on the
type(s) of system error(s) within the Xenta device. In our case, we are
interested in the error that occurs after a power restore, i.e. the block will
have a value of 1, or an odd value if there are more alarms. We decode
this using the expression A&1, in an expression block giving a logical
output, i.e. a block of the XPB type.
16 Locate in the diagram window an ERR block, below the TSH
block.
17 Locate in the diagram window an XPB expression block, to the
right of the ERR block. Enter the expression A&1.
Identifier
Unit
Description
Public
R/W (Acc.)
Type Binary
Expression A&1
Identifier
Unit
Description
Public
R/W (Acc.)
Backup
Delay On 0
Delay Off 20
Note
Use the Online help or read Section 14.10, “DELAY – Delayed On/
Off” to learn more about the DELAY block.
The design created so far will give an output from the delay block that
is 1 (true) for 20 seconds after a power restore, otherwise 0 (false). For
our function, we require a signal that is normally 1 and 0 only following
a restart. We solve this by inverting the signal from the DELAY block.
19 Locate in the diagram window a NOT function block, to the right
of the DELAY block.
Note
Use the Online help or read Section 14.30, “NOT – NOT Gate” to
learn more about the NOT block.
20 Connect the output of the ERR block to the input of the XPB
block.
21 Connect the output of the XPB block to the input of the DELAY
block.
22 Connect the output of the DELAY block to the input of the NOT
block.
Combining Scheduled/Manual Start and Delayed Start
Now we have the logical signal representing the combined start as well
as the logical signal representing the delayed start. We combine these
using a function block of the AND type.
Note
Use the Online help or read Section 14.5, “AND – Logical AND Gate”
to learn more about the AND block.
24 Connect the output of the XPB block to the upper input of the
AND function block.
25 Connect the output of the NOT block (after the DELAY block) to
the lower input of the AND function block.
Our design should now look like this:
Designing TimedOverride
The command for having a run, controlled by a timer, is executed by set-
ting the variable TimedOverride to 1 (one).
The function block we use for the operator’s input is a DELB, a function
block that delays a logical state of program cycle.
26 Locate the TimedOverride, which is a DELB function block, in
the diagram window in the lower part of the FBD diagram area,
slightly to the left. Then define the block..
Identifier TimedOverride
Unit
Description Override Time Command
Public Yes
R/W (Acc.) RO
Backup Yes
Init Value 0
Note
Use the Online help or read Section 14.11, “DELB – Binary Value
Delay” to learn more about the DELB block.
When the operator enters state 1 for the block, this will only last for one
second so we will have to detect this operation. We use a function block
called TRIG for this. When this block is defined to operate in mode 0,
it will be true on the transition from zero to one [of the input].
27 Locate in the diagram window a TRIG function block, to the right
of the DELB TimedOverride block. Then define the block.
Identifier
Unit
Description
Public
R/W (Acc.)
Backup
Mode 0
Note
Use the Online help or read Section 14.55, “TRIG – Trigger” to learn
more about the TRIG block.
28 Connect the output of the DELB function block to the input of the
TRIG function block.
The adjustable timer period, the OverrideTime, is determined by a func-
tion block of the PVR type.
Identifier OverrideTime
Unit Minutes
Description Override Timer time
Public Yes
R/W (Acc.) RW
Backup
InitValue 120
Note
Use the Online help or read Section 14.42, “PVR – Real Value Param-
eter” to learn more about the PVR block.
Now we need a something to react to the input pulse(s) and also perform
a countdown calculation of the elapsed time.
Here we use an expression block with an analog output, XPR. An
expression like a?(D>0?0:B):D>0?D-(1/60):0 will give an XPR block
with three inputs, a, B, and D. Block a contains a binary input to which
we connect the command pulse. B is an analog input and the input to
which we connect the OverrideTime setting value. D is an analog input
to which we connect a value which is counted down during the timed
override.
30 Locate the Timer, which is an XPR expression block, in the
diagram window, to the right of the TRIG block. Then define
the block and enter the expression a?(D>0?0:B):D>0?D-(1/
60):0
Identifier Timer
Unit Minutes
Description Timer time remaining
Public Yes
R/W (Acc.)
Type Real
Expression a?(D>0?0:B):D>0?D-(1/60):0
Identifier
Unit
Description
Public No
R/W (Acc.)
Backup
InitValue 0
Note
Use the Online help or read Section 14.13, “DELR – Real Value
Delay” to learn more about the DELR block.
Note
Use the Online help or read Section 16.4, “Comparison” to learn more
about the Greater than block.
Identifier
Unit
Description
Public
Mode 2
Value 0
Note
Use the Online help or read to Section 16.1, “Constants” to learn more
about the Real const block.
38 Create a new node from the output of the XPR block and connect
it to the horizontal input of the Greater than operator.
39 Connect the output of the Real const operator to the vertical input
of the Greater than operator.
Combining TimedOverride, Timeschedule and Manual
Command
We can now combine this timer signal with the previously prepared sig-
nal. We do this using an OR function block.
40 Locate in the diagram window an OR function block, to the right
of the AND block combining error delay and time scheduled start.
Note
Use the Online help or read Section 14.32, “OR – OR Gate”to learn
more about the OR block.
41 Connect the output of the AND block to the upper input of the OR
function block.
42 Connect the output of the Greater than operator to the lower input
of the OR function block.
Our design so far will not handle the situation when the operator has
manually ordered the unit to be Off (the value of Sfan_MC is 0).
We will do this by introducing an expression block that detects a value
zero and transforms it into a logical state. We also require a signal for
the normal situation, i.e. when the manual command is something other
than zero in order to have a true state.
43 Locate in the diagram window an XPB expression block, above
both the AND block and the OR block. Then define the block and
enter the expression A=0.
Identifier
Unit
Description
Public
R/W (Acc.)
Type Binary
Expression A=0
51 Create a new node from the last AND function block output sig-
nal. Connect the signal to the lower input of the created OR func-
tion block.
52 Connect the output of the VAV_Bypass block to the upper input of
the OR block. The VAV_Bypass block is located on the FBD page,
to the left.
Designing the Proofing Function (latching).
The proofing function will prevent the unit from running and create an
alarm, if the Fan state indication is not received within 30 seconds.
The delay (and counting) is done using a DELAY function block.
The latching function is obtained using an SR function block together
with two TRIG function blocks, one connected to each input.
The first step is to arrange for the signal that is to be connected to the-
actual fan start/stop block. We combine the start signal with a fault sig-
nal in an AND block. This is done so that a start will only be ordered
when there are no faults.
53 Locate in the diagram window an AND function block on the FBD
area, to the right of our most recent OR block.
54 Locate in the diagram window a NOT function block, above the
AND function block.
55 Connect the output from the OR function block to the lower input
of the AND function block.
56 Connect the output of the NOT function block to the upper input
of the AND function block.
57 Locate again in the diagram window an AND function block, not
too close to, as well as to the right of, our last AND block.
58 Locate in the diagram window another NOT function block,
above the AND function block,
59 Connect the output from the AND function block to the left to the
lower input of the new AND function block.
60 Connect the output of the NOT function block to the upper input
of the AND function block.
61 Connect the output from the SFan_Status block (DI block) to the
input of the NOT function block.
62 Create a new node and connect the output from the left AND func-
tion block to the input of the Sfan_Start_Stop block (DO, located
to the right in the diagram).
Identifier
Unit
Description
Public
R/W (Acc.)
Backup
Delay On 30
Delay Off 0
64 Connect the output from the AND function block to the input of
the DELAY function block.
65 Locate in the diagram window a TRIG function block, to the right
of the DELAY function block. Then define the block.
Identifier
Unit
Description
Public
R/W (Acc.)
Backup
Mode 1
66 Connect the output from the DELAY function block to the input of
the TRIG function block.
67 Locate in the diagram window an SR type block, to the right of the
TRIG function block. Then define the block.
Identifier
Unit
Description
Public
R/W (Acc.)
Backup
InitValue 0
Note
Use the Online help or read Section 14.51, “SR – Set-Reset Flip-Flop”
to learn more about the SR block.
68 Connect the output from the TRIG function block to input s of the
SR function block.
Identifier
Unit
Description
Public
R/W (Acc.)
Backup
Mode 1
70 Connect the output from this TRIG function block to input r of the
SR function block.
71 Locate in the diagram window a NOT function block, to the left of
the lower TRIG function block.
72 Connect the output from the NOT function block to the input of
the lower TRIG function block.
73 Connect the output from the left OR function block to the input of
the NOT function block.
74 Locate SFan_Alarm, an ALARM type function block in the dia-
gram window, to the right of but not too close to the SR function
block. Then define the block.
Identifier SFan_Alarm
Unit Normal/Alarm
Description SFan Status Alarm
Public
R/W (Acc.) RO
Backup
Delay On 2
Delay Off 0
Priority 1
OP Alarm text SFan Alarm
Alarm Processing
Vista Alarm tripped SFan Status Alarm 2nd Floor South
Vista Alarm reset SFan Status Alarm 2nd Floor South Return to
normal
75 Create a new node and connect the output from the SR function
block to the input of the leftmost NOT function block.
Identifier SFAN_Hand_Alarm
Unit Normal/Alarm
Description Hand control supply air fan
Public
R/W (Acc.)
Backup
Delay On 20
Delay Off 0
Priority 3
OP Alarm text SFan Manually-operated
Alarm Processing
Vista Alarm tripped Hand control supply air fan, the unit serves 2nd
Floor South
Vista Alarm reset Hand control supply air fan, the unit serves 2nd
Floor South
78 Connect the output from the AND function block to the input of
the ALARM function block.
79 Create a new node and Connect the output from the SFan_Status
function block (DI, located to the left in the diagram) to the upper
input of the AND function block.
For the other input to the AND block, we want a logical true when the
control signal is false. We have to invert the signal.
80 Locate in the diagram window a NOT function block, below the
AND function block,
81 Connect the output of the NOT function block to the lower input
of the AND function block.
82 Create a new node on the connection to the SFAn_Start_Stop
function block (DO, located to the right in the diagram), and con-
nect it to the input of the NOT function block.
Designing the Terminal Occupancy Command signal
The occupancy command is the result of two signals, the
SFan_Start_Stop and the complete time schedule result (including
TimedOverride and manual override).
83 Locate in the diagram window an AND function block, to the right
of the Term_Unit_Occ_Cmd block (AO, located on the right of the
page). Leave ample space between the blocks, as we are going to
put more blocks in between them.
84 Create a new node and connect the signal connected to the
SFAn_Start_Stop function block (DO, located to the right of the
diagram) to the upper input of the AND function block.
85 Create a new node and connect the signal from the AND function
block, representing the complete time schedule result, tothe lower
input of the AND function block.
86 Locate in the diagram window a NOT function block, to the right
of the AND function block.
87 Connect the output of the AND function block to the input of the
NOT function block.
The signal (output) from the NOT function block is a Boolean state
(true/false). We want to connect it to our Term_Unit_Occ_Cmd func-
tion block, which is of the analog type. A connection like this is not
allowed in Menta, so we will have to change the type of the output sig-
nal.
88 Locate in the diagram window an D/A converter operator, to the
right of the NOT function block.
Note
Use the Online help or read Section 16.6, “Others” to learn more about
the D/A converter block.
89 Connect the output of the NOT function block to the input of the
D/A converter function block.
90 Connect the output of the D/A converter operator block to the
input of the Term_Unit_Occ_Cmd (AO function block).
Assigning Module Name "Sfan"
The function blocks on this FBD printable page are a set of signals we
want to treat as signals in a common module called SFan.
91 Mark all blocks on the FBD page and assign them the module
name SFan.
When finished, this page should look like this:
text shown on each button is brief, the full name is shown on the state
bar down to the left.
To fully open the window to show the FBD, we can click and press the
separator of the logger window and move the separator toward the right.
Start of Testing when a Zone is in Bypass
The unit must start when one Zone or more is in bypass. We arrange this
the same way we did during our first test.
2 Click any Term_Units.... button and enter a value of 2 followed
by return (or click outside the box).
3 Click the Step button and observe the state of the OR function
block in front of the SFan_Alarm line. It should be 1 (on). Also
observe the DO block called SFan_Start_Stop. It should also be 1
(on).
Testing the Sfan_Alarm
Testing that an alarm is generated and latching when the Sfan_Status
signal is not received can be done as follows.
4 Click execute and observe the value/state of the ALARM block. in
the gray field close to the output. It should be 1 (on) and the DO
block SFan_Start_Stop should be 0 (off) after a short period.
Alternatively you can Click the Step button 33 times, givning con-
trol over the delay before the alarm.
5 Click the SFan\SFan_Status button to the left to simulate the
indication and observe the state of the ALARM block. If you pre-
viously used the step button, be sure to step again.
There will still be an alarm condition. The alarm will not be restored
until the order to start is restored to zero.
6 Click the same Term_Units.... button as before and enter a value
of 0 and observe the state of the ALARM block. If you previously
used the step button, be sure to step again. The alarm should now
have been restored.
Testing SFan_Hand_Alarm
Testing SFan_Hand_Alarm can be done as follows.
7 Click RST with all Term_Units...buttons 0 while keeping the
SFan\SFan_Status button depressed. The cycle counter will be
restored to 0.
8 Click the Step button 21 times and observe the value/state of the
ALARM block. It should be 1 (on) after being stepped.
9 Release the SFan\SFan_Status button and Step again. The alarm
should be restored immediately.
19 Click the Sfan_Status button to eliminate the alrm and the latch-
ing.
20 Click the Click the SFan_MC block to display the MODIFY
menu. Enter a value of +1 to order the Hand mode.
21 Click Step (or Execute) and observe the DO SFan_Start_Stop
block. It should be 1 (on) immediately. Also observe the
Sfan_Hand ALARM. It should be 1 (on) after 30 execution inter-
vals.
22 Click the SFan_MC block to display the MODIFY menu. Enter a
value of -1 to order Auto mode again. Observe the DO
SFan_Start_Stop block, it should return to 0 (off) immediately.
The Sfan_Hand ALARM should be restored to 0 (off) after 5 exe-
cution intervals.
Testing the Off mode.
23 Keep the SFan\SFan_Status button depressed to eliminate the
alarm and the latching.
24 Click the SFan_MC block to display the MODIFY menu. Enter a
value of 0 to order Off mode.
25 Click Step (or Execute) and observe the DO SFan_Start_Stop
block. It should be 0 (off). Also observe the Sfan_Hand ALARM.
It should be 1 (on) after 30 execution intervals.
26 Use the command Options/Set Date and Time ... and enter a time
within the defined period 07:00 18:00. Make sure the weekday is
not Saturday or Sunday.
27 Click Step (or Execute) and observe the DO SFan_Start_Stop
block. It should remain 0 (off).
28 Click any Term_Units.... button and enter a value of 2. Observe
the Testing the Terminal unit Occupancy command.
Testing this via simulation only entails checking the generation and the
value of the signal.
29 Click RST with all Term_Units...buttons 0 while keeping the
SFan\SFan_Status button depressed. The cycle counter will be
restored to 0 and the simulator Real Time Clock will be reset to the
startup values.
30 Keep the SFan\SFan_Status button depressed to eliminate the
alarm and the latching.
31 Click Step (or Execute) and observe the value of the
Term_Unit_Occ_Cmd block (the AO block). It should be 1 (on).
32 Use the command Options/Set Date and Time... and enter a time
within the defined period 07:00 18:00. Make sure the weekday is
not Saturday or Sunday.
Identifier Mod3
Unit Offline/Online
Description I/O Module 3 Communication Status
Public Yes
R/W (Acc.) RO
Backup NO
Bound to Online Device
Device Address 3
Initial Value = Off
Identifier Static_Press_Sensor
Unit "wc
Description
Public No
R/W (Acc.)
Backup
Bound to Linear Analog Input
Mod Number M3
Terminal ref. U1
Sensor Sensor=2..10V
Time Const: 0
Initial Value: 0
Min Value: 0
Max. Value: 5
Identifier VSD
Unit
Description VSD AO
Public Yes
R/W (Acc.)
Backup
Bound to Physical output
Type
Mod Number M3
Terminal ref: Y1
Initial Value = 0
Voltage 0% 0
Voltage 100% 10
Identifier Static_Press_Offset
Unit "wc
Description Offset for Calibration of Static Press
Public
R/W (Acc.) RW
Backup
InitValue 0
Identifier Static_Pressure
Unit "wc
Description Supply Air Static Pressure
Public Yes
Mode 2 Yes
Note
Use the Online help or read Section 16.3, “Math Operators” to learn
more about the Addition block.
Identifier Duct_Static_SF
Unit Normal/Alarm
Description Sensor failure Duct Static sensor
Public
R/W (Acc.)
Backup
Delay On 120
Delay Off 120
Priority 3
OP Alarm text Sensor failure Duct Static
Alarm Processing
Vista Alarm tripped Sensor failure Duct Static sensor
Vista Alarm reset Sensor failure Duct Static sensor return to nor-
mal
Identifier Mod_3_Offline
Unit Normal/Alarm
Description Module 3 Loss comm alarm
Public
R/W (Acc.)
Backup
Delay On 60
Delay Off 0
Priority 9
OP Alarm text MOD3_ALARM
Alarm Processing
Vista Alarm tripped MOD3 Loss Comm Alarm
Vista Alarm reset MOD3 Comm Return to Normal
Note
Use the Online help or read Section 14.39, “PULSE – Pulse Genera-
tor” to learn more about the PULSE block.
Identifier
Unit
Description
Public No
R/W (Acc.) RO
Backup No
Init Value 1
18 Connect the output of the DELB block to input t (the trigger input)
of the PULSE function block.
The sample rate, that is the periods when control is calculated, is deter-
mined by the value of a PVR function block.
19 Locate Sample_Rate, a PVR type function block, in the diagram
window, to the left of the PULSE block and below the DELB
block. Then define the block..
Identifier Sample_Rate
Unit Seconds
Description Sample interval
Public No
R/W (Acc.) R/W
Backup No
InitValue 4
Control is conditional upon Sfan Status (input a); if the status is off, the
control output signal will be 0 (zero).
During control, the control output is recalculated at each sample.
Between the samples the output signal is kept at the previous level
(input G).
For a deviation where the pressure is too high by more than twice the
level of the setpoint, the control output level will be decreased by a
value three times the Change per Scan.
This is expressed in the B>2*D?3*-F part of the algorithm.
For a deviation where the pressure is too high by over half the Dead-
band, the control output level will be decreased by a value equal to the
Change per Scan.
This is expressed in the B>D+E/2?-F part of the algorithm.
For a deviation where the pressure is too low by over half the Dead-
Band, the control output level will be increased by a value equal to the
Change per Scan (at present 2 %).
This is expressed in the B<D-E/2?F part of the algorithm.
The expression can be viewed like this:
a? ;Fan Status on?
c? ;if sampled
(B>2*D? ;if pressure more than twice the SP
3*-F: ;subtract three times the bump amount
B>D+E/2? ;if pressure more than half the deadband above the SP
-F: ;subtract the bump amount
B<D-E/2? ;if pressure less than half the deadband below the SP
F: ;add the bump amount
0) ;pressure is within the deadBand, add zero.
+G: ;when sampled add previous value
G: ;not sampled, use previous value
0 ;Fan Status is off, use zero.
Actually, the expression can be written in a block like the above for bet-
ter readability. The result, however, will be a much vertically larger
symbol.
24 Locate in the diagram window an XPR expression block contain-
ing the above expression, horizontally approximately in the mid-
dle and vertically approx. one third from the bottom of the
printable page. Then define the block and enter the expression
a?c?(B>2*d?3*-F:B>D+E/2?-F:B<D-E/2?F:0)+G:G:0.
Identifier
Unit
Description
Public
R/W (Acc.)
Type Real
Expression a?c?(B>2*d?3*-F:B>D+E/2?-F:B<D-E/
2?F:0)+G:G:0
The setpoint, the dead-band, and the change each scan for the control of
the discharge air pressure are determined by the value of three PVR
function blocks.
25 Locate DAP_SP, a PVR type function block in the diagram win-
dow, to the left of the XPR function block. Then define the block..
Identifier DAP_SP
Unit "wc
Description Setpoint discharge air pressure
Public Yes
R/W (Acc.) R/W
Backup Yes
InitValue 1
Identifier Dead_Band
Unit "wc
Description Dead Band Discharge Air Pressure
Public No
R/W (Acc.) R/W
Backup No
InitValue 0.2
Identifier Chg_Per_Scan
Unit %
Description % Speed change per scan
Public No
R/W (Acc.) R/W
Backup No
InitValue 2
Identifier
Unit
Description
Public No
R/W (Acc.)
Backup Yes
InitValue 0
34 Connect the output of the XPR function block to the input of the
DELR function block.
35 Locate in the diagram window a LIMIT type function block, to
the right of the DELR function block. Then define the block.
Identifier
Unit
Description
Public
R/W (Acc.)
Backup
MinValue = 0
MaxValue = 100
Note
Use the Online help or read Section 14.24, “LIMIT – High/Low Signal
Limit” to learn more about the LIMIT block.
36 Connect the output of the DELR function block to the input of the
LIMIT function block.
37 Create a new node and connect the signal from SFan_Status (the
DI in the AHU Fan Start Stop design, the FBD page to the left) to
input a of the XPR function block.
With the exception of the feedback signal, this concludes our design for
calculating the control signal value. It is either this value or a fixed value
that will be used by the application. Which one is used will depend on
the operating conditions..
We use a PVR function block to provide the fixed value.
38 Locate Startup_Value, a PVR type function block, in the diagram
window, above the LIMIT function block. Then define the block.
Identifier StartUp_Value
Unit
Description Value During Start Up
Public Yes
R/W (Acc.) RW
Backup Yes
InitValue 50
Choosing between the values of these two blocks is initially done using
an analog multiplexer as signal selector controlled by a binary signal.
39 Locate in the diagram window an Analog mux operator, to the
right of the LIMIT block and the Startup_Value block. Locate the
block midways.
Note
Use the Online help or read Section 16.6, “Others” to learn more about
the Analog mux block.
Identifier StartUp_Time
Unit
Description Start Up Timer Time Period
Public Yes
R/W (Acc.) Yes
Backup Yes
InitValue 300
Note
You can use Commands/Execute n Times... and enter, for example,
a value of 119. Continue by manually pressing the Step button until
you see the change.
Click the Step button a number of times, and observe the NOT block
located to the right of the PULSE block. The NOT block should change
state to 1 (on) repeatedly, every five execution intervals.
Testing the First Start Interval Timer
11 Click RST. The cycle counter will be restored to 0. Observe the
state of the PULSE block in the center of the FBD page. It should
be 0 (zero).
12 Click Execute and observe the state of the PULSE block again. It
should remain at zero.
13 Click the SFan\SFan_Status button to the left to simulate the
Sfan state and observe the state of the PULSE block again. It
should change to 1 (on) immediately and return to 0 (off) after 300
execution intervals.
Testing the Control Signal
14 Click RST. The cycle counter will be restored to 0.
15 Click Execute button and observe the value of the VSD block to
the right (the AO block). It should start with a value of 0 for 59
execution intervals and after that, change to 50. This level depends
on the Mod3 alarm situation.
16 Click the SFan\SFan_Status button to the left to simulate the
Sfan state and observe the value of the VSD block again. It should
change to 50 and remain for the startup period of 300 execution
intervals.
17 Click the VSD\Static_Press_Sensor button to the left to display
an Analog input form for entering a value. Enter a value within the
alarm range (-1, 5.0). The setpoint is 1.0 so we enter a value of 2
and observe the value of the VSD block. It should be counting
down from the previous 50. At 0, it should stop.
18 Click Execute and click Step a couple of times to see the value of
the XPR block. It will be calculating negative values but they will
not be transferred to the output due to the LIMIT block.
19 Click the VSD\Static_Press_Sensor button and enter a value
below the setpoint. Enter for instance a value of 0.5 and observe
the value of the VSD block. It should now be counting up from the
previous level. At 100, it should stop.
20 Click the VSD\Static_Press_Sensor button and enter a value
within the deadzone 0.2. Enter, for instance, a value of 0.9 and
observe the value of the VSD block. It should now remain steady
at the previous level.
21 Click the VSD\Static_Press_Sensor button and enter a value
within the deadzone 0.2. Enter, for instance, a value of 1.1 and
observe the value of the VSD block again. It should still remain at
the previous level.
Identifier Bldg_Static
Unit "wc
Description Bldg static pressure sensor
Public No
R/W (Acc.)
Backup No
Bound to Linear Analog Input
Mod Number M3
Terminal ref. U4
Sensor 2-10 V
Time Const: 0
Initial Value: .05
Min Value: -0.25
Max. Value: 0.25
Identifier Relief_Air_Dmprs_Do
Unit %Opn
Description Relief Air Dampers Output
Public No
R/W (Acc.)
Backup
Bound to Digital Pulse output
Mod Number M1
Term. Ref K3
Initial Value = 0
Min. Pulse 0.1
Note
Use the Online help or read Section 14.16, “DOPU – Digital Pulse
Output” to learn more about the DOPU block.
Identifier Relief_Fan
Unit
Description Relief Fan Start/Stop Circuit
Public Yes
R/W (Acc.)
Backup
Bound to Physical output (Digital output)
Mod Number M1
Term. Ref K2
Initial Value = Off
Identifier Bldg_Static_Offset
Unit "wc
Identifier Bldg_Static
Unit "wc
Description Calibrated Bldg Static
Public Yes
Mode 2 No
Identifier
Unit
Description
Public No
R/W (Acc.)
Type Binary
Expression A<-0.3|A>0.3
Identifier Bldg_Static_SF
Unit Normal/Alarm
Description Sensor failure Bldg Static sensor
Public
R/W (Acc.)
Backup
Delay On 120
Delay Off 120
Priority 3
OP Alarm text Sensor failure Bldg Static 2S
Alarm Processing
Vista Alarm tripped Sensor failure Bldg Static sensor 2nd Floor
South
Vista Alarm reset Sensor failure Bldg Static sensor 2nd Floor
South return to normal
Identifier Bldg_Static_Lo_AlmSP
Unit "wc
Description Low Alarm Limit for Bldg Static
Public No
R/W (Acc.) Yes
Backup Yes
InitValue -0.1
Identifier
Unit
Description
Public
R/W (Acc.)
Type Binary
Expression c?0:A<B
Identifier Bldg_Static_Low
Unit Normal/Alarm
Description Low Bldg Static Alarm
Public
R/W (Acc.)
Backup
Delay On 120
Delay Off 120
Priority 3
OP Alarm text Low Bldg Static 2S
Alarm Processing
Vista Alarm tripped Low Bldg Static 2nd Floor South
Vista Alarm reset Bldg Static 2nd Floor South return to normal
Identifier Bldg_Static_Hi_AlmSP
Unit "wc
Description High Alarm Limit for Bldg Static
Public No
R/W (Acc.) Yes
Backup Yes
InitValue 0.1
Identifier
Unit
Description
Public
R/W (Acc.)
Type Binary
Expression A>B
Identifier Bldg_Static_High
Unit Normal/Alarm
Description High Bldg Static Alarm
Public
R/W (Acc.)
Backup
Delay On 120
Delay Off 120
Priority 3
OP Alarm text High Bldg Static 2S
Alarm Processing
Vista Alarm tripped High Bldg Static 2nd Floor South
Vista Alarm reset Bldg Static 2nd Floor South return to normal
Identifier
Unit
Description
Public
R/W (Acc.) Yes
Backup Yes
Time Constant 10
26 Create a new node and connect the signal from the Bldg_Static
(the Addition operator) to the input of the FILT function block.
Our design, so far, should look something like this:
Identifier
Unit
Description
Public
R/W (Acc.)
Backup
ControlInt 30
Umin 0
Umax 100
Stroke Time 0
Note
Use the Online help or read Section 14.34, “PIDA – PID Controller –
Analog Output” to learn more about the PIDA block.
Identifier Bldg_Static_SetPoint
Unit "wc
Description Bldg Static Pressure Setpoint
Public
R/W (Acc.)
Backup
InitValue .05
Identifier Bldg_Static_PG
Identifier Bldg_Static_Int_TC
Unit seconds
Description Bldg Static Integral Time Constant
Public Yes
R/W (Acc.) Yes
Backup Yes
InitValue 1000
Note
Use the Online help or read Section 16.3, “Math Operators” to learn
more about the Negate block.
Identifier
Unit
Description
Public
Mode 2 Yes
Value 0
36 Connect the output of the Real const to input Td of the PIDA func-
tion block.
37 Locate in the diagram window another Real const operator to the
left of the PIDA function block. Then define the block.
Identifier
Unit
Description
Public
Mode 2 No
Value 0
Identifier
Unit
Description
Public
R/W (Acc.)
Type Integer
Expression b?2:a?1:3
40 Create a new node and connect the output signal from the
Sfan_Status block DI block on the Fan Start Stop logic part of the
FBD) to input a of the XPI function block.
41 Connect the output signal from the Bldg_Static_SF block to input
b of the XPI function block.
42 Connect the output signal from the XPI function block to input
Mod of the PIDA function block.
Identifier Relief_Air_Dampers
Unit % Open
Description Relief Air Dampers
Public Yes
Mode 2
44 Create a new node and connect the signal to the VSD (the DO
block on the VSD Control FBD page) to the upper horizontal input
(1) of the Analog mux operator.
45 Connect the output of the PIDA function block to the lower hori-
zontal input (0) of the Analog mux operator.
46 Create a new node and connect the output signal from the
Mod_3_Offline (alarm block on the VSD Control FBD page) to
the control input of the Analog mux operator block (the vertical
one).
We can now also connect the tracking signal to input Tsg of the PIDA
controller.
47 Create a new node and connect the output signal from the PIDA
block to input Tsg of the same PIDA function block.
The added part of our design, so far, should look something like this:
Identifier
Unit
Description
Public
R/W (Acc.)
Backup
ControlInt 10
Stroke Time 5.2
Note
Use the Online help or read Section 14.35, “PIDI – PID Controller –
Incremental Output” to learn more about the PIDI block.
Identifier
Unit
Description
Public
Mode 2 Yes
Value 0
Identifier
Unit
Description
Public
Mode 2 Yes
Value 1
Identifier
Unit
Description
Public
Mode 2 Yes
Value -1
Identifier
Unit
Description
Public
Mode 2 Yes
Value 0
Identifier
Unit
Description
Public
Mode 2 Yes
Value 0
Identifier Relief\MAT_DZ
Unit
Description
Public
Mode 2 Yes
Value 0
From the top downward, connect the input parameter blocks (the Real
constants) to the controller block.
51 Connect the upper Real const operator (Value = 0) to input SP
(Setpoint) of the PIDI function block.
52 Connect the next Real const operator (Value = 1) to input Mod
(Mode) of the PIDI function block.
53 Connect the next Real const operator (Value = -1) to input G
(Gain) of the PIDI function block.
54 Connect the next Real const operator (Value = 0) to input Ti (Inte-
gration time constant) of the PIDI function block.
55 Connect the next operator Real const (Value = 0) to input Td (Der-
ivation time constant) of the PIDI function block.
56 Connect the MAT_DZ const (Value = 0) to input DZ (DeadZone)
of the PIDI function block.
As measurement value, we use either the previous determined value, or
a value of two, or a value of zero. The value is entered into the input for
a period of 11 seconds with a pause lasting the same amount of time.
The value of two is entered during periods when the calculated value is
below 1.0. The value of zero is entered during the pauses.
Selecting which value to input is achieved here using an expression
block with an analog output XPR.
In the block we will use the feature that Menta during evaluation of the
expression converts the a, which is a logical (binary) state i.e. on or off
(1 or logical zero), is converted to real 1 or real zero. Thus we will have
a multiplication with the a resulting in either a value of zero or the con-
ditionally calculated value (B or 2).
Identifier
Unit
Description
Public
R/W (Acc.)
Type Real
Expression a*(B>1?B:2)
Identifier
Unit
Description
Public
R/W (Acc.)
Backup
Init Value 0
Identifier
Unit
Description
Public
R/W (Acc.)
Backup
Delay On 10
Delay Off 10
Identifier
Unit
Description
Public
R/W (Acc.)
Backup
Delay On 600
Delay Off 10
Identifier
Unit
Description
Public
R/W (Acc.)
Backup
Init Value 0
70 Connect the output of the DELB function block to the input of the
DELAY function block.
71 Locate in the diagram window an XPB expression block to the left
of the DELB function block. Enter the expression
d?0:c&A>99&B>0.06?1:A<40&B<-0.01?0:z. This expression
will create an expression block with five inputs. Here input A rep-
resents the value calculated by the PIDA controller block. Input B
represents the filtered measurement value of the building static
pressure. Input c represents the fan state indication. Input d repre-
sents the static pressure alarm. Input z represents a previous binary
state of the expression and is used for latching the process.
Identifier
Unit
Description
Public
R/W (Acc.)
Type Binary
Expression d?0:c&A>99&B>0.06?1:A<40&B<-0.01?0:z
72 Connect the output of the XPB expression block to the input of the
DELB function block.
73 Create a new node and connect the output signal from the PIDA
controller block to input A of the XPB expression block.
74 Create a new node and connect the output signal from the FILT
function block to input B of the XPB expression block.
75 Create a new node and connect the Fan Status signal to input c of
the XPB expression block. This signal is also used in the EXP
block to determine the Mod of the PIDA controller block.
76 Create a new node and connect the output signal from the
Bldg_Static_SF ALARM block to input d of the XPB expression
block.
77 Create a new node and connect the output of the DELAY function
block to input z of the XPB expression block.
When completed, the additional part should look like this:
Note
It might be more easier to see the brief duration of the values using the
Step button instead of the Execute button.
Note
You can shorten the waiting time by clicking the PIDA block and
entering a value close to 100.
23 Observe the XPB block below the PIDA block. It should change to
1 (on) when the signal level from the PIDA reaches a level of 100.
24 Observe the DELAY block and the Relief_Fan block; they should
change to state 1 (on) after 600 execution intervals.
25 Click the Relief\Bldg_Static button and enter a value of 0.04.
Wait for the PIDA block to reach a level of 40.
26 Click the Relief\Bldg_Static button and enter a value of -0.015.
Observe the XPB block and the Delay block. The XPB block
should change to 0 (off) immediately, and the Relief_Fan block
should change to 0 (off) after 10 execution intervals.
Identifier OA_Temp
Unit °F
Description Outside Air Temperature
Public No
R/W (Acc.)
Backup No
Bound to Non-Linear Analog Input
Mod Number M3
Terminal ref. B4
Sensor TAC Termistor (°F)
Time Const: 0
Initial Value: 70
Identifier OAHumiditySen
Unit %RH
Description Outside Air Humidity
Public No
R/W (Acc.)
Backup No
Bound to Linear Analog Input
Mod Number M5
Terminal ref. U1
Sensor 0..10V
Time Const: 0
Initial Value: 50
Min Value: 0
Max. Value: 100
Identifier RAT_Sensor
Unit °F
Description Return Air Temperature Sensor
Public No
R/W (Acc.)
Backup No
Identifier RAT_Offset
Unit °F
Description Offset for Calibration of RAT
Public Yes
R/W (Acc.) Yes
Backup Yes
InitValue 0
Identifier RAT
Unit °F
Description Calibrated RAT
Public Yes
Mode 2
Identifier RAT_SF
Unit Normal/Alarm
Description Sensor failure return air sensor
Public
R/W (Acc.)
Backup
Delay On 120
Delay Off 120
Priority 3
OP Alarm text Sensor failure RAT
Alarm Processing
Vista Alarm tripped Sensor failure return air sensor 2nd Floor South
Vista Alarm reset Sensor failure return air sensor 2nd Floor South
return to normal
Identifier RAT_LowAlarm
Unit °F
Description Low Alarm Limit for RAT
Public No
R/W (Acc.) Yes
Backup Yes
InitValue 50
Identifier RAT_Low
Unit Normal/Alarm
Description Low return air temp alarm
Public
R/W (Acc.)
Backup
Delay On 120
Delay Off 120
Priority 3
OP Alarm text Low RAT
Alarm Processing
Vista Alarm tripped Low return air temperature 2nd Floor South
Vista Alarm reset Return air temperature 2nd Floor South return
to normal
Identifier RAT_HighAlarm
Unit °F
Description High Alarm Limit for RAT
Public
R/W (Acc.) Yes
Backup Yes
InitValue 80
Identifier RAT_High
Unit Normal/Alarm
Description High return air temp alarm
Public
R/W (Acc.)
Backup
Delay On 120
Delay Off 120
Priority 3
OP Alarm text High RAT
Alarm Processing
Vista Alarm tripped High return air temperature 2nd Floor
Vista Alarm reset Return air temperature 2nd Floor South return
to normal
Identifier RAHumiditySen
Unit %RH
Description Return Air Humidity Sensor
Public No
R/W (Acc.)
Backup No
Bound to Linear Analog Input
Mod Number M3
Terminal ref. U2
Sensor 2..10 V
Time Const: 0
Initial Value: 50
Min Value: 0
Max. Value: 100
Identifier OAT_Offset
Unit °F
Description Offset for calibration of OAT
Public Yes
Identifier OAT
Unit °F
Description Calibrated OAT
Public Yes
Mode 2
Identifier
Unit
Description
Public
R/W (Acc.)
Type Binary
Expression A<-491|A>266
Identifier OAT_SF
Unit Normal/Alarm
Description Sensor failure return air sensor
Public
R/W (Acc.)
Backup
Delay On 120
Delay Off 120
Priority 3
OP Alarm text Sensor failure OAT
Alarm Processing
Vista Alarm tripped Sensor failure outside air sensor
Vista Alarm reset Sensor failure Outside air sensor return to nor-
mal
21 Connect the output of the XPB block to the input of the OAT_SF
(ALARM) block.
The output of the ALARM block will be connected later.
Alarm when the Outside Air Humidity experiences a Sensor
Failure
We want the possibility to calibrate the outside air humidity measure-
ment. To achieve this, we add an adjustable offset value and use the
totalled value.
22 Locate OAHumid_Offset, a PVR type function block, in the dia-
gram window, below the OAHumiditySen (AI block). Then define
the block.
Identifier OAHumid_Offset
Unit °F
Description Offset for Calibration of OA Humidity
Public Yes
R/W (Acc.) Yes
Backup Yes
InitValue 0
Identifier OAHumidity
Unit °F
Description Calibrated OA Humidity
Public Yes
Mode 2
Now we want to trigger an alarm when the value is out of range. This is
done using an expression in an expression block of the XPB type.
26 Locate in the diagram window an XPB expression block, to the
right and slightly below the Addition operator. Then define the
block and enter the expression A<10.
27 Connect the output of the OAHumid block (the Addition operator)
to the input of the XPB block.
28 Locate OAHumidity_SF, an ALARM function block, in the dia-
gram window, to the right of the XPB block. Then define the
block.
Identifier OAHumidity_SF
Unit Normal/Alarm
Description Sensor failure OA Humidity sensor
Public
R/W (Acc.)
Backup
Delay On 120
Delay Off 120
Priority 3
OP Alarm text Sensor failure OA Humidity
Alarm Processing
Vista Alarm tripped Sensor failure OA Humidity sensor
Vista Alarm reset Sensor failure OA Humidity sensor return to
normal
Note
Use the Online help or read Section 14.17, “ENTH – Enthalpy” to
learn more about the ENTH block.
Identifier OA_Enthalpy
Unit BTU/lb
Description
Public Yes
R/W (Acc.)
Type Real
Expression a?100:B
The design concerning the outside air measurements will now look like
this:
Identifier RAHumid_Offset
Unit %RH
Description Offset for Calibration of RA Humidity
Public Yes
R/W (Acc.) Yes
Backup Yes
InitValue 0
Identifier RAHumidity
Unit °F
Description Calibrated RA Humidity
Public Yes
Mode 2
Identifier (Name)
Unit
Description
Public
R/W (Acc.)
Type Binary
Expression A<10|A>100
Identifier RAHumidity_SF
Unit Normal/Alarm
Description Sensor failure RA Humidity sensor
Public
R/W (Acc.)
Backup
Delay On 120
Delay Off 120
Priority 3
Identifier RA_Enthalpy
Unit BTU/lb
Description Return Air Enthalpy
Public Yes
R/W (Acc.)
Type Real
Expression a?0:B
The design concerning the return air measurements will now look like
this.
Identifier
Unit
Description
Public
R/W (Acc.)
Backup
Activate -2
Deactivate -0.5
Note
Use the Online help or read Section 14.22, “HYST – Binary Hystere-
sis” to learn more about the HYST block.
Identifier
Unit
Description
Public
R/W (Acc.)
Backup
Delay On 300
Delay Off 300
Identifier Economizer
Unit
Description Economizer Enabled
Public Yes
R/W (Acc.)
Type Binary
Expression a&b
This will open the FBD in the simulation window and the previous but-
tons for inputs, together with four new buttons in the left part. The text
shown on each button is brief, the full name is shown on the state bar
down to the left.
To fully open the window to show the FBD, we can click and press the
separator ofthe logger window and move the separator toward the right.
Testing the Outside Air Temperature Sensor Failure Alarm
The alarm should be generated when the value is outside the range -491
to 266.
2 Click Execute and observe the value of the OAT_SF block (the
ALARM block). It should be 0 (off).
3 Click the Mixed_Air\OA_Temp button to the left to display an
Analog input form for entering a value. Enter a value of 267 and
observe the Alarm block again. It should change to 1 (on) after
120 execution intervals.
4 Click the Relief\Bldg_Static button again and enter the original
value of 70. Observe the Alarm block again. It should change to 0
(off) after another120 execution intervals.
5 Click the Relief\Bldg_Static button again and enter a value of
-492. Observe the Alarm block again. It should change to 1 (on)
after another 120 execution intervals.
6 Click the Relief\Bldg_Static button again and enter the original
value of 70. Observe the Alarm block again. It should change to 0
(off) again (after another 120 execution intervals).
Testing the Outside Air Humidity Sensor Failure Alarm
The alarm should be generated when the value is below 10.
7 Click Execute and observe the value of the OAHumidity_SF
block (the ALARM block). It should be 0 (off).
8 Click the Econ\OAHumiditySen button to the left to display an
Analog input form for entering a value. Enter a value of 9 and
observe the Alarm block again. It should change to 1 (on) after
120 execution intervals.
9 Click the Econ\OAHumiditySen button again and enter the orig-
inal value of 50.
Testing the Outside Air Enthalpy Value Calculation
10 Make sure Execution has started.
11 Click the Mixed_Air\OA_Temp button to the left to display an
Analog input form for entering a value. Enter a value of 77. If you
run an application created on a PC using the European measure-
ment system you should enter a value of 25.
Identifier MAT_Sensor
Unit °F
Description
Public
R/W (Acc.)
Backup
Bound to Non-Linear Analog Input
Mod Number M3
Terminal ref. B3
Sensor TAC Thermistor [°F]
Time Const: 0
Initial Value: 55
Identifier MAT_Offset
Unit °F
Description Offset for Calibration of MAT
Public Yes
R/W (Acc.) Yes
Backup Yes
InitValue 0
Identifier MAT
Unit °F
Description Calibrated MAT
Public Yes
Mode 2
Identifier
Unit
Description
Public
R/W (Acc.)
Type Binary
Expression A<-491|A>266
Identifier MAT_SF
Unit Normal/Alarm
Description Sensor failure mixed air sensor
Public
R/W (Acc.)
Backup
Delay On 120
Delay Off 5
Priority 3
OP Alarm text Sensor failure MAT
Alarm Processing
Vista Alarm tripped Sensor failure mixed air sensor 2nd Floor South
Vista Alarm reset Sensor failure mixed air sensor 2nd Floor South
return to normal
Identifier MAT_HighAlarm
Unit °F
Description High Alarm Limit for MAT
Public
R/W (Acc.) Yes
Backup Yes
InitValue 80
Identifier MAT_High
Unit Normal/Alarm
Description High mixed air temp alarm
Public
R/W (Acc.)
Backup
Delay On 120
Delay Off 120
Priority 3
OP Alarm text High MAT
Alarm Processing
Vista Alarm tripped High mixed air temperature 2nd Floor South
Vista Alarm reset Mixed air temperature 2nd Floor South return
to normal
Identifier MAT_LowAlarm
Unit °F
Description Low Alarm Limit for MAT
Public
R/W (Acc.) Yes
Backup Yes
InitValue 50
Identifier MAT_Low
Unit Normal/Alarm
Description Low mixed air temp alarm
Public
R/W (Acc.)
Backup
Delay On 120
Delay Off 120
Priority 3
OP Alarm text Low MAT
Alarm Processing
Vista Alarm tripped Low mixed air temperature 2nd Floor
Vista Alarm reset Mixed air temperature 2nd Floor South return
to normal
Identifier CO2
Unit "wc
Description
Public
R/W (Acc.)
Backup
Bound to Linear Analog Input
Mod Number
Terminal ref.
Sensor 2..10 V
Time Const: 0
Initial Value: 500
Min Value: 0
Max. Value: 2000
Identifier Mixed_Air_Dampers
Unit %
Description Mixed Air Dampers
Public Yes
R/W (Acc.)
Backup
Bound to Physical output
Mod Number M3
Terminal ref: Y2
Initial Value = 0
Voltage 0% 0
Voltage 100% 10
One more output block will be used, the CO2_SNVT block, a function
block of the AO type. We will locate and define it later.
Conditional Mixed Air Temperature Value
If there is a sensor failure alarm, the Mixed Air Temperature to use
should have a value of zero. Here we solve this by using an expression
block of the XPR type.
14 Locate in the diagram window an XPR expression block, to the
right of and slightly above the MAT_SF function block. Define the
block and enter the expression b?0:A. This expression will create a
block with two inputs, b, and A. Input b is a binary input and rep-
resents the alarm state of MAT_SF. Input B is an analog input and
represents the MAT.
Identifier
Unit
Description
Public
R/W (Acc.)
Type Real
Expression b?0:A
15 Create a new node and connect the output of the MAT (the Addi-
tion operator) to input A of the XPR block.
16 Connect the output of the MAT_SF block (the ALARM block) to
input b of the XPR block.
Identifier CO2_Offset
Unit PPM
Description Offset for calibration of CO2
Public Yes
R/W (Acc.) Yes
Backup Yes
InitValue 0
Mode 1 for this operator, arranging one input horizontally, and the
other vertically.
Identifier CO2
Unit ppm
Description Calibrated CO2
Public Yes
Mode 2
19 Connect the output of the CO2 to the horizontal input of the Addi-
tion operator.
20 Connect the output of the CO2_Offset to the vertical input of the
Addition operator.
Now we want to trigger an alarm when the value is out of range. This is
done using an expression in an expression block of the XPB type. Suit-
able numbers in the expression define the allowed levels.
21 Locate in the diagram window an XPB expression block, to the
right and slightly below the Addition operator. Then define the
block and enter the expression A<100|A>1200.
Identifier
Unit
Description
Public
R/W (Acc.)
Type Binary
Expression A<100|A>1200
22 Connect the output of the CO2 block (the Addition operator) to the
input of the XPB block.
23 Locate CO2_Alarm, an ALARM function block, in the diagram
window, to the right of the XPB block. Then define the block.
Identifier CO2_Alarm
Unit Normal/Alarm
Description CO2 Alarm
Public
R/W (Acc.)
Backup
Delay On 120
Delay Off 5
Priority 3
OP Alarm text CO2 Alarm
Alarm Processing
Identifier CO2_SNVT
Unit Unit=ppm
Description SNVT output of CO2
Public Yes
R/W (Acc.)
Backup
Bound to SNVT
Type ppm
Member
Name nvoCO2
Initial Value = 0
Send Yes
Delta: 0.5
Period: 60
26 Create a new node and connect the output of the CO2 (the Addi-
tion operator) to the input of the CO2_SNVT function block.
Conditional Return Air CO2 Value
If there is a sensor failure alarm, the CO2 measurement to use should
have a value of 500. Here we solve that by using an expression block of
the XPR type.
27 Locate in the diagram window an XPR expression block, to the
right of and slightly above the CO2_Alarm ALARM block. Then
define the block and enter the expression b?500:A. This expres-
sion will create a block with two inputs, b, and A. Input b is a
binary input and represents the alarm state of CO2_Alarm. Input B
is an analog input and represents the CO2.
Identifier
Unit
Description
Public
R/W (Acc.)
Type Real
Expression b?500:A
28 Create a new node and connect the output of the CO2 (the Addi-
tion operator) to input A of the XPR block.
29 Connect the output of the CO2_Alarm block to input b of the XPR
block.
The design concerning the CO2 measurements shall now look like this:
Identifier
Unit
Description
Public
R/W (Acc.)
Backup
ControlInt 20
Umin 0
Umax 100
Stroke Time 0
Note
Use the Online help or read Section 14.8, “CURVE – Curve Function”
to learn more about the CURVE block.
Identifier Mixed_Air_PG
Unit % per deg F
Description Mixed Air Proportional Gain
Public Yes
R/W (Acc.) Yes
Backup Yes
InitValue 16.66
Identifier Mixed_Air_Int_TC
Unit seconds%
Description Mixed Air Integral Time Constant
Public Yes
R/W (Acc.) Yes
Backup Yes
InitValue 0
Identifier
Unit
Description
Public
Mode 2 Yes
Value 0
Identifier MAT_DZ
Unit
Description
Public
Mode 2
Value 0.5
Identifier
Unit
Description
Public
R/W (Acc.)
Type Integer
Expression a&b?1:3
45 Create a new node and connect the output signal from the Econo-
mizer (the XPB block on the previous FBD page) to input a of the
XPI function block.
46 Create a new node and connect the output signal from the
Mod_3_Offline block (ALARM block on the VSD page, also used
on the previous FBD page) to input b of the expression block.
47 Connect the output signal from the XPI function block to input
Mod of the PIDA function block.
48 Connect the output signal from the XPR function block in the
Mixed Air temperature part to input MV of the PIDA function
block.
The value to be sent to the OA/RA damper actuator must be either the
value calculated by this PIDA controller or a controller calculating a
value based on CO2 concentration. The value to use should be the larger
of the two. We solve this using a MAX function block to select.
Note
Use the Online help or read Section 14.25, “MAX – Maximum Signal
Selector” to learn more about the MAX block.
50 Connect the output of the PIDA function block to the upper input
of the MAX function block. We will connect the other input later.
51 Create a new node and connect the output signal from the PIDA
block to input Tsg of the same PIDA function block.
Modulating the OA/RADamper based on the CO2
Concentration
Modulation of the damper position due to CO2 concentration uses
another controller with an analog output.
This PIDA controller block uses a set of operator inputs defined by the
PVR function blocks, setpoint, proportional gain, and integration time.
52 Locate in the diagram window a PIDA function block, below and
slightly to the left of the previous PIDA controller block. Then
define the block.
Identifier
Unit
Description
Public
R/W (Acc.)
Backup
ControlInt 20
Umin 0
Umax 100
Stroke Time 0
Identifier CO2_SetPoint
Unit ppm
Description Return Air CO2 Setpoint
Public Yes
R/W (Acc.) Yes
Backup Yes
InitValue 800
Identifier Econ\CO2_PG
Unit % per PPM
Description CO2 Proportional Gain
Public Yes
R/W (Acc.) Yes
Backup Yes
InitValue 16.66
Identifier CO2_Int_TC
Unit seconds
Description CO2 Integral Time Constant
Public Yes
R/W (Acc.) Yes
Backup Yes
InitValue 0
Identifier
Unit
Description
Public
Mode 2 Yes
Value 0
Identifier MAT_DZ
Unit
Description
Public
Mode 2
Value 0.5
Identifier Min_Position
Unit %
Description Minimum Damper position
Public Yes
R/W (Acc.) Yes
Backup Yes
InitValue 20
70 Create a new node and connect the output signal from the PIDA
block to input Tsg of the same PIDA function block.
71 Connect the output of this latest MAX function block to the lower
input of the first MAX block on the FBD page.
To close the dampers when the Fan is not running, we add an Analog
mux operator to our design. We put it after the largest signal selected
(after the MAX function block following the temperature based control-
ler).
72 Locate in the diagram window an Analog mux operator, to the
right of the upper MAX function block.
We define the value that closes the OA/RA dampers using a constant.
73 Locate in the diagram window a Real const operator, below and
slightly to the left of the Analog Mux operator block. Then define
the block.
Identifier
Unit
Description
Public
Mode 2
Value 0
74 Create a new node and connect the output of the SFan_Status (the
DI block on the Fan Start Stop FBD page and also used on the last
FBD page) to the vertical input of the Analog mux.
75 Connect the output of the Real const operator to the lower input
(input 0) of the Analog mux block.
76 Connect the output of the Analog mux operator to the
Mixed_Air_Dampers function block (AO block).
Assigning the Module Name "Econ"
The function blocks on this FBD printable page are also a set of signals
we want to treat as signals in the common module called Econ.
77 Mark all blocks on the FBD page and assign them the module
name Econ.
Now that this is finished, the page of the function block diagram should
look like this:
35 Click the Econ\CO2 button again and enter a value of 800.7 and
observe the MAX block. It should now have taken the value from
the CO2 controller. This is also the value of the AO.
36 Release the SFan\SFan_Status button to the left and check that
both controllers stops (calculates zero outputs) and that the value
of the real constant (0) is used for the AO block.
Identifier DAT_Sensor
Unit °F
Description
Public
R/W (Acc.)
Backup
Bound to Non-Linear Analog Input
Mod Number M3
Terminal ref. B1
Sensor TAC Thermistor [°F]
Time Const: o
Initial Value: 55
Identifier DAT_Offset
Unit °F
Description Offset for calibration of DAT
Public Yes
R/W (Acc.) Yes
Backup Yes
InitValue 0
Identifier DAT
Unit °F
Description Discharge Air Temperature
Public
Mode 2
Identifier DAT_SF
Unit Normal/Alarm
Description Sensor failure discharge air sensor
Public
R/W (Acc.)
Backup
Delay On 120
Delay Off 5
Priority 3
OP Alarm text Sensor failure DAT
Alarm Processing
Vista Alarm tripped Sensor failure discharge air sensor 2nd Floor
South
Vista Alarm reset Sensor failure discharge air sensor 2nd Floor
South return to normal
Identifier DAT_HighAlarm
Unit °F
Description High Alarm Limit for DAT
Public
R/W (Acc.) Yes
Backup Yes
InitValue 80
Identifier DAT_High
Unit Normal/Alarm
Description High discharge air temp alarm
Public
R/W (Acc.)
Backup
Delay On 120
Delay Off 120
Priority 3
OP Alarm text High DAT
Alarm Processing
Vista Alarm tripped High discharge air temperature 2nd Floor South
Vista Alarm reset Discharge air temperature 2nd Floor South
return to normal
Identifier DAT_LowAlarm
Unit °F
Description Low Alarm Limit for DAT
Public
R/W (Acc.) Yes
Backup Yes
InitValue 45
Identifier DAT_Low
Unit Normal/Alarm
Description Low discharge air temp alarm
Public
R/W (Acc.)
Backup
Delay On 120
Delay Off 120
Priority 3
OP Alarm text Low DAT
Alarm Processing
Vista Alarm tripped Low discharge air temperature 2nd Floor South
Identifier FanSpeed
Unit %
Description Fan Speed Feedback from VFD
Public Yes
R/W (Acc.)
Backup
Bound to Linear Analog Input
Mod Number M4
Terminal ref. U3
Sensor 0..10 V
Time Const: 0
Initial Value: 0
Min Value: 0
Max. Value: 100
Identifier VAV_4:1_Term_Load
Unit %Load
Description Terminal Load FPB-4:1 Software
Public Yes
R/W (Acc.)
Backup
Bound to SNVT
Type lev_percent
Member
Name nvi4:1_TermLoad
Initial Value = 0
Poll Yes
Period: 60
Identifier
Unit
Description
Public
R/W (Acc.)
Type Real
Expression b?50:A
14 Create a new node and connect the output of the DAT (the Addi-
tion operator) to input A of the XPR block.
15 Connect the output of the MAT_SF block (the ALARM block) to
input b of the XPR block.
The design concerning the DAT air temperature measurements shall
now look similar to this:
Identifier VAV_4:2_Term_Load
Unit %Load
Description Terminal Load FPB-4:2 Hardware
Public Yes
R/W (Acc.)
Backup
Bound to SNVT
Type lev_percent
Member
Name nvi4:2_TermLoad
Initial Value = 0
Poll Yes
Period: 60
Identifier VAV_4:3_Term_Load
Description Terminal Load FPB-4:3 Hardware
Name nvi4:3_TermLoad
Identifier VAV_4:4_Term_Load
Description Terminal Load FPB-4:4 R&D Services
Name nvi4:4_TermLoad
Identifier VAV_4:5_Term_Load
Description Terminal Load FPB-4:5 Software Dev.
Name nvi4:5_TermLoad
Identifier VAV_4:6_Term_Load
Description Terminal Load FPB-4:6 ASG
Name nvi4:6_TermLoad
Identifier MaxTermLoad
Unit %Load
Description Maximum Terminal Load
Public Yes
R/W (Acc.)
Backup
25 Connect the output of the MAX block, up to the left, to the upper
input of the Max_TermLoad function block.
26 Connect the output of the MAX block, down to the left (the uncon-
nected one), to the lower input of the Max_TermLoad function
block.
If done successfully, this part of the design will look like this:
Identifier Compressor_Staging
Unit
Description
Public No
R/W (Acc.)
Type Real
Expression (C>90?C-90+B:B)+(A<50?(A-50)*5:0)
Identifier
Unit
Description
Public
Mode 2
Identifier
Unit
Description
Public
Mode 2
Value 0
35 Connect the output of the Real const block (Value=0) to the upper
horizontal input (1) of the Analog mux operator.
26 Click Execute and observe the DELR block. It should show the
previous value 21.
If Economizer mode is enabled, the signal should be zero. We remem-
ber from previous tests, that simulating economizer mode can be
obtained by adjusting the SFan_Status.
27 Click the SFan\SFan_Status button to the left to simulate the
Sfan state and observe the DELR block again. It should now have
a value of 0 (zero).
After finishing the test, we must remember to remove the DELB block.
28 Use the command Options/Edit to obtain editing mode and
remove the DELR block to the right of the Analog mux operator.
Identifier C1_Status
Unit
Description Status of Compressor 1
Public Yes
R/W (Acc.)
Backup NO
Bound to Physical input (Digital input)
Mod Number M1
Term. Ref X1
Initial Value = Off
Normally Open = 1
We will use three more blocks like the C1_Status, representing the indi-
cations of other chillers, but we will make copies of a partial design and
rename the added blocks later on.
Identifier C1_Start/Stop
Unit
Description Compressor 1 Start Stop Circuit
Public Yes
R/W (Acc.) RO
Backup
Bound to Physical output (Digital output)
Mod Number M2
Term. Ref K1
Initial Value = Off
We will also use three more blocks like the C1_Start_Stop, but we will
later make copies of a partial design and rename the added blocks later
on.
The first cooling stage shall be activated when the control signal has
reached 60% and be deactivated when the signal has returned to 55%.
We solve this by using a HYST function block.
3 Locate C1_2P, a HYST function block, in the diagram window,
horizontally slightly to the left of the center and vertically approx-
imately one block from the top. Entering names (text strings) in
the Activate and Deactivate boxes, will create constants for these
parameters. Then define the block and the Constants.
Identifier C1_2P
Unit
Description
Public
R/W (Acc.)
Backup
Activate C1_Start_SP
Deactivate C1_Stop_SP
Constant Start
Identifier C1_Start_SP
Value 60
Unit %
Description Speed at which C1 starts
Public Yes
Constant Stop
Identifier C1_Stop_SP
Value 55
Unit %
Description Speed at which C1 stops
Public Yes
Note here the use of named constants for the Activate and Deactivate
parameters. This enables the operator to easily access the values if
needed.
Giving the chiller stage necessary minimum and maximum RATINGS?
is prepared using two PULSE blocks, one for each setting. The PULSE
blocks generates a binary signal with the defined time. These signals,
once triggered, are used to latch/lock the stage in the desired state. The
values for the settings are entered via two PVR function blocks.
We start with creating the signal (pulse) defining the minimum on time.
4 Locate C1_Min_On, a PVR function block, in the diagram win-
dow, to the right of and slightly above the HYST function block,.
Then define the block.
Identifier C1_Min_On
Unit Seconds
Description Compressor 1 Min. On Time
Public Yes
R/W (Acc.) Yes
Backup Yes
InitValue 300
Identifier
Unit
Description
Public
Mode 2 Yes
Value 1
Note
Use the Online help or read Section 16.1, “Constants” to learn more
about the Binary const block.
Identifier C1_Min_Off
Unit Seconds
Description Compressor 1 Min. Off Time
Public Yes
R/W (Acc.) Yes
Backup Yes
InitValue 300
Identifier
Unit
Description
Public
Mode 2 Yes
Value 0
16 Connect the output of the Binary const operator to the upper hori-
zontal input (1) of the Digital mux.
17 Connect the output of the previous Digital mux operator to the
lower horizontal input (0) of the Digital mux operator.
18 Connect the output of the lower PULSE function block (the one in
the Min_Off line of blocks), to input pl (pulse length) of the
PULSE function block.
19 Connect the output of the Digital mux operator to the
C1_Start_Stop function block (DO block), to the right.
Now we will provide the triggering signals, by generating the two
pulses. The minimum on condition is to apply every time the C1_Status
changes to true (on). The minimum off condition is to apply every time
the C1_Status changes to false (off). We use the C1_Status signal
directly connected to trigger the min. on pulse and using an inverted
state to trigger the min. off pulse.
20 Locate in the diagram window a NOT function block to the left of
the PULSE function block (in the Min_off line).
21 Connect the output of the NOT function block to input t (trigger)
of the PULSE function block.
22 Connect the output of C1_Status (DI function block) to the input
of the NOT function block.
23 Create a new node and connect the C1_Status signal to input t of
the upper PULSE function block as well (the PULSE block in the
Min. On chain).
Now, we also want an alarm when the state input does not match the
Start_Stop output.
24 Locate C1_Alarm, an ALARM function block, in the diagram
window, to the left and below the C1_Start_Stop function block.
Then define the block.
Identifier C1_Alarm
Unit Normal/Alarm
Description Proofing Alarm Compressor 1
Public
R/W (Acc.)
Backup
Delay On 20
Delay Off 0
Priority 1
OP Alarm text 4A-C1 Alarm
Alarm Processing
Vista Alarm tripped 4A-C1 Alarm Tripped
Vista Alarm reset 4A-C1 Alarm Reset
Note
Use the Online help or read Section 14.59, “XOR – Exclusive OR
Gate” to learn more about the XOR block.
To create the diagram part of the C2 cooling stage, we copy all the func-
tion blocks and paste the duplicate below the existing part.
29 Select all blocks and use Edit/Copy followed by an Edit/Paste
command.
As the duplicates are complete copies with same names and parameters,
we must make sure they are redefined.
30 Redefine all necessary names and parameters in the duplicate
blocks, the C2 line of blocks.
DI:
Identifier C2_Status
Unit
Description Status of Compressor 2
Public Yes
R/W (Acc.)
Backup
Bound to Physical input
Mod Number M2
Term. Ref X2
Initial Value = Off
Normally Open = 1
HYST:
Identifier C2_2P
Unit
Description
Public
R/W (Acc.)
Backup
Activate C2_Start_SP
Deactivate C2_Stop_SP
Const Start:
Identifier C2_Start_SP
Value 70%
Unit %
Description Speed at which C2 starts
Public Yes
Const Stop:
Identifier C2_Stop_SP
Value 65%
Unit %
Description Speed at which C2 stops
Public Yes
Identifier C2_Min_Off
Unit Seconds
Identifier C2_Min_On
Unit Seconds
Description Compressor 2 Min. On Time
Public Yes
R/W (Acc.) Yes
Backup Yes
InitValue 300
ALARM:
Identifier C2_Alarm
Unit Normal/Alarm
Description Proofing Alarm Compressor 2
Public
R/W (Acc.)
Backup
Delay On 20
Delay Off 0
Priority 1
OP Alarm text 4A-C2 Alarm
Alarm Processing
Vista Alarm tripped 4A-C2 Alarm Tripped
Vista Alarm reset 4A-C2 Alarm Reset
DO:
Identifier C2_Start/Stop
Unit
Description Compressor 2 Start Stop Circuit
Public Yes
R/W (Acc.)
Backup
Bound to Physical output (Digital output)
Mod Number M2
Term. Ref K2
Initial Value = Off
The starting condition for stage C2 is the level of the control signal
Cooling Fan Speed and a delayed signal reporting that stage C1 has
been requested to start.
31 Locate in the diagram window an Analog mux operator to the
left of the C2__2P (the HYST block). Select the Mode 1 to have
the vertical control input coming from the top of the block.
32 Connect the output of the Analog mux operator to the input of the
C2_2P function block (the HYST block).
33 Connect the Cooling Fan Speed signal (the output of the Analog
mux operator in the previous FBD page) to the upper horizontal
input (1) of the current Analog mux operator.
34 Locate in the diagram window an Integer const operator to the
left of the Analog mux operator. You can use mode 2 to have the
output from the block horizontally. Then define the block.
Identifier
Unit
Description
Public
Mode 2 Yes
Value 0
Note
Use the Online help or read Section 16.1, “Constants” to learn more
about the Integer const block.
Identifier
Unit
Description
Public
R/W (Acc.)
Backup
Delay On 300
Delay Off 0
The finished line of function blocks for C2 should look like this:
We are now well prepared to continue with the chain of blocks for the
C3 stage. Again we use the Copy and Paste function.
38 Select all blocks, including the added Delay, the Analog mux the
constant, for the C2 line of blocks and use Edit/Copy.
39 Using Edit/Paste, locate and make a duplicate, located below the
C2 line of blocks.
As the duplicates are complete copies with the same names and param-
eters, we must make sure they are redefined where it is needed.
40 Redefine all necessary names and parameters in the duplicate
blocks, the C3 line of blocks.
DI:
Identifier C3_Status
Description Status of Compressor 3
Public Yes
Mod Number M2
Term. Ref X3
HYST:
Identifier C3_2P
Activate C3_Start_SP
Deactivate C3_Stop_SP
Const. Start:
Identifier C3_Start_SP
Value 80%
Description Speed at which C3 starts
Const. Stop:
Identifier C3_Stop_SP
Value 75%
Description Speed at which C3 stops
Identifier C3_Min_Off
Unit Seconds
Description Compressor 3 Min. Off Time
InitValue 300
Identifier C3_Min_On
Unit Seconds
Description Compressor 3 Min. On Time
InitValue 300
ALARM:
Identifier C3_Alarm
Description Proofing Alarm Compressor 3
OP Alarm text 4A-C3 Alarm
Vista Alarm tripped 4A-C3 Alarm Tripped
DO:
Identifier C3_Start/Stop
Description Compressor 3 Start Stop Circuit
Mod Number M2
Term. Ref K3
41 Now when you are geared up, make one more duplicate for the C4
line of blocks.
42 Using Edit/Paste again, locate and make another duplicate, located
below the C3 line of blocks.
As the duplicates are complete copies with same names and parameters,
we must make sure they are redefined.
43 Redefine all necessary names and parameters in the duplicate
blocks, the C4 line of blocks.
DI:
Identifier C4_Status
Description Status of Compressor 4
Public Yes
Mod Number M2
Term. Ref X4
HYST:
Identifier C4_2P
Activate C4_Start_SP
Deactivate C4_Stop_SP
Const. Start:
Identifier C4_Start_SP
Value 90%
Description Speed at which C4 starts
Const. Stop:
Identifier C4_Stop_SP
Value 85%
Description Speed at which C4 stops
Identifier C4_Min_Off
Unit Seconds
Description Compressor 3 Min. Off Time
InitValue 300
Identifier C4_Min_On
Unit Seconds
Description Compressor 3 Min. On Time
InitValue 300
ALARM:
Identifier C4_Alarm
Description Proofing Alarm Compressor 3
OP Alarm text 4A-C4 Alarm
Vista Alarm tripped 4A-C4 Alarm Tripped
DO:
Identifier C4_Start/Stop
Description Compressor 4 Start Stop Circuit
Mod Number M2
Term. Ref K4
The text shown on each button is brief, the full name is shown on the
status bar down to the left.
Testing the C1 Start, Stop, and Alarm.
2 Click the Cooling\FanSpeed button to the left to display an Ana-
log input form for entering a value. Enter a value of 55 and
observe the HYST block. It should immediately be 0 (off).
Observe the C1_Start_Stop block (the DO block), which should
also be 0 (zero).
3 Click the Step button and observe the C1_2P block (the HYST
block). It should be 0 (off). Observe the C1_Start_Stop block (the
DO block). It should also be 0 (zero).
The level of the C1_Fan_Speed signal is 55. The level where C1 starts
is 60. It stops at 55.
4 Click the Cooling\FanSpeed button and enter a value of 60.
5 Click the Step button and observe the HYST block again. It
should immediately be 1 (on). The C1_Start_Stop block (the DO
block) should remain at 0 (zero).
Because of our design, we will have to wait for the 300 min.off time
before the first start.
6 Use the Command/Execute n Times... and run 295 execution
intervals.
7 Click the Step button at least 6 times and observe the
C1_Start_Stop block (the DO block). It should have a state of 1
(on) after 300 execution intervals. Observe the C1_Alarm block. It
should have a state of 0.
Testing the Alarm
8 Click the Step button another 20 times and observe the C1_Alarm
block. It should now have a state of 1 (on).
9 Click the Cooling\C1_Status button to simulate the running indi-
cation of C1.
10 Click the Step button again and observe the ALARM block, it
should return to 0 (off) state immediately.
Testing the Stop
11 Keep the Execution button depressed for more than 600 execu-
tion intervals and verify that the C1_Start_Stop block remains on.
12 Click the Cooling\FanSpeed button and enter a value of 54.
Observe the HYST block and the C1_Start_Stop block. They
should both immediately be 0 (off).
41 Click Step and observe the C2_2P, C3_2P, and C4_2P blocks.
They should all have changed to 0 (off).
42 Click Execute.
43 Release the SFan\SFan_Status button to enable the compressors
to start up again. Verify that they start in succession, using their
relative delays.
Identifier VAV_4:1_SpaceTemp
Unit °C
Description From FPB-4:1
Public No
R/W (Acc.)
Backup
Bound to SNVT
Type temp_p
Member
Name nvi4:1_SpaceTemp
Initial Value = 25
Poll No
Period: 60
Identifier VAV_4:1_Setpoint
Unit °C
Description From FPB-4:1
Public No
R/W (Acc.)
Backup
Bound to SNVT
Type temp_p
Member
Name nvi4:1_setPt
Initial Value = 25
Poll No
Period: 60
Identifier VAV_4:1_Temp_Error
Unit °F
Description Space Temp Error
Public Yes
R/W (Acc.)
Type Real
Expression C=0? (A-B):0
This expression will create a block with three analog inputs, A, B, and
C. Input A represents the space temperature in the zone. Input B repre-
sents the setpoint for the zone. Input C represents the occupancy state of
the zone.
4 Connect the output of VAV_4:1_SpaceTemp function block to
input A of the XPR block.
5 Connect the output of VAV_4:1_SetPoint function block to input
B of the XPR block.
We will connect input C later.
Detecting the possible alarm levels of the value is carried out using two
more expression blocks.
Identifier
Unit
Description
Public
R/W (Acc.)
Type Binary
Expression A>4
Identifier VAV_4:1_High
Unit Normal/Alarm
Description High space temp alarm VAV_4:1
Public
R/W (Acc.)
Backup
Delay On 300
Delay Off 60
Priority 3
OP Alarm text High Space VAV_4:1
Alarm Processing
Vista Alarm tripped High space temperature VAV_4:1
Vista Alarm reset Space temperature VAV_4:1 return to normal
Identifier
Unit
Description
Public
R/W (Acc.)
Type Binary
Expression A<-4
Identifier VAV_4:1_Low
Unit Normal/Alarm
Description Low space temp alarm VAV_4:1
Public
R/W (Acc.)
Backup
Delay On 300
Delay Off 60
Priority 3
OP Alarm text Low space VAV_4:1
Alarm Processing
Vista Alarm tripped Low space temperature VAV_4:1
Vista Alarm reset Space temperature VAV_4:1 return to normal
We can now easily duplicate this design and use it for the remaining five
terminal units. Locate VAV_4:2, VAV_4:3 in a column below
VAV_4:1 and make a new column to the right for VAV_4:4, VAV_4:5,
and VAV_4:6.
Identifier VAV_4:2_SpaceTemp
Description From FPB-4:2
Name nvi4:2_SpaceTemp
AI Setpoint:
Identifier VAV_4:2_Setpoint
Description From FPB-4:2
Name nvi4:2_setPt
Temp_Error:
Identifier VAV_4:2_Temp_Error
Description Space Temp Error
High_ALARM:
Identifier VAV_4:2_High
Description High space temp alarm VAV_4:2
OP Alarm text High Space VAV_4:2
Vista Alarm tripped High space temperature VAV_4:2
Vista Alarm reset Space temperature VAV_4:2 return to normal
Low_ALARM:
Identifier VAV_4:2_Low
Description Low space temp alarm VAV_4:2
OP Alarm text Low space VAV_4:2
Vista Alarm tripped Low space temperature VAV_4:2
Vista Alarm reset Space temperature VAV_4:2 return to normal
VAV_4:3
SpaceTemp:
Identifier VAV_4:3_SpaceTemp
Description From FPB-4:3
Name nvi4:3_SpaceTemp
Setpoint:
Identifier VAV_4:3_Setpoint
Description From FPB-4:3
Name nvi4:3_setPT
Temp_Error:
Identifier VAV_4:3_Temp_Error
Description Space Temp Error
High_ALARM:
Identifier VAV_4:3_High
Description High space temp alarm VAV_4:3
OP Alarm text High Space VAV_4:3
Vista Alarm tripped High space temperature VAV_4:3
Vista Alarm reset Space temperature VAV_4:3 return to normal
Low_ALARM:
Identifier VAV_4:3_Low
Description Low space temp alarm VAV_4:3
OP Alarm text Low space VAV_4:3
Vista Alarm tripped Low space temperature VAV_4:3
Vista Alarm reset Space temperature VAV_4:3 return to normal
VAV_4:4
SpaceTemp:
Identifier VAV_4:4_SpaceTemp
Description From FPB-4:4
Name nvi4:4_SpaceTemp
Setpoint:
Identifier VAV_4:4_Setpoint
Description From FPB-4:4
Name nvi4:4_setPT
Temp_Error:
Identifier VAV_4:4_Temp_Error
Description Space Temp Error
High_ALARM:
Identifier VAV_4:4_High
Description High space temp alarm VAV_4:4
OP Alarm text High Space VAV_4:4
Vista Alarm tripped High space temperature VAV_4:4
Vista Alarm reset Space temperature VAV_4:4 return to normal
Low_ALARM:
Identifier VAV_4:4_Low
Description Low space temp alarm VAV_4:4
OP Alarm text Low space VAV_4:4
Vista Alarm tripped Low space temperature VAV_4:4
Vista Alarm reset Space temperature VAV_4:4 return to normal
VAV_4:5
SpaceTemp:
Identifier VAV_4:5_SpaceTemp
Description From FPB-4:5
Name nvi4:5_SpaceTemp
Setpoint:
Identifier VAV_4:5_Setpoint
Description From FPB-4:5
Name nvi4:5_setPT
Temp_Error:
Identifier VAV_4:5_Temp_Error
Description Space Temp Error
High_ALARM:
Identifier VAV_4:5_High
Description High space temp alarm VAV_4:5
OP Alarm text High Space VAV_4:5
Vista Alarm tripped High space temperature VAV_4:5
Vista Alarm reset Space temperature VAV_4:5 return to normal
Low_ALARM:
Identifier VAV_4:5_Low
Description Low space temp alarm VAV_4:5
OP Alarm text Low space VAV_4:5
Vista Alarm tripped Low space temperature VAV_4:5
Vista Alarm reset Space temperature VAV_4:5 return to normal
VAV_4:6
SpaceTemp:
Identifier VAV_4:6_SpaceTemp
Description From FPB-4:6
Name nvi4:6_SpaceTemp
Setpoint:
Identifier VAV_4:6_Setpoint
Description From FPB-4:6
Name nvi4:6_setPT
Temp_Error:
Identifier VAV_4:6_Temp_Error
Description Space Temp Error
High_ALARM:
Identifier VAV_4:6_High
Description High space temp alarm VAV_4:6
OP Alarm text High Space VAV_4:6
Vista Alarm tripped High space temperature VAV_4:6
Vista Alarm reset Space temperature VAV_4:6 return to normal
Low_ALARM:
Identifier VAV_4:6_Low
Description Low space temp alarm VAV_4:6
OP Alarm text Low space VAV_4:6
Vista Alarm tripped Low space temperature VAV_4:6
Vista Alarm reset Space temperature VAV_4:6 return to normal
The text shown on each button is brief, the full name is shown on the
status bar down to the left.
Testing the VAV4:1 Difference High Alarm.
2 Click Execute and observe the two XPB blocks to the left of the
VAV4:1 alarm blocks. They should both be 0 (off).
3 Click the TermUnits\VAV4:1_SpaceTemp button to the left to
display an Analog input form for entering a value. Enter a value of
30, simulating 5 degrees too high space temperature, and observe
the XPB blocks. The upper XPB block should immediately be 1
(on), and the lower should remain at 0 (off). Observe the
VAV4:1_High ALARM block. It should change to 1 (on) after
another 300 execution intervals.
4 Click the TermUnits\VAV4:1_SpaceTemp button and enter a
value of 25 again, simulating a space temperature equal to the set-
point, and observe the XPB blocks. The upper XPB block should
immediately be 0 (off), and the lower should remain at 0 (off).
Observe the VAV4:1_High ALARM block. It should change to 0
(off) after another 60 execution intervals.
Testing the VAV4:1 Difference Low Alarm.
5 Click the TermUnits\VAV4:1_SpaceTemp button and enter a
value of 20, simulating 5 degrees too low space temperature, and
observe the XPB blocks. The upper XPB block should remain at 0
(off), and the lower should immediately be 1 (on). Observe the
VAV4:1_Low ALARM block. It should change to 1 (on) after
another 300 execution intervals.
6 Click the TermUnits\VAV4:1_SpaceTemp button and enter a
value of 25 again, simulating a space temperature equal to the set-
point, and observe the XPB blocks. The upper XPB block should
remain at 0 (off), and the lower should immediately change to 0
(off). Observe the VAV4:1_Low ALARM block. It should change
to 0 (off) after another 60 execution intervals.
Testing the VAV4:1 Conditional Difference Calculation.
The actual difference between setpoint and space temperature is only to
be calculated when a zone is in occupied mode. Being in ocupied mode
or not is determined, for each zone, by the signals TermU-
nits\4:*_Occ_Status. A zone is in occupied mode when the signal has a
value of 2.
7 Click the TermUnits\VAV4:1_SpaceTemp button and enter a
value of 20, and observe the XPR block. The block should calcu-
late the difference (multiplied by 1.8).
8 Click the TermUnits\VAV4:1_Occ_Status button and enter a
value of 2, and observe the XPR block. The block should now cal-
culate a value of 0 (zero).
Identifier
Unit
Description
Public
R/W (Acc.)
Type Binary
Expression A&2048
Identifier IO_Alarm
Unit Normal/Alarm
Description I/O-module off-line
Public
R/W (Acc.)
Backup
Delay On 30
Delay Off 0
Priority 2
OP Alarm text I/O Module Offline
Alarm Processing
Vista Alarm tripped I/O-module off-line RTU4
Vista Alarm reset I/O-module off-line RTU4
4 Connect the output of the XPB block to the input of the C1_Alarm
function block.
5 Connect the output of the ERR function block to the input of the
XPB block.
Designing the I/O is being Forced Alarm.
Now we want an alarm when any I/O is in forced mode, that is the value
of the ERR block is 4096, bit 13 is true.
6 Locate in the diagram window one more XPB expression block, to
the right of and slightly below the ERR function block. Then
define the block and enter the expression A&4096.
Identifier
Unit
Description
Public
R/W (Acc.)
Type Binary
Expression A&4096
Identifier FO_Alarm
Unit Normal/Alarm
Description I/O Forced
Public
R/W (Acc.)
Backup
Delay On 30
Delay Off 0
Priority 2
OP Alarm text I/O Forced
Alarm Processing
Vista Alarm tripped I/O forced in RTU4
Vista Alarm reset I/O forced in RTU4
8 Connect the output of the XPB block to the input of the FO_Alarm
function block.
9 Create a new node and connect the output of the ERR function
block to the input of the XPB block.
Your I/O alarm design should now look like this:
Note
Use the Online help or read Section 14.7, “CNT – Digital Input – Pulse
Counter” to learn more about the CNT block.
Note
Use the Online help or read Section 14.21, “HOUR – Hour” to learn
more about the HOUR block.
Identifier ChangeOfHour
Unit
Description
Public
R/W (Acc.)
Type Binary
Expression A!=B
Identifier ChangeOfDay
Unit
Description
Public
R/W (Acc.)
Type Binary
Expression A<B
Identifier (Name)
Unit
Description
Public
R/W (Acc.)
Backup Yes
Init Value 0
Note
Use the Online help or read Section 14.21, “HOUR – Hour” to learn
more about the DELI block.
For the hourly value, we use a block that accumulates pulses from the
input block. We will add signals to reset this accumulator when the val-
ues are transferred to a storage block.
15 Locate in the diagram window an ACCUM block, to the right of
the CNT block and approximately five blocks away from it. Then
define the block.
Identifier (Name)
Unit
Description
Public
R/W (Acc.) Yes
Backup Yes
Initial Value: 0
Note
Use the Online help or read Section 14.1, “ACCUM – Accumulator”
to learn more about the ACCUM block.
Note
Use the Online help or read Section 16.3, “Math Operators” to learn
more about the Operator Division block.
Note
Use the Online help or read Section 14.50, “SHR – Sample and Hold
Real Value” to learn more about the SHR block.
Identifier Scale_Factor
Unit Puls/KWh
Description Number of pulses for each KWh
Public Yes
R/W (Acc.) Yes
Backup Yes
InitValue 1
27 Create a new node and connect the output of the Pulse block (CNT
block) to input i of the lower ACCUM block as well.
28 Create a new node and connect the output of the Pulse block (CNT
block) to input rv of the lower ACCUM block as well.
29 Connect the output of the ChangeOfDay block (XPB block) to
input rs of the lower ACCUM block.
30 Connect the output of the lower ACCUM block to the horizontal
input of the lower division operator.
31 Connect the output of the lower division operator to input D of the
CDay_Usage block (SHR block).
20 Observe the contents of the two ACCUM blocks and the C_Usage
block (SHR block) after a number of executions. The value of the
upper ACCUM block should have been transferred to the SHR
block and the lower ACCUNM block should contain the number
of pulses.
21 Click the Cooling\Pulse button a number of times and observe the
value of the two ACCUM blocks again. The upper ACCUM block
should show the number of new, simulated pulses and the lower
one should contain the number of all the pulses.
To observe the number of pulses during a full day, we will have to wait
for 86400 simulated execution intervals. To shorten this period of wait-
ing, we do as follows:
22 Use Options\Set Date and Time... to enter, for instance 23 in the
hour field and 58 in the minutes field.
23 Click OK.
24 Observe the contents of the C_Usage and the CDay_Usage blocks
(SHR blocks). The value of each ACCUM block should have been
transferred to the two SHR blocks after a number of executions.
The added number of pulses replaces the contents of the C_Usage
block. The total number of pulses replaces the contents of the
CDay_Usage block.
3 Select LOG28 and click Edit ... to open the Trend Log Definition
Menu.
Note
You can also double-click the LOG28 to open the Trend Log Defini-
tion Menu.
14 Click OK.
Note
Read Section 6.12, “Local Trend Logging in the TAC Xenta” to learn
more about the Trend Log.
Here we do not define the Log Type parameters. These are used by hte
TAC Vista operator station, and we assume they are defined using TAC
Vista.
Note
Read the Manual "Engineering TAC Vista Server" to learn more about
the use of Trend Logs in TAC Vista.
Note
Read Chapter 10, “OP Configuration Tool” to learn more about the
OP Configuration tool.
Caution
Automatically generating a menu tree will destroy a previous custom-
made menu tree.
Service menu
One optional part of a menu tree is the TAC service menu, a fixed menu
allowing the user of an OP to read the Xenta system program version,
the name and network address, configure I/O modules, and restart the
Xenta device. The service menu is accessible via a fixed access code.
To include the service menu, we have to use the OP Configuration tool
and prepare the following.
6 Select OP Configuration in the Tools menu to open the OP Con-
figuration tool.
7 Select Settings ... in the Formats menu.
8 Make sure that the Use Service menu is checked and then click
OK.
9 Select Exit from the File menu to close the OP Configuration
tool.
COM Port
RS232
Note
Read Chapter 12, “The Download Wizard” to learn more about the
Download Wizard.
Note
Read Section 11.5.1, “Online Mode” to learn more about using the
Online Mode.
Alarms
This is the part of the information you get when you use File/Print and
have the Alarms box checked.
Public Signals
This is the part of the information you get when you use File/Print and
have the Public Signals box checked.
Constants
This is the part of the information you get when you use File/Print and
have the Constants box checked.
Constants usage
This is the part of the information you get when you use File/Print and
have the Constant Usage box checked.
Constant In block
Cooling\C1_Start_SP Cooling\C1_2P
Cooling\C1_Stop_SP Cooling\C1_2P
Cooling\C2_Start_SP Cooling\C2_2P
Cooling\C2_Stop_SP Cooling\C2_2P
Cooling\C3_Start_SP Cooling\C3_2P
Cooling\C3_Stop_SP Cooling\C3_2P
Cooling\C4_Start_SP Cooling\C4_2P
Cooling\C4_Stop_SP Cooling\C4_2P
Time Schedules
This is the part of the information you get when you use File/Print and
have the Time Schedules box checked.
Block Parameters
This is the part of the information you get when you use File/Print and
have the Block Parameters box checked.
REFERENCE
5 Introduction to TAC Menta
6 General Concepts
7 The Mouse and Function Keys
8 Edit Mode
9 Simulation Mode
10 OP Configuration Tool
11 Other Functions and Tools
12 The Download Wizard
13 Function Blocks, Summary
14 Simple Blocks
15 Expressions
16 Operators
18 Test Probe Blocks
17 Supported SNVTs
19 Error Messages
20 Programming Hints
Note
Applications saved in TAC Menta 4.0 (or higher) can not be used by
versions of TAC Vista older than 3.2. In order to support older TAC
Vista versions, you can save TAC Menta 3.1 applications in TAC
Menta 4.0.
5.4 Setup
TAC Menta Setup is a program module for setting up communication on
your system:
Table 5.2:
6 General Concepts
An application program is defined by its graphic representation, the
function block diagram (FBD). The two fundamental elements of the
FBD are the function blocks (FB), which process data, and the connec-
tions, which transport signals (data).
During simulation of the application program, the values of the signals
in the FBD may be observed during runtime. You may modify the sig-
nals during execution, plot the evolution of signals graphically in the
trend log, and assign values to the physical inputs.
6.2 Signals
A signal is the primary unit of information managed by an application
program, and represents a physical or calculated magnitude which var-
ies with time. The signals are variables in the application program
which are generated as outputs of function blocks and are propagated
via connections to the inputs of other blocks. All function blocks only
have one output, and each function block generates a unique signal.
Table 6.1:
In some cases, we use a fourth type of signal, namely the analog type
which means that either real or integer signals, without distinction, can
be connected to the outputs/inputs in question.
Table 6.2:
6.3 Connections
A connection is a link between the output of one block and one or more
inputs of other blocks. The connections are typed: they inherit the type
of output of the connected blocks. In the FBD, binary connections end
with empty arrowheads, while analog (real, integer) connections have a
filled arrowhead.
Connections are formed by various straight line segments. The points of
union between segments are called nodes. When a node joins two or
more segments on the screen, the node is displayed as a black circle to
differentiate it from two connections crossing each other. Normally, a
connection starts at a block output and ends at a block input. It is also
possible to have non-terminated connections. In this case, when only
connected to an output, it is represented by a small black circle, and if
only connected to an input, by a black square. However, unconnected
inputs are not allowed by the TAC Menta compiler, so they must be
connected before entering Simulation mode.
• Test probes
Table 6.3:
6.4.2 Expressions
The expression block is a special block with a number of inputs, an
arithmetic expression (may be complex) but only one output. An
expression block will have as many inputs as there are variables
declared in the expression. The graphic representation of the expression
blocks may change, dependant on the expression size and the number of
inputs.
Table 6.4:
6.4.3 Operators
An expression such as the one written on an expression block may be
graphically developed as various operator blocks interconnected by
connections. The result is completely equivalent.
test probes can only be used for simulation, it is not possible to generate
application programs which contain test probes.
6.5 Constants
TAC Menta allows the definition of identifiers which represent constant
numeric values for use in parameters of blocks instead of a numeric
value. These identifiers we call constants and they are declared in the
Constants table.
stant, which by default is the same as the Module name of the block, will
not be displayed in the FBD (unless it differs from the Module name of
the block).
We recommend that you always names blocks containing public con-
stants, otherwise the constants cannot retrieve/change Module names.
Note
It is important to note that public constants can be modified via the net-
work as well during runtime.
Public constants may only be assigned to one FB parameter, whereas
an internal constant may be assigned to any number of FB parameters.
The reason for this is that internal constant names are substituted with
the corresponding numerical values when the FBD is compiled. This
cannot be done with public constants, since the reference (pointer)
mechanisms in TAC Menta do not allow multiple references to one
public constant from several FB parameters during runtime.
A public constant may not be given the same name as a public signal.
Nor is it possible to define a public constant that is not used in any
block parameter.
Public constants are not allowed inside expression blocks, or in oper-
ators, see Section 6.4, “Function Blocks”.
Public constants are not allowed inside the binding parameters of I/O
blocks, see Section 6.6.1, “I/O Blocks”.
Public constants are also included in the program specification, but only
following compilation of the FBD. The public constant are classified as:
Table 6.5:
Physical Terminal
Table 6.6:
Network Variable
Table 6.7:
Note
Delta and Period must always be selected in such a way that a high
network load is avoided. Try to send signals via the network on a 60
or a 30 second basis, rather than every second.
Online Device
A generic DI block can be used to check if a remote device is online, by
using the “online device” binding option and specifying the network
address of the remote device in the I/O configuration table. This can be
used, for example, in applications where signals are imported from
other devices in the network, and where alternative actions must be
taken if communication is broken.
Table 6.8:
SNVT
The SNVT option is used to import/export external signals via the net-
work. The signal is first given a SNVT name (which may differ from the
signal name) in the binding dialog, and then the defined SNVT variable
is bound to an external signal of the same SNVT type.
For a list of supported SNVT’s see Section 17.1, “List of SNVTs”.
Note
There will be no network communication between two bound SNVT
variables, unless either the output variable is set to Send a new value
periodically (or on Delta change), or the input variable is set to Poll
the output periodically.
Table 6.9:
Note
A public constant can only be assigned to one block parameter.
6.7 Modules
In a block, the Module name will be a part of the signal name (syntax:
Module name\Signal). The Module name can be entered or edited in all
Fig. 6.6:
The Module concept enables you to divide the application program into
different systems, e.g. several heating groups. This provides two major
advantages:
• All public signals belonging to the same Module will be dealt with
together when being imported into a supervisory system (TAC
Vista).
• The same signal name can be used in different Modules, e.g.
AHU1\T1_SP and AHU2\T1_SP.
If a public signal belonging to a Module is used as a Network address in
a Network variable (TACNV), the Module name will have to be
included (syntax: \Device\Module\Signal), where “Device” is the TAC
Xenta Device name. Signals without Module names are addressed
\Device\Application\Signal, where “Application” is the Application
name as entered in the Name field of the Program specification table.
Alternatively, signals without Module name can be addressed
\Device\\Signal.
FBD. The diagrams below show an HFB on the top level, as well as on
the expanded level..
Table 6.10:
For some blocks, the only available access class is RO. This applies to
all blocks without internal states, where the computed output value
depends only on the current value(s) of the input signal(s). If the output
of such a block is modified via the network, the modification will not
have any effect on the output value computed by the application pro-
gram during the next program cycle. There are other block types, how-
ever, where it makes sense to allow external write operations on block
outputs. This is true, for example, for integrators and accumulators,
6.9.2 Constants
Public constants have the access class RW in the FBD. The desired
access class for OP display (RW or RO) is specified by the user in the
OP configuration tool.
Table 6.11:
Table 6.12:
Table 7.1:
Table 7.2:
Key Description
Delete Deletes a selected block or group of blocks.
F1 Help.
F2 Starts or stops (Toggle) the continuous execu-
tion of the application program. Same as
clicking on the Execute button in Simulation
mode.
F3 Stepwise execution of the application pro-
gram. Same as clicking on the Step button in
Simulation mode.
F5 Toggles between FBD and tabular simulation
mode.
F7 Searches for a block or a comment which con-
tains a given text string in the block name, the
block type or in a parameter. Same as the Edit
– Find command. The key works in both Edit
and Simulation mode.
8 Edit Mode
When TAC Menta is started by the user, it always starts in Edit mode.
In this mode, the main window consists of a single pane in the client
area with two scroll bars. This window is called the diagram window
since it is here the FBD will be created.
Note
If the class of new block is the same as the last block created, you will
simply be able to double click on the background.
9 After the first step, the block selection dialog will appear. The dia-
log differs depending on the class selected: For the classes Simple
block, Operator and Test probe, the dialogs are very similar. There
are three ways to make the selection:
a Double click on an element in the list of types.
b Click on an element in the list and accept (OK).
c Manually enter the type of the block and accept (OK).
Exiting by selecting Cancel will abort the creation of the
block.
For the Expression class, the selection dialog is the same as the
editing, which we will cover in the next section.
10 On closing the dialog, a new block will appear at the cursor posi-
tion where you clicked during step 1. If the block does not have
enough room, it will appear as a floating selection on the window
background.
Table 8.1:
Table 8.1:
Table 8.1:
8.2 Connections
8.2.1 Drawing a Connection
When you draw a connection, the mouse cursor appears as an X and is
tracked by a green, elastic straight line which is always fixed at one of
its end points. To draw a connection, follow these steps:
1 Initiating the Connection
There are various options:
a The connection starts in a block: click using the left button on
the output of the block.
b The connection starts in a node: click using the left button on
the node or click the right button, and select Create Node
from the pop-up menu CONNECTION.
c The connection starts in another connection: right-click on the
connection, and select Create Node from the pop-up menu
CONNECTION.
d The connection starts in the background area: right-click on
the background, select Node… from the pop-up menu NEW
and select the desired type of connection (real, integer or
binary) in the sub-menu.
In every case, a green, elastic connection will track the cursor.
2 Drawing the Connection
Move the cursor to the point where a break point is to be made and
left-click. The floating connection will be converted into a real con-
nection and a new floating connection will be started from the
break point. This step may be repeated as many times as necessary,
creating a connection made up of various consecutive segments. If
the shift key is pressed while the cursor is being moved (and the
Orthogonal connections function is not activated), the connection
will only adopt angles which are multiples of 45 degrees.
3 Deleting the Last Segment of the Connection
Each time the right button is pressed while drawing a connection,
the last segment of the connection will be deleted.
4 Ending the Connection
To end the connection in the input of a block, left-click the input.
The cursor symbol changes appearance when the it is possible to
connect to the input. To let the connection remain unterminated in
some point, double click the left button on the background.
pressing the CTRL key while dragging the connection allows the user
to fix the vertical segment in a certain position.
When drawing a connection, the mode of the current segment can tem-
porarily be changed from orthogonal connections to non-orthogonal
connections and vice versa, by pressing the CTRL and Shift keys simul-
taneously.
Table 8.2:
Table 8.2:
Note
Macro commands are executed in order from top to bottom. The first
Replace command will replace, in all blocks, the first appearance of
the text string, the second Replace command will replace the second
appearance, and so on.
Note
Only completely selected connections are saved in the macro block,
see Section 8.3.1, “Selecting a Group”
file, whereas in the second case, a lot of other information such as con-
stant values, specification data (author, type etc.) is included in the file.
Note
Only constant names, not constant values, are stored in macro block
(.MCB) files. Thus, the values of constants used in a macro block will
not be imported when a macro block is loaded into an application pro-
gram. If a macro block containing constants is loaded, the new con-
stants will not be added automatically. Instead, the error message
“Undefined constant” is shown when the FBD is being compiled. This
also applies to .AUT files created using the Save Group command.
If you already have function blocks and connections that you want to
make into an HFB, drag the cursor around a group of function blocks
and select Create HFB from the GROUP pop-up menu. Please note
that you cannot undo a Create HFB command. For this reason, saving
your application before you create an HFB is strongly recommended.
Note
These I/O-blocks are only a graphical solution in TAC Menta. They
are not downloaded to the TAC Xenta, entailing that these signalscan-
not be read from TAC Vista or the TAC Xenta OP.
Note
When you are selecting terminals in the terminal reference selection
menu, “#” after the terminal address indicates that the terminal is
already allocated.
Constant names cannot be assigned to I/O configuration parameters.
Note
If you alter the attributes logged signal, log interval, log space, do not
stop if logically activated, empty log upon activation or the type of log-
ging (cyclical/non-cyclical log) of an existing log definition and
download it to the TAC Xenta device, the running loggings will be
stopped and all logged values will be lost. You will recieve a warning
before this change.
Table 8.3:
Table 8.4:
Signal
Table 8.5:
Control
Table 8.6:
Logging Type
Select one of four possible logging types. Cyclical log storage means
that the logging will continue when the log space is full, the oldest val-
ues then being overwritten by the new values.
• Cyclical log in TAC Xenta, cyclic storage in TAC Vista
Table 8.7:
The dialog also contains buttons for case sensitive searches, searches
for whole words and the replacement of matches in all blocks (Replace
all).
Note
The following functions in the Find and Replace dialogs:
Checking the Signal and Constant names box means searching for the
text string used as a Signal name in block identifiers, in constant
names, in network addresses and in SNVT names.
Checking the Module names box means searching for the text string
used as a Module name in block identifiers, in constant names, in net-
work addresses and in SNVT names.
Checking both the Module names and the Signal and Constant names
box means searching for a text string containing both the Module
name and Signal name, e.g. AHU01\TS, in block identifiers, in con-
stant names, in network addresses and in SNVT names. Note, how-
ever, that in this case, changing the Module name is not allowed.
The program will not always do a string length check in a name after
executing a Replace command. So, please check carefully that the
Module name does not exceed 12 characters, and that the Signal and
Constant names do not exceed 20 characters after executing a Find
and Replace command.
When the Search for field is empty, all blocks of the marked block
type(s) will be searched for.
The most recent unique search and replace strings are saved and can
be retrieved via the dialog.
8.12 Undo
The Undo command is executed via Undo in the Edit menu, or via keys
Ctrl-Z. You can undo a deletion of one or more selected function blocks,
including the connected nodes. If the area covered by the deleted func-
tion blocks and connected nodes is too big to fit into the screen, the
upper left corner of this area will be shown.
Using the Undo command, it is possible to make one step backwards. If
another command, except File/Save, is executed, the Undo command
will be disabled. Example: if you delete a function block and then, for
instance, open a hierarcical function block diagram, you will not be able
to undo deletion of the function block.
9 Simulation Mode
Once the FBD has been created and correctly designed, you may go
from Edit mode to Simulation mode, in which the application program
may be executed in order to study the behavior of the signals. In online
mode, signal behavior is simulated in real time. In this mode of opera-
tion, the application window is made up of two panes, the diagram win-
dow and the trend logging window:
Fig. 9.1:
The two panes are separated by a separator which may freely be moved
to change the proportions of the two windows. To move the separator,
click on it with the left button and hold, move the cursor sideways. On
releasing the button, the sizes of the two panes will be recalculated.
Double clicking the left button on the separator will switch between ver-
tical and horizontal separation of the panes. The diagram window dis-
plays either the FBD or a table (Tabular mode) containing all public
signals and parameters, sorted in alphabetical order. There are a number
of buttons exist the two windows. The buttons on the left are used to
manage the physical inputs, The buttons at the top are for controlling the
execution of the application program.
Table 9.1:
Table 9.2:
Table 9.3:
Table 9.4:
Fig. 9.2:
The data is saved in ASCII format, enabling export for further analysis
using other tools. The log file can also be displayed in the Logger via
the File – View log command.
9.6.4 Constants
Only public constants are accessible in Simulation mode. Values of
non-public constants can be inspected but not modified in the Constant
Table. Public constant values that are modified from the Constants
Table update the source code, but changes from Tabular mode do not.
10 OP Configuration Tool
The OP configuration tool is accessed through the OP configuration
command in the Tools menu. When this command is selected, the spec-
ification (.ESP) file is automatically generated and the OP configuration
tool is invoked with the .OPC file of the current application. If this file
does not exist, a warning message will appear and the user will be
prompted to select either the default file (DEFAULT.OPE) or an exist-
ing .OPE file to be used as the default tree. Clicking OK without select-
ing an .OPE file, will invoke the tool with a completely empty menu
tree.
Fig. 10.1:
The screen consists of four main areas:
Table 10.1:
Change Menu The menu item name can be edited by using the
Item Name Change Name command button. For the root
menu item (application) both the name and the
abbreviation are shown, but neither of them can
be changed, since they are defined in the Pro-
gram specification in the FBD programming part
of TAC Menta. The abbreviation is shown in all
dialogs so that the operator can always see the
device on the network that he is presently work-
ing with. The abbreviation is also used to indi-
cate a summary alarm in the TAC Xenta, the text
will flash to indicate that there are unacknowl-
edged alarms in the alarm list.
Operator Panel By locating the cursor in the display area, texts
Display can be edited or added. Depending on the menu
item type, different default texts will be copied
to the display. The application abbreviation text
will always be copied to the upper left corner of
all displays. Also, the menu item name will auto-
matically be copied to the top row of the screen
display when a screen item is created.
For some menu items, this area also includes a
number of command buttons for inserting refer-
ences, names etc. There are also command but-
tons for setting the properties of inserted signal
references.
Menu Item List This area will contain the list of menu items (sub
(Signal List) menu) for the selected menu item, if that is a sub
menu or the root item type. This area can also
display a list of signals used when inserting ref-
erences, names etc. into the OP display.
Table 10.2:
The other item types, called screen items, can be compared to files in
Microsoft® Windows Explorer, with the “file” contents shown in the OP
display:
Table 10.3:
then selecting the Add button in the menu item list part of the screen.
This will open a dialog where a name can be entered and a menu item
type selected. Depending on the type selected, different default panel
displays will be created. When there are menu items below a created sub
menu item, this is indicated by a “+” sign in the sub menu item icon in
the menu structure display. Double-clicking on this icon will also make
the menu items in the sub menu appear in the menu structure display
(see also Tree – Expand menu option).
Note
The OP menu tree can only contain a maximum of 255 OP screens.
To change the order in which menu items appear, these can be moved
using the drag-and-drop technique in the menu item list window. To
delete a menu item, select (highlight) it in the menu item list and
remove it using the Delete button.
10.2.3 Status
The menu item type Status ( ) is used to create dialogs in which
parameters and measured values are displayed and edited.
In the Operator Panel display window, the actual editing of the screen
layout is done. Text strings and references to signals (parameters, mea-
sured values) can be inserted into a certain position indicated by the cur-
sor by double clicking in the signal list, or by means of the Insert
Module (including the selected separator), Insert Name, Insert Signal
and Insert Unit command buttons. These insert buttons will only work
if a specification file has been loaded. With the cursor correctly posi-
tioned in the Operator Panel display window a signal is selected in the
list in the bottom right corner of the screen. Used signals in the signal
list are shown in normal characters, while unused ones are shown in
bold characters. If a signal reference is used in more than one place
within the menu tree structure, this signal will be shown in normal char-
acters.
Note
The displayed list only contains signals belonging to the same Module,
so you will first you have to select Module via the box above the sig-
nals list. Using the different “insert” buttons names, unit or signal
value references can be inserted into the dialog.
The Property command button is used to invoke a dialog for the signal
highlighted in the Operator Panel display window. The dialog contains
the following settings:
Table 10.4:
The settings Minimum and Maximum are used to set the limits, which
must be within the range (–32768, 32767), for changes using the “+” or
“–” key in the OP. These limits are only in use when the operator alters
the value via the OP.
Default values for Minimum, Maximum and No. of decimals, for use in
all new signal reference property dialogs, are set via the Signal Prop-
erties command in the Formats menu.
A highlighted signal reference in the Operator Panel display window
can be deleted using the Delete signal button.
A Status menu item can consist of several pages. Use the Add page
command button to create the additional pages with parameters/values.
Note
If a Status menu item is deleted, then the corresponding signals will
not be indicated as unused (bold) in the signal list until the list is
updated e.g. via the Tree – Update specification command.
10.2.4 Alarm
When a menu item of the Alarm type ( ) is created, a default screen is
created, with references to the alarm list. Note that even if several
instances of Alarm type can be created, they will all refer to the same
alarm list. No other properties than name and access level should be
edited for this menu item type. The alarm text displayed in the OP is
defined in TAC Menta.
file. New signals which did not exist in the original signal list are avail-
able in the signal list of the revised file and can also be pasted in.
15–17 and the unit is placed in positions 18–20. New pages are
automatically added, if necessary.
• All RO analog signals will be sorted in alphabetical order in the
second low access level Status menu item, with one signal per row.
Consequently, there must be at least two status menu items in the
tree, or else the analog signals won’t be displayed. The signal
name is placed in positions 1–9 (longer names are truncated), the
signal reference (with default properties) is placed in positions 10–
17 and the engineering unit is placed in positions 18–20. New
pages are automatically added, if necessary.
• All binary signals (Both RO and R/W) will be sorted in alphabeti-
cal order in the first medium or high access level Status menu
item. Layout handling as above.
• All analog signals (Both RO and R/W) will be sorted in alphabeti-
cal order in the second medium or high access level Status menu.
Layout handling as above.
• The first available Time schedule will be assigned to the first Week
chart menu item and the first Holiday chart menu item. The sec-
ond Time schedule will be assigned to the second Week chart
menu item and the second Holiday chart menu item, etc. Note that
there will be an error message, and generation will be interrupted
if there are more Week/Holiday charts in the menu tree than Time
schedules in the FBD.
If the FBD contains two or more Modules, the Status menu item will
automatically be replaced by a Sub menu item containing the corre-
sponding number of Status menu items, all with the same names as the
Modules.
The OP menu tree often contains an information menu displaying the
application type, software version etc. This type of menu is created as a
Status menu item only containing text. To prevent the information menu
from being overwritten by automatic generation, it can be defined as an
Information node (Name “Info” menu = MENUNAME) in Formats –
Settings. This menu will then be excluded when the program searches
for status menus.
The generated OP menu tree can, of course, be manually edited in the
OP configuration tool. Please note, however, that all manual alterations
will be deleted if you auto generate the menu tree again. Therefore,
always try to prepare the standard OP menu tree file, from which the
menu tree will be built, in such a way that no manual editing will be
needed. For example, it is possible to change the standard of the signal
features and/or to save them.
this file into the OP configuration tool, and the .OPC and the .BIN files
are automatically created and saved to disk. The .DOP file can be edited
by any Windows based text editor or word processor.
Table 10.5:
Table 10.6:
Row by row, the OP display texts are entered between single quotes,
exactly as they will appear on the screen. The texts are truncated if they
are longer than 20 characters. An empty line can be defined as “ “
(a space; do not use tabs!). New pages are automatically created, when
necessary.
Digital signals are defined with a “~#” in the text, followed by two
attributes: the signal reference (including module) and the read/write
attribute (RO/RW), all written on one line.
Analog signals are defined with a “~#.#” in the text, followed by five
attributes: the signal reference (including module), the Minimum set-
ting, the Maximum setting, the No. of decimals setting and the read/write
attribute (RO/RW), all written on one line. To display more than one
signal in an OP display row, separate the next signal reference with a
tab/space and define the signal and its attributes. Max. 10 signals can be
defined in one row, and all the data for one specific row of the display
has to be on one row in the .DOP file.
Table 10.7:
A standard layout display will be created for all these menu items.
Fig. 10.2:
Fig. 10.3:
A simple way to find the decimal coded character number, is to start the
Character mapping program (CHARMAP.EXE) in Windows™
Explorer (normally located in the Accessories program group), and look
for the character in the Arial True Type mapping, for instance. Here all
characters are shown in order, starting with the “space” (decimal code
32) in the upper left corner.
Finally, open the Formats – Character set file dialog in the OP config-
uration tool, and select the new character set file. From now on, the new
characters will be used when the Generate command is executed.
FILE
Table 10.8:
FORMATS
Table 10.9:
Note
If you want to permanently use other default texts or values for Signal
properties, Alarms, Date and time, National Weekdays and National
Months than those stored in the OP configuration tool, you will be able
to save these altered texts and values via Save as an empty menu tree
file (.OPE), which you will then use as template file whenever you are
creating a new menu tree.
TREE
Table 10.10:
Table 10.10:
HELP
Table 10.11:
Table 11.1:
Table 11.2:
XIF header gen- TAC Menta can, for TAC Xenta from system
erated accordnig program version 3.3, generate an XIF file in
to LonMark which the device’s LonMark approved program
ID is included in the first row of parameters. Pre-
vious versions did not include this information,
but by checking this box, for example, when
upgrading the TAC Xenta device, the correct
information will be included. NB. If the XIF file
is altered in this way, you must re-make all its
bindings in the Network management software.
Add new net- Defines that all new network variables (SNVT)
work variables will be placed last in the XIF file when an exist-
(SNVT) last in ing application program is edited. This means
the XIF file that only these new variables have to be bound in
the Network management software; no existing
bindings must be re-made. Note, however, that if
a network variable is deleted, or if an existing I/
O block is altered e.g. from “Non linear analog
input” to “SNVT”, you must re-make all bind-
ings. Also the very first time the function (which
is the default from TAC Menta version 3.24) is
used on an existing application program, all
bindings must be re-made.
Use LonMark TAC Xenta 283 can work as a LONMARK 3.3
3.3 approved real time keeper, using UTC time as
input and returning local time as output. How-
ever, this applies only to System Version 3.6 or
higher. If the box is not checked a LONMARK
version 3 XIF file will be generated.
The I/O Expansion and Wall Module Table has the buttons Edit, Add
IO Module, Add STR Module, and Remove. The following parame-
ters can be defined/altered in the Edit IO Expansion Module table:
Table 11.3:
Type The type (TAC Xenta 411, TAC Xenta 412 etc.)
of each of the I/O modules in the current applica-
tion, selected from a pre-defined list of sup-
ported types. The list is defined in the
TATYPE.INI file.
Min send time Defines how often the I/O module is allowed to
communicate with the TAC Xenta. The default
and minimum value is 500 ms, but the value can
be increased to reduce network traffic.
Fast CNT Defines whether fast reporting of the status
reporting changes of pulse inputs (CNT) is to be used. The
function is used when connecting push buttons
for lighting control. Note that the function will
increase network traffic. The box is not checked
by default; reporting a status change will then
take about 30 s, which can be used for energy
pulse metering, for instance.
For the STR Wall module the Edit STR Wall module table holds the fol-
lowing parameters to be defined/altered:
Table 11.4:
Table 11.5:
The file name and date of the source code (.MTA/.AUT) file is included
in the object and executable files. This data is included in the informa-
tion transferred from the controller to the PC during upload, see
Section 11.7, “Uploading Application Data”.
When the executable code is generated, new OP files can also be gener-
ated, either automatically or user selected via a pop-up dialog. In doing
so, the OP configuration tool is invoked with the .OPC file of the current
application, but with “Name” and “Abbreviation” taken from the cur-
rent program specification, and the following files are automatically
generated:
Table 11.6:
Note
The application can be downloaded even if it doesn’t fit into the TAC
Xenta. In this case, the network configuration will have to be reloaded.
The displayed values are calculated for a version 3 TAC Xenta device,
and may differ slightly from the true memory usage of the TAC Xenta.
Furthermore, there are additional max. limits in the TAC Xenta device,
which may stop a download attempt and give a “Parser code error” mes-
sage while trying to download. Please contact the TAC Helpdesk if you
are having this type of problem!
The available general storage depends on the TAC Xenta device (280/
300/400) and version used. The TAC Xenta uses the following memory
areas (three in the TAC Xenta 300; four in the TAC Xenta 400) to store
the application program and data. In TAC Xenta 300, the Application
files and Application are joined in one single memory area.
Table 11.7:
Table 11.8:
Table 11.9:
Note
The version format (1 or 3) of the downloadable code files can be
defined by the System program setting in the Device configuration
command of the Options menu, if the files are to be generated before
the TAC Xenta device is online.
Upload
When the Upload command is executed, a check whether the device is
empty (No FBD) will be done, in which case the operation will be
aborted.
If the program IDs of the TAC Menta FBD and the program in the con-
nected device do not match, the FBD in TAC Menta will be discarded.
The user is prompted to enter a name for the uploaded .COD file, and
will, following the upload, only be able to work in tabular mode.
If no FBD is loaded in TAC Menta, the user will be prompted to enter a
file name for the uploaded .COD file.
If no errors are detected, the application in the controller will be
uploaded to the PC. Then the .BIN, .CHR (if they exist), .COD and
.BPR files will be uploaded.
the .COD file is saved once more with the same user-selected name as
the uploaded file. The program then looks for the file with the specified
name on the hard disk, and sends a copy to the connected device.
Table 11.10:
The header to be printed on all pages is created in the Page setup dialog.
Row 1 of the header is always the Application name. Row 2 contains the
information entered in the Page header field, which can contain free
text, text from the fields of the Program specification table (#author,
#abbrev, #type and #date), the printout time and date (#prdate and
#prtime) and a tab character (#tab).
The blue lines on the screen, which mark the printout page breaks, can
be switched on/off in the Page setup dialog. The Add boundary ties
command in the Edit menu adds cross reference boxes on both sides of
the page break markers, for all connections that cross page breaks. The
boundary ties can be moved and/or deleted. After a printout, the bound-
ary tie will indicate the page and the signal number where the connec-
tion continues.
The documentation is printed by selecting the Print command in the
File menu. First, the user selects the information to be printed: Specifi-
cation (devices, public signals, I/O list, alarms, constants, constant
usage, time schedules and block parameters), FBD, associated text file
and/or OP menu tree. The orientation of the FBD is selected in the Page
setup dialog, the other information is always printed in accordance with
the Microsoft® Windows printer setup. Select a printer from the Printer
list.
If the text file option is selected, the associated text file (if available) is
printed after the program specification.
The Scale output to one page option in the Print dialog makes it possi-
ble to print one level of the FBD on a page, or one page per level. The
option Color printout is used for color printers. The option Skip empty
pages means that completely empty FBD window pages will not be
printed.
If a group of blocks is selected when the Print command is executed,
the selected group will be printed instead of the complete FBD.
If the function block diagram contains HFBs, you will either be able to
print the FBD on the current level, or make a printout on all levels.
The OP menu tree can be printed on two levels; as an overview part or
as a detailed part, including a fully expanded menu tree.
As an alternative to printing the specification, the I/O list can be saved
as an ASCII text file (.TXT) by means of the Export I/O list command
in the File menu. The text file can in turn be imported into other pro-
grams, for example CAD programs. The I/O list in the text file contains
the following columns: I/O Module No (0 = TAC Xenta 280/301/302/
401 etc), TAC Xenta or I/O Module type, Terminal Reference and Sig-
nal name.
When the “Block parameters” box in the Printout dialog is selected,
comments that are specific for TAC Vista can be printed.
Open the Start menu in Microsoft® Windows. Select TAC and TAC
Tools and you will find the Download Wizard.
The Download Wizard is a guided download procedure for upgrading
the System program of one or several TAC Xenta devices.
Note
The possibility to reuse/update a program module during a system pro-
gram upgrade depends on the program version compatibility. Also,
different extra preparations or actions may be required. For example,
a TAC Xenta 300 using System program v 1.01 cannot be updated to
version 1.13 (or later), unless both the application source code (.AUT)
and the network configuration (.NWC) are available when the proce-
dure is run. So, always read the enclosed upgrading information before
installing a new program version.
! Warning
NEVER download a system program for a TAC Xenta 300 device into
a TAC Xenta 280 device, as this will render the TAC Xenta 280 device
useless.
Table 12.1:
Table 12.2:
! Warning
The TAC Xenta System download phase is critical; no other activity
is to take place at this time! If the procedure is interrupted, it may be
impossible to reload the System software.
7 The accumulated results of all the downloads are listed in the file
“dwiz.log”, normally residing in the TAC Menta program direc-
tory. The log contains information about
• start time and affected node
• performed operations with time stamp
• total time required
• result of operations
• delimiter
• at the end: the Neuron ID, if updated in the database.
8 When the download has completed, close the “Download Wizard”
window.
ing .AUT file, you may then regenerate the .COD file (with the
uploaded parameters) in TAC Menta v3 format. This will not, however,
be possible if you do not have the .AUT file. There is currently no way
of converting the .COD file from v1.x to v3 without having access to the
.AUT file.
13.7 Accumulators
Table 13.7:
14 Simple Blocks
Description
In the description of a block the following information is provided:
Fig. 14.1:
Table 14.1:
Description...
Table 14.2:
Fig. 14.2:
Table 14.3:
Description
This block is used to accumulate the total consumption from an incre-
mental input (the consumption during one program cycle). It calculates
the sum of the variable Increment over time. The summation is done
with using numerical precision to avoid underflow when the increment
is small.
Note
The accumulated value is delayed by one program cycle before it
appears on the output.
The accumulator output is set to InitValue at the initial state. When the
Reset input is activated, the accumulator output is reset to a value spec-
ified by the ResetValue input signal. When the Reset input is deacti-
vated, the accumulation resumes from the last value of the ResetValue
input.
The upper and lower output limits are set by the maximum floating-
point number that can be represented in the controller.
Fig. 14.3:
Table 14.4:
Description
This implements an Analog hysteresis function. The output follows the
input as long as the input is outside the limits of the hysteresis loop.
When the input variable enters into the hysteresis loop, the output takes
the limiting values of the hysteresis, cf. the figure below:
Fig. 14.4:
If Rise > Fall, the loop will be counter-clockwise as indicated in the fig-
ure, and if Rise < Fall, the hysteresis loop will be clockwise.
If a complex function containing several hysteresis loops is required,
the best method of achieving this is to form the function using other
blocks (POLY, CURVE, VECTOR, etc.) and append in cascade as
many AHYST blocks as there are hysteresis loops in the desired transfer
function.
Fig. 14.5:
The AI block has five different sets of parameters depending on the
selected I/O Configuration option:
• Linear Analog input
• Non-linear Analog input
• Network variable
• SNVT
• Constant value
The block output is updated only once during each program cycle,
which entails that changes in the physical inputs with a duration of less
than one program cycle will not be noted by the application program.
Note
If you are using TAC Menta version 4.0 and system version 3.5 of the
TAC Xenta device, it is possible to get the AI block to use the SI or I-
P system of units for specified parameters.
Table 14.5:
Description
The Linear Analog Input configuration option reads the value of an
Analog input using a linear sensor. The block output value is the phys-
ical Analog input value converted to engineering units.
The conversion for different system of units (SI or I-P) is defined when
the fields Min Value and Max Value are determined in relation to the
input signal range of the selected type of Sensor:
The Mod Number parameter specifies the I/O module number (0 =
TAC Xenta 280/300/400), and Terminal Ref indicates the type and
number of the input terminal (e.g. B1 – B4, U1 – U4).
Select the Sensor Type from a predefined list for the selected type of
TAC Xenta device or I/O module, e.g. 0–10 V or 4–20 mA. The con-
version to engineering units is done with the Min Value and Max Value
parameters, which represent the lower and upper sensor range limits in
engineering units, e.g. 0–40 °C, corresponding to the minimum and
maximum electrical input signal range limits.
After conversion, the sensor reading can be filtered in a discrete time
first order software filter included in the function block. The filter time
constant is specified in seconds with the Time Const parameter.
The filter algorithm is
1
y ( k ) = y ( k – 1 ) + ------------- ( u ( k ) – y ( k – 1 ) )
T
1 + ---
h
where y(k) and u(k) are the filtered and unfiltered values at time k,
respectively, h is the sampling interval (i.e. the application program
cycle time), and T is the filter time constant. If the time constant is less
than or equal to zero, no filtering is done. To obtain a good filter func-
tion, the time constant should be set significantly greater than the appli-
cation program cycle time.
This filter algorithm is based on a straightforward backward difference
approximation of the continuous time derivative operator. For further
details, please refer to, for instance, Åström and Wittenmark: “Com-
puter Controlled Systems – Theory and design”. Prentice-Hall, Engle-
wood Cliffs (1984).
The initial block output value for an I/O module block (before a signal
value has been received from the I/O module) is specified by the Initial
Value parameter. If the I/O module goes offline, the block output will
keep the last value that was received from the I/O module.
Description
The Non-linear Analog Input configuration option reads the value of
an Analog input using a non-linear sensor, for instance a thermistor.
The block output value is the physical Analog input value converted to
engineering units. The conversion is done through a predefined curve
defining the sensor characteristics.
The selection is made when the Sensor: parameter is selected in the
Drop-down Combo box in the Bind Analog Input dialog. Selecting a
sensor in the SI unit system (metric) will generate a block where the
block value is in the SI unit system (degree Celsius). Selecting a unit in
the I-P (inch-pound) unit system will generate a block where the block
value is converted to the IP unit system (degrees Fahrenheit).
For this type of analog input, the national setting of the PC does not
influence the unit system.
The Unit: parameter for this type is only a text, used to describe the
block and does not influence the unit system.
An edited application Function Block Diagram (FBD) will retain the
selected unit system for this type of block whether the FBD is opened
in a PC with an SI or an I-P unit system.
The Mod Number parameter specifies the I/O module number (0 =
TAC Xenta 280/300/400), and Terminal Ref indicates the type and
number of the input terminal (e.g. B1 – B4, U1-U4).
The type of sensor characteristic used in the conversion to engineering
units is selected from a predefined set of sensor types with the Sensor
Type parameter. The choice SP adjust is used when connecting the
potentiometer signal from the set point offset dial of a ZS 100 range
wall module.
Description
The Network Variable configuration option is used to import signals
from other TAC devices into the application program via the network.
The Network Address is a public Real or Integer signal in the other
TAC device, entered as a character string e.g. \RPU1\AHU1\Outdoor-
Temp (maximum string length \20\12\20). It is not possible to change
the network address reference during runtime.
The initial block output value (before a external signal value has been
received via the network) is specified by the Initial Value parameter. In
case of a communications error, the block output will not be updated
(i.e. it will always keep the last signal value that was received via the
network). After a cold start, when the controller RAM is cleared, the
block output will be reset to Initial Value.
The imported value will be updated each time the external signal value
differs from the last sent value by more than Delta units (A negative
Delta value means that the function is not used). Regardless of whether
the external signal has changed or not, the imported value will also be
updated when the time interval Period has elapsed since the last update
(Period values less than 1 s will give Period = 1 s).
Note
There is no point in using the same network address in several AI
blocks in the same FBD, because it would impose an unnecessary load
on network communications to have multiple import declarations of
the same external signal. Only one block for each signal should be
used, and connected to all blocks in the FBD that are using the
imported signal.
SNVT
Table 14.8:
Description
The SNVT option is used to import external signals into the application
program via the network. The input block must also be bound to an
external output variable of the same SNVT type via network manage-
ment software. Note that the signal can be given different names within
the application (the block name, e.g. OutdoorTemp) and on the network
(the SNVT name, e.g. nvioutdoortemp).
A SNVT is, by design, represented in the SI unit system, but you can set
it to be represented in the I-P unit system. The default unit selection is
determined by the national setting of the Windows© operating system
for the PC in which the application program is created.
The default Unit: parameter is determined when the Type and Member
of the SNVT is selected in the Bind Analog Input dialog. Selecting the
Description
The input block is not connected to an external physical or network
address. Instead the option assigns a constant value specified by the
Initial Value parameter to the block output.
Fig. 14.6:
Table 14.10:
Description
The ALARM block monitors the state of the Binary input signal. A ris-
ing edge (transition from 0 to 1) starts a timer which measures how
long the input is true (1). If the measured time exceeds the specified
alarm activation (set) delay time, an alarm record containing informa-
tion about the status, time, signal name, priority and an optional alarm
text will be generated by the system software. When an alarm is set, the
alarm block waits for the input to become false (0). The falling edge of
the input signal triggers a timer in the same manner as the rising edge.
After the alarm reset delay time has expired, the alarm is reset by the
system software.
The ALARM block output signal indicates the current alarm status. 1 =
alarm set, 0 = no alarm (reset).
The alarm set and reset delay times are specified in seconds with the
DelayOn and DelayOff parameters, respectively. Please refer to the
timing diagram below, which shows the setting and resetting of an
alarm. If a power outage occurs during the delay, the elapsed delay
time will be saved, if the Backup check box is set.
The alarm priority is specified with the Priority parameter. There are 10
levels, 1 to 9 and 0, where 1 is the highest. Events with priority 0 (Infor-
mation messages) have the lowest priority. They are not placed in the
alarm database of TAC Vista and do not appear in the alarm overview.
The priority value has no function in the Xenta application program
itself; it is used for presentation in, for example, TAC Vista or the TAC
Operator Panel.
Fig. 14.7: Relation between Input signal and Alarm Output signal.
Note
The input signal must be true for a time interval longer than DelayOn
in order to generate a new alarm. The input must also be false for a
time interval longer than DelayOff in order to reset the alarm.
Fig. 14.8:
Table 14.11:
Description
Calculates the boolean AND function of state1 and state2 according to
the following truth table:
Table 14.12:
Fig. 14.9:
The AO block has three sets of parameters depending on the selected I/
O Configuration option:
• Physical output
• SNVT
• Not connected
Note
If you are using TAC Menta version 4.0 and system version 3.5 of the
TAC Xenta device, it is possible to get the AO block to use the SI or
I-P system of units for specified parameters.
Physical Output
Table 14.13:
Table 14.13:
Description
The Analog output block converts a 0–100% signal from the application
program to a voltage signal on a physical Analog output.
The Mod Number parameter specifies the I/O module number (0 = TAC
Xenta 280/300/400), and Terminal Ref indicates the type and number of
the output terminal (e.g. Y1–Y4).
The output voltages corresponding to 0% and 100% input signal are
specified (in Volts) with the Voltage 0% and Voltage 100% parameters,
respectively. Note that the voltages may be reversed, e.g. Voltage 0% =
10 V and Voltage 100% = 2 V.
The Initial Value parameter specifies the output signal value (in V) for
an I/O module block when the I/O module goes offline, e.g. following
a restart immediately after a power outage.
SNVT
Table 14.14:
Description
The SNVT option is used to export signals from the application pro-
gram via the network to an external device. The output block must also
be bound to an external input variable of the same SNVT type via net-
work management software. Note that the signal can be given different
names within the application (the block name, e.g. OutdoorTemp) and
on the network (the SNVT Name, e.g. nvooutdoortemp).
A SNVT is, by design, represented in the SI unit system, but you can set
it to be represented in the I-P unit system. The default unit selection is
determined by the national setting of the Windows© operating system
in the PC, in which the application program is created.
The default Unit: parameter is determined when the Type and Member
of the SNVT is selected in the Bind Analog Input dialog. Selecting the
SNVT in a PC with a SI (metric) unit system will generate a block
where the unit remains in the SI unit system. Selecting the SNVT in a
PC with an I-P (inch-pound) unit system will generate a block where the
value is converted to the I-P unit system.
The Unit: parameter can be redefined using the Drop-down Combo box
in the Bind dialog.
An edited application Function Block Diagram (FBD) will retain the
selected unit system for this type of block whether the FBD is opened
in a PC with an SI or an I-P unit system setting.
Select Type and Member from predefined lists of supported SNVT
types.
The initial output value (before the first program cycle is executed) is
specified by the Initial Value parameter.
If Send is checked, the external variable will be updated each time the
block input signal value deviates from the last sent value by more than
Delta units. Regardless of whether the input signal has changed or not,
the external variable will also be updated when the time interval Period
has elapsed since the last update. If Period is set to 0, the external vari-
able will only be updated on Delta deviation.
If Send is not checked, the external device will have to poll to get
updated signal values. The exported value will only be altered if the
block input signal value deviates from the last exported value by more
than Delta units.
Not Connected
The Not connected binding means that the block is not connected to a
physical or network address. It has no configuration parameters.
Fig. 14.10:
The CNT block can, via the I/O Configuration option be bound as
either Pulse counter (Physical input) or Not connected.
Table 14.15:
Table 14.15:
Description
This block counts the number of pulses on a digital input since the last
execution of the application program. The counter will stop, not reset
to zero, if the number of pulses reaches the maximum Integer value
(32767) before the next program cycle or (if an I/O module is used)
before the value has been sent to the TAC Xenta 280/300/400. The
minimum pulse length depends on the hardware used.
The number of pulses is converted to engineering units by multiplying
the pulse counter value with the scaling factor Multiplier.
The Mod Number parameter specifies the number of I/O module (0 =
TAC Xenta 280/300/400), and Terminal Ref indicates the type and
number of the input terminal (e.g. U1–U4, X1–X4).
Depending on the value of the Normally Open parameter, counting is
triggered by the rising or falling edge of the digital input signal:
Check box set = trig on rising edge (open –> closed) Check box not set
= trig on falling edge (closed –> open).
Not Connected
The Not connected binding means that the block is not connected to a
physical or network address. It has no configuration parameters.
Fig. 14.11:
Table 14.16:
Table 14.16:
Description
This block implements an arbitrary partially linear curve defined by a
number of curve breakpoints (xi, yi), i.e. the function values y = f(x)
for a set of input x values. The number of breakpoints must not exceed
127. The number of specified breakpoints (N) is indicated as Dimen-
sion in the graphical function block symbol. The breakpoints are
entered as a list of Real values x,y separated by commas, with one co-
ordinate pair on each row. The x values in the list should be entered in
order, i. e. xi-1 < xi < xi+1.
The Input signal is compared to the x-components of the breakpoints in
order. The first coordinate pair with an x-component greater than the
Input signal is chosen as the end point of a line segment starting in the
previous point. The Output signal is then calculated by linear interpola-
tion on this line segment.
If the limit function selector is set to 1, the output will be set to y1 when
the input is less than x1, and to yN when the input is greater than xN.
When the limit selector is disabled, the output is computed by linear
extrapolation whenever the input signal exceeds the range (x1, xN).
The following is a graphical representation of a “simple” case:
Fig. 14.12:
If two coordinates are equal, the curve will look like this:
Fig. 14.13:
At the discontinuity, i.e. when the input = x2, the function output will be
y2.
Fig. 14.14:
Table 14.17:
Description
Provides the day of month (1-31) according to the internal time clock.
Fig. 14.15:
Table 14.18:
Description
This block delays the transitions of an input signal (state) by the time
specified in seconds as defined by the DelayOn (transition 0 to 1) and
DelayOff (transition 1 to 0) parameters. Note that the input signal must
be true for a time interval longer than DelayOn in order to generate a
pulse on the block output, cf. the timing diagram below. The input must
also be false for a time interval longer than DelayOff in order to reset the
output to false.
Fig. 14.16:
If a power outage occurs during the delay, the elapsed delay time will
be saved, if the Backup check box is set.
Fig. 14.17:
Table 14.19:
Description
This block introduces a delay of one program cycle in the propagation
of a Binary signal. Each program cycle, the output value is updated
with the input value from the previous cycle.
Fig. 14.18:
Table 14.20:
Description
This block introduces a delay of one program cycle in the propagation
of an Integer signal. For each program cycle the value of the output is
updated with the input value from the previous cycle.
Fig. 14.19:
Table 14.21:
Description
This block introduces a delay of one program cycle in the propagation
of a Real signal. For each program cycle, the value of the output is
updated with the input value from the previous cycle.
Fig. 14.20:
The DI block has five different sets of parameters depending on the
selected I/O Configuration option:
• Network Variable
• Physical Input
• Online Device
• SNVT
• Constant Value
The block output is updated only once during each program cycle, this
means that changes to the physical inputs that have a duration of less
than one program cycle will not be noted by the application program.
Network Variable
Table 14.22:
Description
The Network Variable configuration option is used to import signals
from other TAC devices into the application program via the network.
The Network Address must be a public Binary signal in the other TAC
device, entered as a character string e.g. \RPU1\AHU1\ExtendedOp
(maximum string length \20\12\20). It is not possible to change the net-
work address reference during runtime.
The initial block output value (before an external signal value has been
received via the network) is specified by the Initial Value parameter. In
case of a communications error, the block output will not be updated
(i.e. it will always keep the last signal value that was received via the
network). When cold starting, after the controller RAM is cleared, the
network input block output will be reset to Initial Value.
The imported value will be updated each time the state of the external
signal changes. Regardless of whether the external signal has changed
or not, the imported value will also be updated when the time interval
Period has elapsed since the last update (Period values less than 1 s
will give Period = 1 s). There is no point in using the same network
address in several DI blocks in the same FBD, because it would impose
an unneccessary load on network communications to have multiple
import declarations of the same signal. Only one block for each signal
should be used and connected to all blocks in the FBD that are using
the imported signal.
Physical Input
Table 14.23:
Description
The Physical input configuration option reads the state of a digital
input and translates it into a Binary value.
The parameter, Mod Number, specifies the I/O module number (0 =
TAC Xenta 280/300/400), and Terminal Ref indicates the type and
number of the input terminal (e.g. U1–U4, X1–X4).
Interpretation of the physical digital input state is defined by the Nor-
mal Polarity parameter. Normal Polarity = Open means that an open
input contact gives a block output value of 0 (false), and Normal
Polarity = Closed entails that an open input contact gives a block out-
put value of 1 (true). The initial block output value for an I/O module
block (before a signal value has been received from the I/O module) is
specified by the Initial Value parameter. If the I/O module goes offline,
the block output will keep the last value that was received from the I/O
module.
The TAC Xenta 422A and 452A have universal inputs that can be used
as digital inputs; their status are displayed using LED indicators. LED
Color determines the color (Green or Red) when the Universal Input
functioning as a Digital Input is activated. (If used for pulse counting,
only Green is possible.)
LED Polarity determines if the LED should be lit at closed contact
(Non-Inverted) or at open contact (Inverted).
Online Device
Table 14.24:
Description
The Online Device option is used to monitor the communication status
of an I/O module or another device in the network. This can be used, for
instance, in applications where signals are imported from other devices
in the network, and where alternative actions must be taken if commu-
nication breaks down. The device name (or the I/O module number: 1,
2, etc.) is specified in the Device Address parameter, which is entered as
a character string. To monitor the communication status of a supervi-
sory TAC Vista system, use the LonWorks Network name as the device
name. Note that the Online Device check can only be used for I/O mod-
ules which are defined in the TAC Xenta device where the application is run-
ning.
The block output will be true (1) if the device referenced by Device
Address is online. Otherwise, the output will be false (0). If Device
Address is the network address of the device itself, the block output will
be false (0) when no other node in the network can be found. Otherwise,
it will be true (1).
SNVT
Table 14.25:
Description
The SNVT option is used to import external signals into the application
program via the network. The input block must also be bound to an
external output variable of the same SNVT type via network manage-
ment software. Note that the signal can be given different names within
the application (the block name, e.g. StartButton) and on the network
(the SNVT Name, e.g. nvistartbutton).
Select Type and Member from the predefined lists of supported SNVT
types. For a Binary signal, SNVT_switch may be used.
The initial block output value (before an external signal value has been
received via the network) is specified by the Initial Value parameter.
In case of a communications error, the block output will not be updated,
i.e. it will keep the last signal value that was received via the network.
After external binding, the external output variable will be polled if Poll
is checked and no updates arrive within Period.
Constant Value
Table 14.26:
Table 14.26:
Description
This input block is not connected to an external physical or network
address. Instead the option assigns a constant value specified by the
Initial Value parameter to the block output.
Fig. 14.21:
The DO block has three different sets of parameters depending on the
selected I/O Configuration option:
• Physical output
• SNVT
• Not connected
Physical Digital Output
Tabell 5:
Description
This block sets the state of a physical digital output.
The Mod Number parameter specifies the I/O module number (0 =
TAC Xenta 280/300/400), and Terminal Ref indicates the type and
number of the output terminal (e.g. K1–K4).
The Initial Value parameter specifies the output signal value for an I/O
module block when the I/O module goes offline, e.g. following a
restart immediately after a power outage.
SNVT
Table 14.27:
Description
This SNVT option is used to export signals from the application pro-
gram via the network to an external device. The output block must also
be bound to an external input variable of the same SNVT type via net-
work management software. Note that the signal can be given different
names within the application (the block name, e.g. StartButton) and on
the network (the SNVT Name, e.g. nvostartbutton).
Select Type and Member from the predefined lists of supported SNVT
types. For a Binary signal SNVT_switch may be used.
The initial output value (before the first program cycle is executed) is
specified by the Initial Value parameter.
If Send is checked, the external variable will be updated each time the
block input signal changes its state. Regardless of whether the input sig-
nal has changed or not, the external variable will be updated when the
time interval Period has elapsed since the last update. If Period is set to
0, the external variable will only be updated on status changes.
If Send is not checked, the external device will have to poll to get
updated signal values.
Not Connected
The Not connected binding means that the block is not connected to a
physical or network address. It has no configuration parameters.
Fig. 14.22:
The DOPU block can, via the I/O Configuration option be bound as
either Digital pulse output (Physical output) or Not connected.
Digital Pulse Output
Table 14.28:
Description
This block activates a pulse on a physical digital output. The output
pulse length is given by the block input signal value (in seconds). The
DOPU block is designed to be used together with the increase/decrease
PID block (PIDI). Negative block input values are ignored.
The Mod Number parameter specifies the I/O module number (0 =
TAC Xenta 280/300/400), and Terminal Ref indicates the type and
number of the output terminal (e.g. K1–K4).
The Min Pulse parameter specifies the minimum output pulse length in
seconds. Input signals less than this value are accumulated for the next
application program cycle. Input pulse lengths longer than the applica-
tion program cycle time are truncated to a length equal to the program
cycle.
The Initial Value parameter specifies the output signal value (in sec)
for an I/O module block when the I/O module goes offline, e.g. follow-
ing a restart immediately after a power failure.
Not Connected
The Not connected binding means that the block is not connected to a
physical or network address. It has no configuration parameters.
Fig. 14.23:
Table 14.29:
Description
The enthalpy, kJ/kg (BTU/pond) of moist air at normal atmospheric
pressure is calculated as a function of the dry-bulb temperature °C, (ºF)
and the relative humidity (%).
Note
If you are using TAC Menta version 4.0 and system version 3.5 of the
TAC Xenta device, it is possible to get the ENTH block to use the SI
or I-P system of units for specified parameters.
The ENTH block will use the T input (temperature) in SI unit system
(metric) or I-P (inch-pound) unit system, depending on the national set-
ting of the Windows© operating system of the PC in which the applica-
tion is generated. Using the metric setting will produce a block where
h= enthalpy (kJ/kg)
Note
Reference: ASHRAE Handbook 2001 – Fundamentals SI System of
units. Chapter 6, Psychrometrics. The equation numbers within paren-
thesis refer to the corrsponding equations in the ASHRAE Handbook.
h= enthalpy (kJ/kg)
Note
Reference: ASHRAE Handbook 2001 – Fundamentals I-P System of
units. Chapter 6, Psychrometrics. The equation numbers within paren-
thesis refer to the corrsponding equations in the ASHRAE Handbook.
Fig. 14.24:
Table 14.30:
Description
The output of this block is an Integer value where each bit represents
an internal signal or error from the system program (see the following
section). Each output bit will be set as long as the error condition
remains, or, in the case of a restart after a power failure, during the first
program cycle following the restart. The output value is zero when no
error conditions are set.
Use only one ERR block in the application, otherwise the load on the
TAC Xenta device can be high.
Fig. 14.25:
Table 14.32:
Table 14.32:
Description
The function block is a discrete time first order software filter. The fil-
ter time constant is specified in seconds with the Time Const parameter.
The initial block output value is zero.
The filter algorithm is
1
y ( k ) = y ( k – 1 ) + ------------- ( u ( k ) – y ( k – 1 ) )
1+T ---
h
where y(k) and u(k) are the filtered and unfiltered values at time k,
respectively, h is the sampling interval (i.e. the application program
cycle time), and T is the filter time constant. If the time constant is less
than or equal to zero, no filtering is done. To obtain a good filter func-
tion, the time constant should be set significantly greater than the appli-
cation program cycle time.
This filter algorithm is based on a straightforward backward difference
approximation of the continuous time derivative operator. For further
details, please refer to, for instance, Åström and Wittenmark: “Com-
puter Controlled Systems – Theory and design”. Prentice-Hall, Engle-
wood Cliffs (1984).
Fig. 14.26:
Table 14.33:
Description
Provides the current hour (0–23) according to the internal time clock.
Fig. 14.27:
Table 14.34:
Description
This block implements a relay function with hysteresis.
When activate is greater than deactivate, the block has the following
function: If the output is false (0) and the input signal exceeds the acti-
vation threshold, the output will change to true (1). If the output is true
(1) and the input signal drops below the deactivation threshold, the out-
put will change to false (0). When the input signal is in the zone
between the two thresholds, the output will remain in its previous state.
Fig. 14.28:
When activate is less than deactivate, the block has the following func-
tion: If the output is true (1) and the input signal exceeds the deactiva-
tion threshold, the output will change to false (0). If the output is false
(0) and the input signal drops below the activation threshold, the output
will change to true (1). When the input signal is in the zone between the
two thresholds, the output will remain in its previous state.
Fig. 14.29:
Fig. 14.30:
Table 14.35:
Description
This block allows the integration of a rate or flow over time. The inte-
gral is computed as the sum of the rate multiplied by the time incre-
ment, i.e. by the program cycle time. The summation is done using
extended numerical precision to avoid underflow when the rate is
small.
The integrator output is set to InitValue at the initial state. When the
Reset input is activated, the integrator output is reset to a value speci-
fied by the ResetValue input signal. When the Reset input is deacti-
vated, the integration is resumed starting from the last value of the
ResetValue input.
The upper and lower output limits are set by the maximum floating-
point number that can be represented in the controller.
Fig. 14.31:
Table 14.36:
Description
The Input signal is limited to the range [MinValue, MaxValue].
Fig. 14.32:
Table 14.37:
Table 14.37:
Access RO
Description
The output of the MAX block is set to the maximum value of Input1
and Input2.
Fig. 14.33:
Table 14.38:
Description
The output of the MIN block is set to the minimum value of Input1 and
Input2.
Fig. 14.34:
Table 14.39:
Descriptipn
Provides the current minute (0–59), according to the internal time
clock.
Fig. 14.35:
Table 14.40:
Descriptipn
Provides the month of the year according to the internal time clock.
Month 1 corresponds to January and month 12 to December.
Fig. 14.36:
Descriptipn
This block increments the output value by one unit each program cycle
if IniValue is less than Final, and decreases it if the opposite applies.
When the count reaches the final value, the counter restarts the count at
the initial value in the next cycle.
Fig. 14.37:
Table 14.41:
Description
This block inverts a Binary signal.
Fig. 14.38:
Table 14.42:
Table 14.42:
Description
General
OPT provides optimum start and stop. OPT may be used in heating as
well as cooling applications. It is executed as often as the other function
blocks in the same application. However, the main part of the algorithm
is only executed once every minute. The purpose of the start-time opti-
misation is to start the heating/cooling system in advance in order to
obtain the correct temperature at the beginning of normal operation. The
purpose of the optimum stop is to shut down the heating/cooling system
before the end of normal operation, without the temperature falling out-
side the given limits during normal operation.
The optimisation function may be blocked by setting the parameter
Mode = –1. The output of OPT will then follow the time schedule status,
i.e. the output = 0 when TmL >0, and output = 1 when TmL < 0. Curve
points and HolidayComp will not be adjusted when Mode = –1.
Note
If you are using TAC Menta version 4.0 and system version 3.5 for
TAC Xenta devices, it will be possible to get the OPT block to use the
SI or I-P system of units for specified parameters.
The block will use the RoT, SP, and OuT inputs in the SI unit system
(metric) or I-P (inch-pound) unit system, depending on the national set-
ting of the Windows© operating system of the PC in which the applica-
tion is generated. Using the metric setting will produce a block where
the inputs are in degrees Celsius, and a US setting will produce a block
where the inputs are in degrees Fahrenheit.
The block parameters StartTimeLo, StartTimeHi, defines parts of coor-
dinates for breakpoints which are using fixed temperatures of –10 ºC
(14 ºF), 10 ºC (50 ºF), and 30 ºC (86 ºF). Entering values for the start
times completes definition of the coordinates.
Start-Time Optimization
The start-time is calculated once every minute on condition that TmL >
0 and optimisation has not already started. If the calculated start-time is
longer than the time left until the plant goes into normal operation, the
output of OPT will be set to 2 (optimisation state).
When the room temperature has reached the set point (SP) minus an
adjustable tolerance, ETol (default = 0.5 °C), the output of the function
block is set to 1 (normal operation) in order to indicate that the start-time
optimisation is completed and that normal operation may begin. If the
room temperature has not reached the temperature required for normal
operation to be set, before TmL turns negative, the output will be set to
1 at this point. During cooling, the output is instead set to 1 when the
room temperature falls below the set point (SP), plus the same tolerance
(ETol). The principle of start-time optimisation is illustrated in Figure
1. Note that we have assumed in the figure that the correct temperature
is reached at the same time as TmL turns negative.
The start-time is obtained from a curve that defines the relationship
between the outdoor temperature (OuT) and the start-time. If a room
sensor is not used, the start-time will be calculated directly from the
curve with a possible contribution from holiday compensation, see
below. When a room sensor is connected, the curve instead yields the
start-time per °C of deviation between the room temperature (RoT) and
its set point (SP). For example, the start-time will be 120 min if the
curve yields the value 60 min at the outdoor temperature in question and
the room temperature is 2 °C too low.
As described above and in Figure 1, the OPT block output value is used
to set the plant's operating mode, as described in the table below:
• Output = 0 => Off.
• Output = 1 => Normal operation.
• Output = 2 => Optimisation state.
Curve, Start-Time as a Function of Outdoor Temperature
The curve that describes the relationship between the outdoor tempera-
ture and the start-time, or alternatively the start-time per °C of room
deviation if the room sensor is connected, is defined by two points, see
Fig. 2. The outdoor temperature at these points will be defined by the
selection of the Mode (cooling or heating), while the corresponding
start-times (StartTimeLo and StartTimeHi) are freely selectable. The
outdoor temperatures of the curve points are –10 °C and 10 °C during
heating, respectively 10 °C and 30 °C during cooling. The default val-
ues for the start-times are 105 minutes (StartTimeLo) and 45 minutes
(StartTimeHi). The start-times at the curve points may be adjusted auto-
matically, see below.
will not be performed when the plant has been shut down for more than
20 hours.
It is possible at any time to alter the start-times in the curve points via
the Operators Interface. If this is done while optimisation is active, no
adjustment of the curve points will be performed when normal opera-
tion begins following this optimisation phase (after the next optimisa-
tion phase, the adjustment mechanism will work as normal again).
Holiday Compensation (Monday Effect)
When the building has been shut down for a long period of time, a
longer heating time is required to reach the desired temperature, due to
the fact that the building has been cooled down more effectively. To
compensate for this, we add an extra percentage of the start-time calcu-
lated above when the plant has been shut down for more than 20 hours,
see Fig. 3. 48 hours after shut down, the extra contribution is at maxi-
mum (HolidayComp), since we then assume that the building has
reached a stationary state, i.e. it will not get any colder even if the shut
down lasts longer. The percentage is increased linearly from 0 % at 20
h of shut down time to HolidayComp % at 48 h of shut down time.
be adjusted if the plant has been shut down for less than 20 hours while
HolidayComp may only be adjusted if the plant has been shut down for
more than 30 hours. This also means that no adjustment at all will be
performed if the shut down time is between 20 h and 30 h.
Stop-Time Optimization
The reason for using stop time optimisation is saving energy by stop-
ping heating/cooling before the end of the occupancy time. It is of
course important that the room temperature does not fall outside an
acceptable temperature range during the occupancy time. Since the stop
time that may be used without the temperature falling outside the
acceptable temperature range depends on the room temperature, opti-
mised stop is normally only used in systems with a room sensor. The
stop time is obtained from a curve that describes the relationship
between outdoor temperature and stop-time. The curve gives the stop-
time per °C of deviation between the room temperature and the lowest
permissible temperature in the room at the end of normal operation,
when a room sensor is used. The lowest permissible temperature is set
to the set point (SP) minus StopTimeErr during heating. StopTimeErr is
by default = 0.5 °C. During cooling, the highest permissible room tem-
perature in the room at the end of normal operation is set to the set point
plus StopTimeErr. If a room sensor is not used, the optimisation func-
tion will assume that the room temperature exceeds the set point by 1 °C
in heating operation and is 1 °C below the set point during cooling, cf.
start-time optimisation. Both x (StopLoTemp and StopHiTemp) and y-
values (StopTimeLo and StopTimeHi) for both curve points are freely
selectable. The default values are (-10 °C, 0 min) and (10 °C, 0 min)
respectively. This implies that stop-time optimisation will not have any
effect before these parameters are changed. The reason for this is that
stop time optimisation is used relatively seldom.
14.32 OR – OR Gate
Fig. 14.43:
Table 14.43:
Descriptipn
Calculates the boolean OR function of state1 and state2, according to
the following truth table:
Table 14.44:
Fig. 14.44:
Table 14.45:
Description
This block generates a train of pulses of duration PulseTime and a
period of CycleTime.
The train of pulses is always a multiple of the program cycle time, e.g.
if CycleTime is 7.4 seconds and PulseTime is 5.2 seconds and the cycle
time is 1 second, a 6 second pulse will fire every eight seconds.
Fig. 14.45:
Table 14.46:
Description
Control Algorithm
The PIDA block is designed to be used in control loops where the con-
troller output is either connected to an analog physical output or used
as a set point for another control loop (cascade control). The control
algorithm is a discrete tim- incremental PID algorithm, where the
change in control signal du(t) is calculated as
h y ( t ) – 2 • y ( t – h ) + y ( t – 2h )
du ( t ) = G ⋅ ⎛ e ( t ) – e ( t – h ) + ----- ⋅ e ( t ) – Td • ------------------------------------------------------------------------⎞
⎝ Ti h ⎠
where e is the control error, y is the measured value (MV), G is the con-
troller gain, Ti is the integral time, Td is the derivative time and h is the
control interval (ControlInt), i.e. the time between two successive
updates of the controller output signal. If ControlInt is set to 0, the con-
trol interval will automatically be set equal to the program cycle time.
Time index t represents the present value of a variable, t-h represents the
value at the previous evaluation of the control algorithm, and so on.
The PID-module is executed at the interval hx seconds, where hx sec-
onds is the application program execution interval, even if the selected
control interval is longer. The control interval, h, must be a multiple of
hx. If this is not the case, the PID algorithm will automatically select the
closest multiple smaller than h as the control interval. By default the
control interval is set equal to 1.
The control error e is defined as e = SP – MV. Thus, if the measured
value is below the set point and the gain G is positive, the controller out-
put will increase (heating control). With a negative G value, the control-
ler output will decrease instead (cooling control). When the control
error is smaller than the dead zone, i.e. abs(e) < DZ, the change in the
control output, du(t), is set to zero. The dead zone is given in the same
units as the measurement value and the set point.
The controller output signal is calculated as
(2) u ( t ) = u ( t – h ) + du ( t )
where u(t) is the present control signal and u(t–h) is the previous value
of the control signal. The value of u(t–h) is taken from the input TSg,
which represents the actual value of the previous control signal, taking
into account any external limitations and/or override functions in the
application program. Normally, the TSg input would be connected
directly to the controller output.
The proportional band corresponding to a certain proportional gain
value G can be calculated as
U M ax – UMin
(3) Pband = ------------------------------------
G
P and PD Controller
The algorithm described above is used when the controller has integral
action. If a controller without I- or D-action is desired, Ti or Td respec-
tively will be set to 0. In accordance with this, a PI-controller is obtained
by setting Ti ### 0 and Td = 0. If the gain G is set to 0, the program will
not fail to execute, but the control signal will not change, regardless of
the size of the error.
If the incremental control algorithm in equation (1) is used without inte-
gral action, an arbitrarily large stationary error may be obtained which
will not necessarily decrease if the controller gain is increased. For this
reason, we use a special algorithm for P and PD control, where the con-
trol signal is calculated according to eq. (4):
y ( t ) – y ( t – h ) -) + (------------------------------------------
( 4 ) u ( t ) = G ⋅ e ( t ) – Td ⋅ (-------------------------------------- UMax + UMin )-
h h
where UMax is the biggest permissible control signal and UMin is the
smallest permissible control signal.
Limitation of the Control Signal
The maximum rate of change of the controller output during one control
interval, DuMax, depends on the actuator stroke time and can be calcu-
lated as
( Umax – UMin ) ⋅ h
(5) DuMax = -------------------------------------------------
StrokeTime
The calculated change in the control output, du(t), is limited to the range
±DuMax before the absolute level of the control signal is calculated.
The calculated new control signal u(t) is limited to the interval (UMin,
UMax). If UMin and/or UMax are not defined, the corresponding limi-
tation will not be performed. The parameters UMin and UMax should
be given in engineering units. Default values are 0 and 100 (%), respec-
tively.
The parameter StrokeTime is used to define the actual full stroke travel
time of the actuator. Note that StrokeTime may be used to limit the
change of the control signal even if the output is not connected to an
actuator. The StrokeTime is then the minimum permissible time for the
control signal to change from UMin to UMax. If the controller output is
used as a set point for another controller and there is no special reason
for limiting the change in the control signal, StrokeTime should be set
to 0.
Operating Mode
The controller operating mode depends on the input signal Mode, as
described in the table below:
• Mode = 0 => Off, controller stopped (du = 0)
• Mode = 1 => Normal control.
• Mode = 2 => Controller output forced to UMax.
• Mode = 3 => Controller output forced to UMin.
If Mode = 0, the controller output will track the signal on the tracking
signal (TSg) input. If Mode < 0 or Mode > 3, the controller operating
mode will be Off (same as Mode = 0).
Fig. 14.46:
Table 14.47:
Description
Control Algorithm
The PIDI block is designed to be used together with two digital pulse
output (DOPU) blocks in control loops with increase/decrease actua-
tors. The control algorithm is a discrete time incremental PID algo-
rithm, where the calculated change (increment) in the control signal is
PIDP
MV
Control Int
SP
Mode UMin
G
UMax
Ti
Td Stroke Time
DZ
TSg
Fig. 14.47:
Table 14.48:
Description
Control Algorithm
The PIDP block is designed to be used in control loops where the con-
troller output is either connected to an analog physical output or used as
a set point for another control loop (cascade control).
The control algorithm is a discrete time positional PID algorithm, where
the output signal U(k) is calculated according to the diagram below.
between the setpoint and the measured value, but only on the measured
value, MV.
If P or PD control is used, the P-part will automatically be changed to
depend on the error (SP-MV). When these controllers are used, an offset
value is also added to the output signal:
( U max + U min )
Offset = --------------------------------------
-
2
where Umax is the biggest permissible control signal and Umin is the
smallest permissible control signal.
If a controller without I- or D-action is desired, Ti or Td respectively is
set to 0. In accordance with this a PI-controller is obtained by setting
Ti > 0 and Td = 0. If the gain G is set to 0, the program will not fail to
execute, but the control signal will not change regardless of the size of
error.
Please note that when any of the G, Ti and Td parameters have been
changed, an automatic internal update of the controller is performed. No
measures have to be taken in the application to avoid bumps in the con-
trol signal.
Limitation of the Control Signal
The parameter StrokeTime is used to define the actual full stroke travel
time of the actuator. Note that StrokeTime may be used to limit the
change of the control signal even if the output is not connected to an
actuator.
If the controller output is used as a set point for another controller and
there is no special reason for limiting the change in the control signal,
StrokeTime should be set to 0, which is also the default value.
The maximum rate of change of the controller output during one control
interval, DuMax, depends on the actuator stroke time and can be calcu-
lated as
( U max – U min ) × h
DuMax = ------------------------------------------------
StrokeTime
Fig. 14.49:
Table 14.49:
Description
This block calculates the polynomial function defined by the expres-
sion:
p ( x ) = a n ⋅ x n + a n – 1 ⋅ x n – 1 + .....+a 1 ⋅ x + a 0
b1 = b 0 ⋅ x + an – 1
b2 = b 1 ⋅ x + an – 2
....
bn = bn – 1 ⋅ x + a0
Fig. 14.50:
Table 14.50:
Description
Performs a simple linear transformation of the input signal applying
the conversion:
output = 100 * (variable – value0% ) / (value100%-value0%)
The output value is always limited to be between 0 and 100.
Fig. 14.51:
Table 14.51:
Description
A function block with a mono-stable Binary output of variable pulse
length (pulse generator). The pulse length (in seconds) is given by the
input signal PulseLength. The PULSE block only has one stable output
state (0). When the input signal Trig switches from 0 to 1, the output
switches to the unstable state (1) and remains in this state for Pulse-
Length seconds, after which it returns to 0. The output pulse is trig-
gered by the transition of the input signal, from zero to one, and not on
its state. Thus, the output pulse length is independent of the duration of
the trig input pulse length.
Fig. 14.52:
The output pulse length is always a multiple of the program cycle time
e.g. if the PulseLength input is set to 5.2 seconds and the cycle time is
1 second, the output pulse duration will be 6 seconds.
Fig. 14.53:
Table 14.52:
Description
This block is used to assign a user-selectable Binary parameter value to
the input signal of another block. To be accessible from the OP or via
the network, the parameter block output must be declared as Public.
The initial state of the output is determined by the InitValue parameter.
If the output signal is not public, this block will act as a constant
parameter value for another block input, since it is never modified dur-
ing execution of the application program.
Fig. 14.54:
Table 14.53:
Description
This block is used to assign a user selectable Integer parameter value to
the input signal of another block. To be accessible from the OP or via
Note
To be able to activate these functions, version 3.61 (or higher) of the
system program and the OP Panel program is required.
Fig. 14.55:
Table 14.54:
Description
This block is used to assign a user selectable Real parameter value to
the input signal of another block. To be accessible from the OP or via
the network, the parameter block output must be declared as Public.
The initial value of the output is determined by the InitValue parameter.
If the output signal is not public, this block will act as a constant
parameter value for another block input, since it is never modified dur-
ing execution of the application program.
Fig. 14.56:
Table 14.55:
Description
This filter acts as a rate limit, i.e. it limits the rate of change of the input
variable. The maximum increment in the output signal per second is
given by the parameter increment. The sign of the increment parameter
is ignored, the absolute value is used as a rate limit.
Fig. 14.57:
Table 14.56:
Description
The output is activated during first program cycle following a warm
start.
Fig. 14.58:
Table 14.57:
Description
This block is used to accumulate the period of time during which the
Binary signal RunIndication is activated (true). The output time unit
(hours, minutes or seconds) is selected using the Unit parameter. The
output and all internal block states are set to zero at the initial state or
when the Reset input is activated. When the Reset input is deactivated,
accumulation resumes.
When the output reaches the maximum Integer limit (32767), accumu-
lation stops, but the output is not reset to zero.
Fig. 14.59:
Table 14.58:
Description
Provides the current second (0-59), according to the internal time
clock.
Note
The output signal does not change its value during execution of the
application program module where it is being used. This is important
if longer cycle times than one second are used.
Fig. 14.60:
Table 14.59:
Description
This block is used to start N of M stages, where M is the total number
of output stages as defined by the Stages parameter(up to a maximum
of 16) and N is the Integer part of the result of the following calcula-
tion:
( M + 1 ) ⋅ Input
N = --------------------------------------
100
where Input is a value between 0% and 100%. The M stages are repre-
sented by the first M bits of the Integer block output value. The first N
of these bits will be true (1) and the rest false (0).
Example: If Stages is 4, and neither Hysteresis nor Rotation is used,
stage one will start (Output = 1; 0001) at 20% Input signal, stage two
(Output = 3; 0011) at 40%, stage three (Output = 7; 0111) at 60% and
stage four (Output = 15; 1111) at 80%. Note that TAC Menta uses a
two-complement representation of signed integers, i.e. the output signal
for starting 16 stages would be –1 (1111111111111111).
If the Hysteresis parameter is zero, the previous formula will give the
number of activated stages as a function of the input signal. If Hystere-
sis has a non-zero value, a hysteresis loop will exist to the left or to the
right (depending on whether Hysteresis is a negative or a positive num-
ber) of the points calculated in the previous equation. In this case, the
activation values of the stages will be displaced with respect to the deac-
tivation values. For example, if we define a 4 stage sequencer, the stages
started according to the previous formula will be one stage at 20%, two
stages at 40%, three stages at 60% and four stages at 80%. If a positive
hysteresis is defined, e.g. equal to 10, activation of the stages will be dis-
placed to the right by 10%, i.e. activation of the stages will be produced
at 30%, 50%, 70% and 90%, but deactivation will be maintained at the
previous values.
On the other hand, if the hysteresis were negative, for example –15%,
deactivation would be displaced to the left and so, the stages would acti-
vate at 20%, 40%, 60% and 80% and deactivate at 5%, 25%, 45% and
65%.
Fig. 14.61:
The Period parameter is used to prevent two or more stages from being
activated simultaneously. If the value is non-zero, the stages will always
be activated sequentially with an interval equal to Period (millisec-
onds), even if the input were to vary sharply, obliging simultaneous
activation of the stages. However, if this value is zero, the stages may
be activated simultaneously.
The Rotation parameter determines whether the active stages should
rotate or not. The difference between Rotation = 1 (with rotation) and
Rotation = 0 (without rotation) is that, in the first case, the stages will
deactivate in the same order in which they activated, i.e. the stage which
has been active longest will always deactivate first, while in the second
case, the deactivation order is the opposite of the activation order. When
the sequencer is defined with rotation, it may be assumed that the time
during which each stage remains active will, in the long term, be
approximately the same for all stages.
Fig. 14.62:
Table 14.60:
Description
This is a sample and hold function with the following transition table:
Table 14.61:
The block will copy the input state to the output, if the control signal is
active. Whereas, if the control signal is inactive, the output will remain
in the same state.
Fig. 14.63:
Fig. 14.64:
Table 14.62:
Description
This block functions in an identical manner to the DELI block while
the control input remains active; i.e. delaying the propagation of the
input signal for one program cycle. However, while the control signal
remains inactive, the output retains the value of the input during the
last cycle when the control signal was active.
Fig. 14.65:
Fig. 14.66:
Table 14.63:
Description
This block functions in an identical manner to the DELR block while
the control input remains active; i.e. is delaying the propagation of the
input signal for one program cycle. However, while the control signal
remains inactive, the output retains the value of the input during the
last cycle when the control signal was active.
Fig. 14.67:
Fig. 14.68:
Table 14.64:
Description
The SR flip-flop is a bi-stable block with two inputs: set and reset.
Depending on the value of these inputs at any given moment, the output
of the block will be given a value during the next program cycle in
accordance with the following transition table:
Table 14.65:
Thus, the output at time t+1 will be equal to the input at time t if the two
inputs are inactive. If the two inputs are active, the output changes state
every program cycle. If only one of them is active, the output will be
activated or deactivated depending on whether the input variable set or
reset is active respectively.
Fig. 14.69:
Fig. 14.70:
Table 14.66:
Parameters Wall Module STRING Select name of the STR Wall module
defined in Device Configuration.
Reference STRING Select the relevant input signal from
the STR.
Initial Value REAL Initial output value. Default value = 0.
Application ENUM For temperature input signals: unit (°C
Value or °F) of value delivered to application.
Default value = °C.
Output type REAL Output signal to application.
Access RO
Description
The STRIN block handles an input from the STR wall module. Depend-
ing on how the STR is configured, different types of signals may be of
interest. An application may require several STRIN blocks from one
STR wall module.
The block output is updated only once during each application program
cycle, which implies that changes in the physical inputs, with a dura-
tion less than one program cycle, will not be noted by the application
program.
In the Edit block STRIN window Unit is used to determine which
temperature unit (when applicable) will be used for presentation in
TAC Vista.
The Analog input block transfers a signal from the STR Wall module to
the application.
In the Bind STR Input window the Wall Module parameter you spec-
ify the STR module.
Reference: Available input signals from the STR are:
• SpaceTemp (temperature, °C or °F)
• Setpoint (temperature, °C or °F)
• SetptOffset (temperature °C, °F; or °F, no offset)
Fig. 14.71:
Table 14.67:
Description
The STROUT block handles an output to the STR Wall module.
Depending on how the STR is configured, different types of signals may
be of interest. An application may require several STROUT blocks.
In the Edit block STROUT window Unit is used to determine which
temperature unit (when applicable) will be sent from the application to
the Wall module and be used for presentation in TAC Vista.
The Analog output block transfers a signal from the application pro-
gram to the STR Wall module.
In the Bind STR Output window the Wall Module parameter specifies
the STR.
Reference: Available output signals to the STR are:
• SpaceTemp (temperature, °C or °F)
• UserLockout
• EffectSetpt (temperature, °C or °F)
• EffectOccup
• UnitStatus
• OutdoorTemp (temperature, °C or °F)
• SpaceRH
• SpaceCO2
• FanSpeedValue
• TempMinDelta (temperature, °C or °F)
• TempOffset (temperature, °C or °F)
• Resolution
• DispTimeout
• BackLightOn
• Options1
• Options2
• Options3
• SetpointLow (temperature, °C or °F)
• SetpointHigh (temperature, °C or °F)
The Initial Value parameter specifies the output signal value (in the rel-
evant engineering unit), which is transmitted to the STR by the base unit
at startup, e.g. following a restart immediately after a power outage.
Fig. 14.72:
Table 14.68:
Description
Gives the duration in seconds of one program cycle as specified in the
Specification Table.
Fig. 14.73:
Table 14.69:
Description
The trigger is a mono-stable one which fires when it detects a transition
in its input signal and generates a pulse which is equal to the duration
of one program cycle. Depending on the mode of operation selected,
the trigger may fire:
• Mode 0 and 1: on the low to high transitions.
• Mode 2: on the high to low transitions.
• Mode 3: on any transition.
The mode may be entered as an integer between 0 and 255, but any
mode higher than mode 3 will work as mode 3 e.g. the trigger will fire
on any transition.
Fig. 14.74:
Table 14.70:
Note
An application program for TAC Xenta 280 devices may only contain
one TSCH block.
Description
The time scheduling function is used to configure week charts to start
and stop, e.g. an AHU at different hours depending on the day of the
week. It is also possible to define date intervals (holidays) within
which the normal week charts would be overridden by different operat-
ing hours.
The TSCH block has a signed Integer output whose sign indicates the
time schedule status (negative = true, positive = false), and whose
value indicates the time left until the next status change (negative =
time in minutes to false, positive = time in minutes to true).
Note
Please note that the Backup check box only applies to the block output
status, i.e. the time left to the next status change. The week and holiday
chart settings are always saved in the controller's Flash memory
regardless of the Backup setting.
The Week charts Max. parameter, defines the number of week charts in
the time schedule. Not all week charts need to be defined during the
application programming phase. The parameter is used to decide how
many week charts should be available in the TAC Xenta OP. Undefined
week charts may be defined using the OP at runtime.
The parameter Holiday charts, Max. defines the number of holiday
charts. Not all holiday charts need to be defined during the application
programming phase. The parameter is used to decide how many holiday
charts should be available in the TAC Xenta OP. Undefined holiday
charts may be defined using the OP at runtime.
The total number of Week and Holiday charts is only limited by the
available memory space in the TAC Xenta controller. But, as each
Week and Holiday chart uses a relatively large memory space, you
should carefully plan how you will use the Time schedules before
increasing the Max. parameter value.
Holiday charts can also be defined in TAC Vista via the central time
schedule function.
Example
Let’s assume that an AHU is to have the following operating hours:
08:00 – 12:00 and 13:00 – 17:30 Monday through Friday
09:00 – 14:00 Saturday
10:00 – 12:00 Sunday
On Christmas Eve, the AHU will be in operation between 15:00 and
16:00, if Christmas Eve is a Monday, Tuesday, Wednesday, Thursday
or Friday.
It should also be possible to define 2 extra holidays via the TAC Xenta
OP.
The time schedule definition would then be as follows:
Week charts, Max. = 4
Table 14.71:
Table 14.72:
Note
Note 1: Wild cards in the start date and stop date fields of a holiday
chart makes it possible to define a certain day every year. Wild cards
are only allowed in holiday charts.
Note 2: It is permissible to enter the time 24:00. Operating hours of
00:00-24:00 mean that the controlled equipment will be on for a full
twenty-four hour period.
Note 3: It is permissible to define operating hours of 23:00-04:00
Mon. This means the controlled equipment will run from 23:00 to
24:00 for the defined weekday (Mon), and continue to run from 00:00
to 04:00 on the next weekday (Tue).
Note 4: 00:00-00:00 could be used in holiday definitions to turn the
controlled object off for a full twenty-four hour period. Operating
hours defined as 03:34-03:34 will be handled as 00:00-00:00, i.e. the
controlled equipment will be turned off.
Fig. 14.75:
Table 14.73:
Table 14.73:
Description
The VECTOR block permits the definition of any piece-wise linear
function for an input signal within the limits Xmax and Xmin. The
function is defined by specifying the output function values y = f(x) for
N equally spaced input (x) values between the two limits. For input
values between two points, the function value is calculated by linear
interpolation. If the value of the input signal is less than Xmin, the
value defined at that point will be taken, and likewise if the input is
greater than Xmax.
Note
This block can act as a ranged array of Real values for use as a look-
up table as in the example below:
Table 14.74:
Input Output
5 34.5
6 28.0
7 42.5
8 33.9
Fig. 14.76:
Table 14.75:
Description
Provides the day of the week, according to the internal time clock. The
output value 1 corresponds to Monday and 7 to Sunday.
Fig. 14.77:
Table 14.76:
Description
Calculates the boolean exclusive OR function of state1 and state2,
according to the following truth table:
Table 14.77:
Table 14.77:
15 Expressions
Fig. 15.1:
Expression blocks are special blocks with one parameter, an arithmetic
expression, which may be simple or complex. Depending on the expres-
sion, the block can have many inputs or just a few. The graphic repre-
sentation of the blocks may vary in size, depending on the expression
size and/or the number of inputs.
There is only one output signal from an expression block. Depending on
the output signal type: Real, Integer or Binary, one of three expression
block types is created. These are:
Table 15.1:
Expression blocks are always read only and the memory which they
occupy, once compiled, depends on the complexity of the expression.
15.1 Operands
The Operands of the expressions can be:
Table 15.2:
15.2 Operators
The operands are combined with the operators, which are described
below in order of precedence.
Table 15.3:
Table 15.3:
Table 15.4:
15.4 Output
The output signal from the expression block will be:
Table 15.5:
16 Operators
An expression block may be graphically developed as various operator
blocks interconnected by connections. Several operator types exist,
equivalent to those used in expression blocks. The result is completely
equivalent; each single operator is compiled to a single expression
block, exactly as if it had been written in an expression block. Output
signals from operators can always be read by the user.
The operator's Analog inputs may be connected to a Real or an Integer
output. The Analog output may be connected to a Real or an Integer
input without distinction. If the output of an Analog operator is con-
nected to an FB with an Integer input, the operator output will be con-
verted to an Integer. Thus, if other FBs with Real inputs are connected
to the same operator output, they will receive an Integer value. Binary
inputs may only be connected to Binary outputs.
The following operators are available. In graphic mode, standard sym-
bols are used for their representation. In this presentation, the operators
are divided into logical groups similar to the simple blocks.
16.1 Constants
Table 16.1:
Name Comments
Binary const No input → Binary output
Integer const No input → Integer output
Real const No input → Real output
Name Comments
NOT Binary input → Binary output
Table 16.2:
Name Comments
AND Binary inputs → Binary output
OR Binary inputs → Binary output
XOR Binary inputs → Binary output
Name Comments
Negate Analog input → Analog output
Addition Analog inputs → Analog output
Subtraction Analog inputs → Analog output
Product Analog inputs → Analog output
Division Analog inputs → Analog output
Module Analog inputs → Analog output
16.4 Comparison
Table 16.4:
Name Comments
Less than Analog inputs → Binary output
Greater than Analog inputs → Binary output
Equal Analog inputs → Binary output
Not equal Analog inputs → Binary output
Greater or equal Analog inputs → Binary output
Less or equal Analog inputs → Binary output
Name Comments
bit AND Analog inputs → Analog output
bit OR Analog inputs → Analog output
bit XOR Analog inputs → Analog output
Shift right Analog inputs → Analog output
Shift left Analog inputs → Analog output
Examples
Note
All 16 positions are shifted, and 0 is shifted into empty positions. Any
shift count 16 always gives the output value 0.
16.6 Others
Table 16.6:
Name Comments
D/A converter Binary input → Analog output
A/D converter Analog input → Binary output
Analog multiplexer Analog inputs → Analog output
Binary multiplexer Binary inputs → Binary output
Conversion AA Integer signal → Real signal
Real and Integer values, the Conversion AA operator does not carry out
an explicit type conversion with rounding or truncation. Instead, this
type conversion is done in the block using the Conversion AA output
signal as the input. We recommended using expression blocks when
explicit type conversions with rounding or truncation are needed.
17 Supported SNVTs
The list of SNVTs supported by TAC Menta is updated regularily.
For up-to-date information, please contact the TAC helpdesk by email-
ing helpdesk@tac.se.
Table 17.1:
SNVT Number
SNVT_alarm 88
SNVT_amp 1
SNVT_amp_f 48
SNVT_amp_mil 2
SNVT_angle 3
SNVT_angle_deg 104
SNVT_angle_vel 4
SNVT_btu_f 67
SNVT_char_ascii 7
SNVT_chlr_status 127
SNVT_config_src 69
SNVT_count 8
SNVT_count_f 51
SNVT_count_inc 9
SNVT_count_inc_f 52
SNVT_date_day 11
SNVT_elapsed_tm 87
SNVT Number
SNVT_elec_kwh 13
SNVT_elec_whr 68
SNVT_flow 15
SNVT_flow_f 53
SNVT_flow_p 161
SNVT_freq_f 75
SNVT_freq_hz 76
SNVT_freq_kilohz 77
SNVT_hvac_emerg 103
SNVT_hvac_mode 108
SNVT_hvac_overid 111
SNVT_hvac_status 112
SNVT_length_mil 20
SNVT_lev_count 21
SNVT_lev_count_f 55
SNVT_lev_disc 22
SNVT_lev_percent 81
SNVT_lux 79
SNVT_magcard 86
SNVT_mass_f 56
SNVT_muldiv 91
SNVT_multiplier 82
SNVT_obj_request 92
SNVT_obj_status 93
SNVT_occupancy 109
SNVT_power 27
SNVT_power_f 57
SNVT_power_kilo 28
SNVT Number
SNVT_ppm 29
SNVT_ppm_f 58
SNVT_preset 94
SNVT_press 30
SNVT_press_f 59
SNVT_press_p 113
SNVT_pwr_fact 98
SNVT_pwr_fact_f 99
SNVT_regval 136
SNVT_regval_ts 137
SNVT_res_f 60
SNVT_rpm 102
SNVT_scene 115
SNVT_scene_cfg 116
SNVT_setting 117
SNVT_speed 34
SNVT_speed_f 62
SNVT_state 83
SNVT_str_asc 36
SNVT_str_int 37
SNVT_switch 95
SNVT_temp 39
SNVT_temp_f 63
SNVT_temp_p 105
SNVT_temp_setpt 106
SNVT_time_f 64
SNVT_time_hour 124
SNVT_time_min 123
SNVT Number
SNVT_time_sec 107
SNVT_time_stamp 84
SNVT_tod_event 128
SNVT_vol 41
SNVT_vol_f 65
SNVT_vol_kilo 42
SNVT_volt 44
SNVT_volt_f 66
SNVT_zero_span 85
Note
Test probe blocks are for simulation purposes only. A program with
test probe blocks cannot generate code to be downloaded to the con-
troller. Thus, any simulation model included in the application pro-
gram must be deleted before the executable code is generated.
Table 18.1:
Fig. 18.1:
Table 18.2:
Description
The TPAI block writes a value to the Analog input block which has the
same name (identifier) as the test probe block. Note that the TPAI block
may be used with all types of Analog input blocks. The value of the
Analog input block will be set to the value of the input to the corre-
sponding TPAI block, i.e. no scaling is carried out.
Fig. 18.2:
Table 18.3:
Table 18.3:
Description
The TPAO block reads the value of the Analog output block which has
the same name (identifier) as the test probe block. The output of the
TPAO block is set to the same value as the input value to the Analog
output block.
Fig. 18.3:
Table 18.4:
Description
The TPDI block writes the value of Input to the Digital input block
which has the same name (identifier) as the test probe block.
TPDI can also be linked to a CNT block. In this case, only one pulse per
application program cycle can be counted. The pulses are counted on
high to low transitions.
Fig. 18.4:
Table 18.5:
The TPDO block reads the status of the Digital output block which has
the same name (identifier) as the test probe block.
TPDO can also be linked to a DOPU block. In this case, the DOPU
parameter MinPulse must be set to the same value as the application
program cycle time (sec), otherwise simulation may give incorrect val-
ues.
19 Error Messages
When run, TAC Menta displays a number of information, warning and
error messages. In this section, the possible causes of some of these
messages are displayed, together with some hints about how to find and
correct the errors.
19.4 Simulation
Division by zero, Numerical overflow
Logical application program error. Reconstruct your FBD.
Execution stopped, the block named: <name> and type:
<type> passed its limit
Error message displayed when the limit Stop at a limit (breakpoint) is
reached during a simulation.
Note
If selected, remove the “Automatic generation of menu tree” selection
in the Preferences menu, or the new menu tree will be overwritten
during the next OP tree generation.
19.6 Download
If an error occurs during download to the TAC Xenta device, TAC
Menta will display an error message and open the .COD file with the
suspected error marked. The error code number indicates the section in
the .COD file where the download was interrupted. This information
may be useful when trouble-shooting.
Update of description of network neightbourhood from TAC
Vista Server is not performed
This error occurs when performing a download using the serial interface
(RS-232) on a TAC Xenta device. The error indicates that network
neighborhood is not updated in the same way as when downloading
using TAC Vista.
Table 19.1:
20 Programming Hints
20.1 Program Cycle Time
The cycle time for the application program is variable. Take this into
account when drawing your application program.
Example: The INTEG block can be used for calculating Energy con-
sumption from the input Power. When resetting the block at the start of
a new calculation interval, the reset value must be the input signal times
the program cycle time !
Fig. 20.1:
Time counters can also be made by means of the PULSE and RT blocks.
Designs using RT and INTEG can be reset during the count. The
INTEG counter can be used generally, whenever counting (time, power
etc.) over time.
20.3 Equality
If testing whether two values are equal, make sure that the tested values
are of the Binary or Integer type. Be sure to not carry out an equal test
on Real values.
Fig. 20.2:
Fig. 20.3:
Fig. 20.4:
Fig. 20.5:
Fig. 20.6:
Fig. 20.7:
Fig. 20.8:
Fig. 20.9:
T V
tabular 248 VECTOR 410
TAC Menta 18, 227 vectorial curve function 410
TAC Menta start 229 verify correct operation 324
TAC Menta v3 compatibility 322 view trend log 277
TAC Xenta 18
TAC Xenta, upgrading 323 W
TCYC 407 Wall module table
test probe for analog input 236, 430 Auxiliary Options 307
test probe for analog output 236, 430 Backlight timeout 307
test probe for digital input 236, 431 Display timeout 307
test probe for digital output 236, 432 HVAC Settings 307
test probes 235 Min send time 306
text file 229 Minimum change for update 306
time counter 439 module 306
X
X 18
XOR 412
Y
Y 18
www.tac.com
Last Manual Page