CitectSCADA User Guide
CitectSCADA User Guide
20
October 2010
Legal Notice
DISCLAIMER
Schneider Electric (Australia) Pty. Ltd. makes no representations or warranties with respect to this manual and, to the max-
imum extent permitted by law, expressly limits its liability for breach of any warranty that may be implied to the replacement
of this manual with another. Further, Schneider Electric (Australia) Pty. Ltd. reserves the right to revise this publication at any
time without incurring an obligation to notify any person of the revision.
COPYRIGHT
© Copyright 2010 Schneider Electric (Australia) Pty. Ltd. All rights reserved.
TRADEMARKS
Schneider Electric (Australia) Pty. Ltd. has made every effort to supply trademark information about company names, products
and services mentioned in this manual.
Citect, CitectHMI, and CitectSCADA are registered trademarks of Schneider Electric (Australia) Pty. Ltd.
IBM, IBM PC and IBM PC AT are registered trademarks of International Business Machines Corporation.
MS-DOS, Windows, Windows NT, Microsoft, and Excel are either registered trademarks or trademarks of Microsoft Cor-
poration in the United States and/or other countries.
DigiBoard, PC/Xi and Com/Xi are trademarks of Digi International Inc.
Novell, Netware and Netware Lite are either registered trademarks or trademarks of Novell, Inc. in the United States and other
countries..
dBASE is a trademark of dataBased Intelligence, Inc.
All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of
their respective holders.
GENERAL NOTICE
Some product names used in this manual are used for identification purposes only and may be trademarks of their respective
companies.
October 2010 edition for CitectSCADA Version v7.20
Manual Revision Version v7.20.
Legal Notice 2
Contents 3
Getting Started 23
Safety Information 25
3
Contents
4
Contents
5
Contents
Reliability 131
Monitoring 131
Data collection 131
Project Design 132
Naming Standards 132
Page Templates 133
Genies and Super Genies 133
Clustering 133
Included projects 135
Redundancy 136
Building Your Project 136
Projects 137
Setting up I/O Device Communication 137
Graphics Components 137
Alarms 138
Data Collection 138
Users and Areas 139
System Components 139
Setting up Your Computers 140
Setting up CitectSCADA as an OPC data source 140
6
Contents
7
Contents
8
Contents
9
Contents
10
Contents
11
Contents
12
Contents
13
Contents
14
Contents
15
Contents
16
Contents
17
Contents
18
Contents
19
Contents
21
Contents
Glossary 1045
Index 1069
22
Getting Started
23
24
Safety Information
Safety Information
Hazard categories and special symbols
The following symbols and special messages may appear in this manual or on the prod-
uct to warn of potential hazards or to call attention to information that clarifies or sim-
plifies a procedure.
A lightning bolt or ANSI man symbol in a "Danger" or "Warning" safety label on the
product indicates an electrical hazard which, as indicated below, can or will result in
personal injury if the instructions are not followed.
The exclamation point symbol in a safety message in a manual indicates potential per-
sonal injury hazards. Obey all safety messages introduced by this symbol to avoid pos-
sible injury or death.
Symbol Name
Lightning Bolt
ANSI man
Exclamation Point
DANGER indicates an imminently hazardous situation, which, if not avoided, will result in
death or serious injury.
WARNING indicates a potentially hazardous situation, which, if not avoided, can result in
death or serious injury.
CAUTION indicates a potentially hazardous situation which, if not avoided, can result in
minor or moderate injury.
25
Safety Information
CAUTION
CAUTION used without the safety alert symbol, indicates a potentially hazardous situation
which, if not avoided, can result in property damage.
Please Note
Electrical equipment should be installed, operated, serviced, and maintained only by
qualified personnel. No responsibility is assumed by Schneider Electric (Australia) Pty.
Ltd. for any consequences arising out of the use of this material.
Do not use CitectSCADA or other SCADA software as a replacement for PLC-based control pro-
grams. SCADA software is not designed for direct, high-speed system control.
Failure to follow these instructions can result in death, serious injury, or equip-
ment damage.
LOSS OF CONTROL
l The designer of any control scheme must consider the potential failure modes of control
paths and, for certain critical control functions, provide a means to achieve a safe state
during and after a path failure. Examples of critical control functions are emergency
stop and overtravel stop.
l Separate or redundant control paths must be provided for critical control functions.
l System control paths may include communication links. Consideration must be given to
the implications of unanticipated transmission delays or failures of the link.*
l Each implementation of a control system created using CitectSCADA must be individ-
ually and thoroughly tested for proper operation before being placed into service.
Failure to follow these instructions can result in death, serious injury, or equip-
ment damage.
* For additional information, refer to NEMA ICS 1.1 (latest edition), "Safety Guidelines
for the Application, Installation, and Maintenance of Solid State Control".
26
Chapter: 1 Getting Technical Support
There are various support options to help you get the most from this product.
l If you have questions about using CitectSCADA, consult the extensive online Help to
answer your questions. You can use the Contents list to find the section you're inter-
ested in, enter an item into the Index, or enter an item using the Search tab.
l If you seek more technical information than is provided in the online Help, check the
knowledge base.
If you cannot find the information you need, you can obtain technical support and Train-
ing. Consulting services are also available upon request.
See Also
Technical Support
Contact information
27
Chapter: 1 Getting Technical Support
Training
Various training facilities are also available. Contact your local Citect distributor for
more information.
See Also
Contact information
Contact information
For contact information in your region, consult the support web site at:
http://www.Citect.com/support
28
Chapter: 2 What's New in CitectSCADA v7.x
This section describes new CitectSCADA features and enhancements for v7.20. For the
purposes of continuity, this section also describes the features that were added for the
CitectSCADA v7.0 and v7.10 releases.
Introduced in v7.0
Introduced in v7.10
Introduced in v7.20
For details on how to upgrade an existing project to run in v7.20, refer to Upgrading to
V7.20.
29
Chapter: 2 What's New in CitectSCADA v7.x
See Also
Clustering
Clustering allows you to group different sets of the runtime components within a single
project, allowing multiple independent systems to be monitored and controlled.
There are countless variations in how a clustered system can be configured. The most
appropriate configuration will depend on the requirements for the solution to be
deployed and the environment in which it is being deployed. For more information see
Typical system scenarios.
See Also
Included projects
Implementing Clustering
Local Variables
Local variables allow you to store data in memory when you start your runtime system.
They are created each time the system starts, and therefore do not retain their values
when you shut down.
Local variables are useful when you need each process to have a separate copy of the
data. Each process has its own copy of each local variable configured in the project, and
the values in a local variable are available only to the process that wrote them.
See Also
Configuring Local Variables
30
Chapter: 2 What's New in CitectSCADA v7.x
Memory Mode
I/O Devices can now be configured to run in memory mode:
l An I/O Device running in memory mode is created in memory and its values stored
in memory at runtime.
l Devices using memory mode are not connected to any hardware, and write their
values to a cache. Memory mode is useful when you are configuring a system for the
first time, as you can design and test your system before connecting a physical I/O
Device.
Note: Memory mode replaces Memory I/O Devices, which are no longer supported.
Devices configured as Memory I/O Devices will be converted to local variables dur-
ing the upgrade to v7.20.
See Also
Using Memory Mode
31
Chapter: 2 What's New in CitectSCADA v7.x
l Manually
l Run/Backup Run/Copy
l FTP (IDC)
l HTTP (Web Client)
See Also
Improved Client Side Online Changes
Publisher-Subscriber Model
CitectSCADA now uses a Publisher-Subscriber data acquisition model. Client computers
subscribe to configured tags and receive notification when the tag values change. Cicode
functions can also be triggered by the change of a tag, removing the need to poll, and
improving the efficiency of the system.
See Also
TagSubscribe
TagUnsubscribe
32
Chapter: 2 What's New in CitectSCADA v7.x
l New Parameters
l Obsolete Parameters
New Parameters
The following parameters are new in version 7.0. For a complete list of the system
parameters, refer to the Parameters help file.
Alarm Parameters:
Note: The default alarm property write behavior was to write the new value to
DBF/RDB. This has changed in version 7.0 onwards. Refer to the parameter [Alarm]Us-
eConfigLimits.
Backup Parameters:
Client Parameters:
33
Chapter: 2 What's New in CitectSCADA v7.x
CtCicode Parameters:
CtEdit Parameters:
[CtEdit]Logs The directory where the CitectSCADA log files are located.
Dial Parameters:
Driver Parameters:
General Parameters:
IOServer Parameters:
34
Chapter: 2 What's New in CitectSCADA v7.x
Report Parameters:
Trend Parameters:
35
Chapter: 2 What's New in CitectSCADA v7.x
Obsolete Parameters
The following parameters are no longer supported in version 7.0:
Alarm Parameters:
[Alarm]CPU Sets the CPU that the Alarm Server component is assigned to
Client Parameters:
Code Parameters:
[Code]AlarmShutdown Determines the Cicode function to run when Alarm Server com-
ponent shuts down
[Code]AlarmStartup Determines the Cicode function to run when Alarm Server com-
ponent starts up
[Code]I- Determines the Cicode function to run when I/O Server com-
OServerShutdown ponent shuts down
[Code]IOServerStartup Determines the Cicode function to run when I/O Server com-
ponent starts up
36
Chapter: 2 What's New in CitectSCADA v7.x
DNS Parameters:
[DNS]<Server name> Determines the IP address (or fully qualified host name) of the
primary I/O Server
Event Parameters:
General Parameters:
IOServer Parameters:
37
Chapter: 2 What's New in CitectSCADA v7.x
[IOServer]CPU Sets the CPU that the I/O Server component is assigned to
LAN Parameters:
[LAN]LanA Defines the protocol stack that CitectSCADA uses for NetBIOS
communication
38
Chapter: 2 What's New in CitectSCADA v7.x
[LAN]RemoteTimeOut The timeout period for remote I/O Device write requests from
a Control Client to the I/O Server
Proxi Parameters:
Report Parameters:
Server Parameters:
Trend Parameters:
39
Chapter: 2 What's New in CitectSCADA v7.x
New Functions
Miscellaneous Functions
AccumBrowseGetField Gets the field indicated by the cursor position in the browse
session.
40
Chapter: 2 What's New in CitectSCADA v7.x
Alarm Functions:
AlmSummaryGetField Gets the field indicated by the cursor position in the browse
session.
AlmSummaryLast Places the data browse cursor at the latest summary record
from the last cluster of the available browsing cluster list.
AlmSummaryNext Gets the next alarm summary entry in the browse session.
AlmSummaryPrev Gets the previous alarm summary entry in the browse ses-
sion.
Alm- Sets the value of the field indicated by the cursor position in
SummarySetFieldValue the browse session.
41
Chapter: 2 What's New in CitectSCADA v7.x
AlmTagsClear Clears the alarm tag at the current cursor position in an active
data browse session.
AlmTagsGetField Gets the field indicated by the cursor position in the browse
session.
AlmTagsNext Gets the next alarm tags entry in the browse session.
AlmTagsPrev Gets the previous alarm tags entry in the browse session.
Ass- Gets association information about the current Super Genie from the
GetProperty datasource
AssGetScale Gets scale information about the associations of the current Super
Genie from the datasource
Cluster Functions
ClusterFirst Allows the user to retrieve the first configured cluster in the project.
ClusterNext Allows the user to retrieve the next configured cluster in the project.
42
Chapter: 2 What's New in CitectSCADA v7.x
Clus- Allows the user to determine which servers are defined for a given
terServerTypes cluster.
ClusterStatus Allows the user to determine the connection status from the client to
a server on a cluster.
Clus- Allows the user to deactivate an active cluster at the same time as
terSwapActive activating an inactive cluster.
TagGetScale Gets the value of a tag at a specified scale from the data-
source
Tag Functions
Task Functions
TaskCluster Gets the name of the cluster context in which the current task is execut-
ing
Trend Functions
43
Chapter: 2 What's New in CitectSCADA v7.x
TrnBrowseGetField Gets the field indicated by the cursor position in the browse ses-
sion.
TrnGetCluster Gets the name of the cluster the trend graph is associated with.
Report Functions
Rep- Retrieves the name of the cluster the report is running on.
GetCluster
ModifiedFunctions
Alarm Functions
AlarmClear Clears acknowledged, inactive alarms from the active alarm list.
44
Chapter: 2 What's New in CitectSCADA v7.x
AlarmFirstTagRec Searches for the first occurrence of an alarm tag, name, and
description
AlarmGetDelayRec Gets the delay setting for an alarm via the alarm record number
AlarmGetFieldRec Gets alarm field data from the alarm record number
Alarm- Gets the thresholds of analog alarms by the alarm record number
GetThresholdRec
AlarmNextTagRec Searches for the next occurrence of an alarm tag, name, and
description.
AlarmSumFind Finds an alarm summary index for an alarm record and alarm on
time.
45
Chapter: 2 What's New in CitectSCADA v7.x
DriverInfo Provides information about the driver for a particular I/O Device.
Miscellaneous Functions
ServerInfoEx Gets client and server information from a specified process in a mul-
tiprocessor environment.
Report Functions
SPC Functions
SPCPro- Gets the process mean, range and standard deviation overrides.
cessXRSGet
SPCPro- Sets the process mean, range and standard deviation overrides.
cessXRSSet
SPCSpecLimitGet Gets the specification limits (USL and LSL) for the specified tag.
46
Chapter: 2 What's New in CitectSCADA v7.x
SPCSpecLimitSet Sets the specification limits (USL and LSL) for the specified tag.
SPCSub- Gets the size of a subgroup for the specified SPC tag.
groupSizeGet
SPCSub- Sets the subgroup size for the specified SPC tag.
groupSizeSet
AssPage Associates up to eight variable tags with a Super Genie and displays the
Super Genie in the current window.
AssPopUp Associates up to eight variable tags with a Super Genie and displays the
Super Genie in a popup window.
AssTag Associates a variable tag with the current Super Genie. The association
will be created for the current Super Genie only, and will only come into
effect after you re-display the Super Genie.
AssVarTags Associates up to eight variable tags with a Super Genie. This asso-
ciation is only made for the next Super Genie you display (either in the
current window or in a new window). You can use this function repeat-
edly to associate more than 8 variable tags to a Super Genie.
AssWin Associates up to eight variable tags with a Super Genie, and displays
the Super Genie in a new window.
Tag Functions
Tag- This function reads a property of a variable tag from the datasource
GetProperty
TagGetScale Gets the value of a tag at a specified scale from the datasource
TagRamp This function will increment a Tag by the amount defined by iPercentInc
Task Functions
47
Chapter: 2 What's New in CitectSCADA v7.x
Trend Functions
TrnEventSetTable Sets trend data from a table, for a specified trend tag.
TrnE- Sets event trend data and time data (including milliseconds) for a
ventSetTableMS specified trend tag.
TrnGetDefScale Gets the default engineering zero and full scales of a trend tag.
Window Functions
Osolete Functions
Cluster Functions
48
Chapter: 2 What's New in CitectSCADA v7.x
Clus- Returns the names of the primary and standby cluster servers.
terGetName
Display Functions
Task Functions
ReRead Causes CitectSCADA to re-read the I/O Device data associated with the
current Cicode task.
Tags are now subscribed at the start of a function and updated tag
values are sent to the subscribing function.
After removing ReRead from looping code you may need to extend the
period of the Sleep function.
This is to replace the pause ReRead created while it read the tag values.
Obsolete Functions
Previously available "Point" related functions are now no longer available, and if used
will detect and return an error indicating that they are not supported. In order to obtain
the same result as was previously invoked by those function, replace them with the Tag
based equivalent using the appropriate Tag arguments and conditions.
The "point" functions that are no longer available are listed below along with their
replacement functions:
49
Chapter: 2 What's New in CitectSCADA v7.x
Function Replacement
ctPointGetProperty ctTagGetProperty
If you are using the point functions on single tags, use the ctTagRead, ctTagWrite func-
tions instead. If you are building up multiple tags into one point, use ctListNew and add
tags to the list through ctListAdd. Then use ctListWrite, ctListRead and ctListData to
write and read from the tags.
The following functions are not relevant to tag based operations. They are obsolete and
there is no replacement function.
l ctPointBitShift
l ctPointClose
l ctPointCopy
l ctPointDataSize
l ctPointToStr
l ctStrToPoint
l ctTagToPoint
50
Chapter: 2 What's New in CitectSCADA v7.x
A set of new configuration parameters have been added to provide control over the
CitectSCADA network interfaces. These parameters help you protect your system by
allowing control over unused features of the product. The following services can be ena-
bled / disabled: DDE, Remote CTAPI, ODBC, OLEDB and FTP.These services are dis-
abled by default.
User login necessary for control actions
A user is now necessary to be configured and logged in to CitectSCADA to allow the dis-
play process to perform a tag write (control) action. Design CitectSCADA projects to
avoid Cicode task that perform tag writes that are not issued by a user.
We advise that projects be configured to take advantage of the change to provide
increased system security protection. If your system has existing network security pro-
tection in place and does not require the additional security protection, it can be turned
off using the following parameters to avoid the impact of the changes:
Parameter for the client/display node: See [LAN] SecureLogin in the Parameters help file
for more information.
Parameter for the server node: See [LAN] AllowLegacyConnections in the Parameters
help file for more information. (As part of CitectSCADA7.20 this parameter was made
obsolete)
These parameters may be necessary during an upgrade process when there is a mix of
old and new version CitectSCADA nodes in a running system.
See Also
System Parameters
51
Chapter: 2 What's New in CitectSCADA v7.x
Multi-Signature Support
CitectSCADA now provides the facility for up to four users to approve an action or tag
write operation using the new Cicode functions MultiSignatureForm and Mul-
tiSignatureTagWrite.
Two further Cicode functions, VerifyPrivilegeForm and VerifyPrivilegeTagWrite, enable
you to restrict access to a specific action or tag write for a user with a specific set of priv-
ileges.
52
Chapter: 2 What's New in CitectSCADA v7.x
Note: If you choose to ignore any alert, the driver will be installed but the driver may
not operate correctly.
The communication driver installation can also be invoked individually at any time
after the product installation to install additional drivers.
53
Chapter: 2 What's New in CitectSCADA v7.x
From v7.10, the text displayed on a button object can be configured in the same manner
as other CitectSCADAtext objects within the Graphics Editor and the automation inter-
face. This will allow you to present a more polished and consistent GUI to meet individ-
ual project runtime presentation requirements.
When migrating from a previous release, button object text properties are preserved and
converted to the new button object text properties with the appropriate default property
values automatically placed in the new configuration such as Font=Arial, Size=12, Align-
ment=centre, style=regular, etc.
See Also
Button Properties - Appearance
54
Chapter: 2 What's New in CitectSCADA v7.x
55
Chapter: 2 What's New in CitectSCADA v7.x
{TypeNum,n} Alarm type number (use AlarmType to get string value instead).
V
{AlmComment,n} The text entered into the Comment field of the alarm properties
dialog.
Alarm paging
The CitectSCADA alarm facility constantly monitors equipment data and alerts oper-
ators of any equipment error or alarm condition. When an alarm is triggered it is dis-
played on the standard alarm display page. The operator has to be continuously sitting
in front of an HMI monitoring the system. CitectSCADA v7.20 provides the facility to
link alarms with a remote paging system for operators.
56
Chapter: 2 What's New in CitectSCADA v7.x
Two Alarm Properties have been added to enable CitectSCADA to interface with any
third-party paging system. The Paging property is a flag to indicate that the alarm is
going to be paged, the PagingGroup property is a freeform text field indicating the
sequence of people to notify in the event the alarm occurred.
See your third-party paging system documentation for information on how to interface
with CitectSCADA.
57
Chapter: 2 What's New in CitectSCADA v7.x
l New parameters
l Obsolete parameters
New Parameters
The following parameters are new in version 7.10 . For an entire list of the system param-
eters, refer to theParameters documentation.
Alarm Parameters:
[Alarm]A- Defines the length of time that the alarm server will wait
rgyleTagValueTimeout for argyle tag values to become available (without error)
before starting to scan for argyle alarms.
Code Parameters:
[Code]Ha- When enabled will cause the cicode to halt when any tag
ltOnInvalidTagData read returns invalid data.
Client Parameters:
[Client]A- Set to enable auto login. Users can select one of seven modes.
utoLoginMode
CtApi Parameters:
[CtAPI]AllowLegacyServices When enabled the Citect Web Service and the Citect
OLEDB Provider can connect to the CTAPI server.
DDE Parameters:
[DDE]A- Allows Cicode to be run on the Citect server via the DDE Execute com-
llowCicode mand.
[DDE]A- Allows tag writes to the Citect server via the DDE Poke command.
llowWrites
Kernel Parameters:
[Ker- The total number of error buffers available for logging to the sys-
nel]ErrorBuffers log.dat file.
Lan Parameters:
58
Chapter: 2 What's New in CitectSCADA v7.x
[LAN]SecureLogin When set to 0 security measures are disabled and the sys-
tem acts as it did in versions prior to 7.10.
[LAN]ServerLoginName The name of the default identifier to allow data access for
a server process to another SCADA server process(es).
ODBC Parameters:
Page Parameters:
[Page]A- Defines the default behavior when displaying vertical scroll bars.
llowVScrollBar
Obsolete Parameters
Win Parameters:
Com Parameters:
[Com]Star- Determines the period to wait for I/O Devices to come online before
tTimeout displaying any data.
59
Chapter: 2 What's New in CitectSCADA v7.x
New Functions
Security Functions
Form- Adds both a password prompt and edit field to the current form.
SecurePassword
MultiSignatureForm Displays a form that allows up for 4 users to have their cre-
dentials verified in order to approve an operation.
Mul- Displays a form that allows up for 4 users to have their cre-
tiSignatureTagWrite dentials verified in order to approve a write of a specific value to
a specific tag.
VerifyPrivilegeForm Displays a form that allows a single user to enter their cre-
dentials.
Ver- Displays a form that allows any single user to enter their cre-
ifyPrivilegeTagWrite dentials in order to approve a write of a specific value to a spe-
cific tag.
Miscellaneous Functions
ServerRestart Restart any alarm, report, trend or I/O server from any Cicode
node in system, without affecting other server processes running
on same machine.
60
Chapter: 2 What's New in CitectSCADA v7.x
Tag Functions
TagRD- Works in conjunction with the TagInfo function. Reloads the variable
BReload tag database so when TagInfo is called it picks up online changes to the
tag database.
Windows Functions
WinStyle Switches on and off scrolling and scrollbar features for existing win-
dows.
Modified Functions
None
Obsolete Functions
Window Functions
61
Chapter: 2 What's New in CitectSCADA v7.x
62
Chapter: 2 What's New in CitectSCADA v7.x
63
Chapter: 2 What's New in CitectSCADA v7.x
When upgrading from a previous version of CitectSCADA to v7.20 existing Super Genie tem-
plate environment variables will override Super Genie page environment variables. Any man-
ual updates you made to Super Genie page environment variables prior to the upgrade will be
lost.
Failure to follow these instructions can result in death, serious injury, or equip-
ment damage.
Graphic Enhancements
Enhancements have been made to how you can configure graphic pages and the objects
you place on the page. These enhancements can be used in the creation and imple-
mentation of Genies and Super Genies.
In addition, wide screen formats are now natively supported including 16:10 and 16:9
aspect ratios.
See Also
Metadata
Note: You can also install the CitectSCADA runtime from a single installation file.
This file is on the installation DVD. This allows installation of the software to com-
puters which only need the runtime. The file can be copied to a network location for
remote installation.
64
Chapter: 2 What's New in CitectSCADA v7.x
Note: The [Privilege]Shutdown parameter is now used to specify the necessary priv-
ilege level of a user to perform a shutdown operation triggered by clicking the Close
button of the project (default privilege level is 8).
65
Chapter: 2 What's New in CitectSCADA v7.x
To view the new Example Project, select and run it from Citect Explorer. For more infor-
mation, use the help button included in the project on the main navigation panel.
Web-based Help
The wide spread use of the Internet to distribute information has now enabled Schneider
Electric (Australia) Pty. Ltd. to introduce that technology, to bring its users a new rich
and expanded format to deliver its help information.
The traditional on-line help, now referred to in CitectSCADA as PC-based Help, is still
available to provide immediate information which is related to the task at hand. If you
are a registered Technical Support customer you have the option of accessing the new
Web-based Help to provide the very latest information, which will include updates for
help topics to include the improvements to the software application introduced by Serv-
ice Packs.
Updates will also be included from enhancement to the help topics brought about by
user comments and general internal developments by the Schneider Electric (Australia)
Pty. Ltd. Technical Publications team.
You will also be able to "rate" individual help topics with a star rating, and add your
own comments to any help topics. Your comments and topic ratings will be retained in
our database and we will endeavor to incorporate your contributions in our ongoing
development of the quality of our documentation.
The future development of Web-based help will also include links to technical doc-
umentation in the form of:
l Technical Papers
l White Papers
l Knowledge Base content
l Education and Training material
The Web-based help is planned for release by the end of December 2010. So, please check
on its availability periodically with following the link www.citect.com/webhelp
OFSOPC Driver
The release of CitectSCADA v7.20 coincides with the availability of the OFSOPC Driver
for Schneider Electric's OPC Factory Server (OFS).
OFS Factory Server is a foundation component for communication with Schneider Elec-
tric PLCs. The OFSOPC Driver allows CitectSCADA to tightly integrate with OFS Factory
Server, minimizing the amount of configuration necessary for an end-to-end Schneider
Electric system.
66
Chapter: 2 What's New in CitectSCADA v7.x
You can install the OFSOPC Driver and its supporting documentation via the Driver
Selection page of the CitectSCADA v7.20 installer.
Performance Enhancements
The architecture of CitectSCADA Version 7.20 includes a new threading model that
offers significant performance improvements. The new Platform Task Framework (PTF)
defines an explicit threading environment for each subsystem, providing a standard pro-
tocol for work to be created and passed between them.
The performance improvements have been implemented in a way that retains existing
functionality.There is no changes to the configuration or operation of a system, just per-
formance benefits and improved stability.
67
Chapter: 2 What's New in CitectSCADA v7.x
Note: It is recommended that data assigned to disk I/O devices be migrated to the
new persisted memory I/0 mode. See the topic Persisted I/O Memory Mode for infor-
mation on how to migrate a disk I/O device to a persisted memory I/O device.
See Also
Using Persisted I/O Memory Mode
68
Chapter: 2 What's New in CitectSCADA v7.x
Supportability Enhancements
Supportability Enhancements have been added to CitectSCADA to provide easier access
to the diagnostics functionality of the product. Although the enhancements were pri-
marily introduced to assist Technical Support personnel with system analysis, they have
resulted in many benefits to the end user. These include:
l Timestamp harmonization across log files.
l Additional [Debug] parameters to support category and severity filtering (see
Citect.ini Parameters in Version 7.20).
l Support for online logging adjustments using the new SetLogging() and GetLogging()
Cicode functions.
l A set of parameters that can be modified while online due to periodic or an on-
demand read of the citect.ini file during runtime.
Additionally, the home page of the Computer Setup Editor now includes a link to the
Logging Parameters page, which provides comprehensive instructions for the con-
figuration of logging.
See Also
Configuring logging
69
Chapter: 2 What's New in CitectSCADA v7.x
Tag Extensions
With the addition of Tag Extensions in CitectSCADA v7.20, the variable tag can now
represent data as a collection of elements, and each of these elements can contain a col-
lection of items.
Each element provides access to a view of the data value for the tag. Each variable tag
can be used on its own or by referencing a particular element. The tag and each element
have items that can be referenced to access the following information:
.v : The value, which will access the data value of the tag or element.
.vt : The value timestamp, which will access the timestamp of when the value last
changed.
.q : The quality, which will access the quality of the value , either GOOD, UNCERTAIN
or BAD. The Quality variable can access further detail using the Cicode Quality func-
tions.
.qt : The quality timestamp, which will access the timestamp of when the quality last
changed.
.t : The timestamp, which will access the timestamp of when the tag or element was last
updated.
See Also
Tag extensions
70
Chapter: 2 What's New in CitectSCADA v7.x
Time Scheduler
The Time Scheduler is a calendar based programming tool that allows you to manip-
ulate tag values within a CitectSCADA project. It can be used to create a sequence of
automatically executed commands, delivering a valuable scheduling tool for appli-
cations. If you choose the Time Scheduler follow the on screen instruction.
For details on configuring and using the Time Scheduler, refer to the documentation
installed with the Time Scheduler product.
New Parameters
The following parameters are new in version 7.20 . For an entirelist of the system param-
eters, refer to the Parameters documentation.
Alarm Parameters
Client Parameters
[Client]DisableDisplay Sets whether to allow the client process to run in the back-
71
Chapter: 2 What's New in CitectSCADA v7.x
CtAPI Parameters
CtDraw.RSC Parameters
CtEdit Parameters
Debug Parameters
72
Chapter: 2 What's New in CitectSCADA v7.x
General Parameters
IOServer Parameters
LAN Parameters
73
Chapter: 2 What's New in CitectSCADA v7.x
Page Parameters
74
Chapter: 2 What's New in CitectSCADA v7.x
75
Chapter: 2 What's New in CitectSCADA v7.x
Report Parameters
Security Parameters
Server Parameters
Trend Parameters
76
Chapter: 2 What's New in CitectSCADA v7.x
Modified Parameters
CtEdit Parameters
[CtEdit]Copy Supports runtime changes, it enables you to switch the SCADA node to
use a new runtime configuration by pointing to a new location.
Re-instated Parameters
IOServer Parameters
Obsolete Parameters
AnmCursor Parameters
General Parameters
LAN Parameters
Page Parameters
77
Chapter: 2 What's New in CitectSCADA v7.x
Time Parameters:
Trend Parameters
New Functions
ctTagReadEx Performs the same as ctTagRead, but with an additional new argument
Modified Functions
78
Chapter: 2 What's New in CitectSCADA v7.x
ctTagRead Reads the current value from the given I/O device variable tag element value.
ctTagWrite Writes the given value to the I/O device variable tag elements which have read/write
access.
ctTagWriteEx Asynchronously writes the given value to the I/O device variable tag element value
for the tag elements which have read/write access.
Obsolete Functions
None
New Functions
Alarm Functions
AlarmCatGetFormat Returns the display format string of the specified alarm category.
Display Functions
DspAnSetMetadata Non-blocking function, that sets the value of the specified metadata
entry.
Format Functions
79
Chapter: 2 What's New in CitectSCADA v7.x
Menu Functions
MenuGetChild Returns the handle to the child node with the specified name.
MenuGetNextChild Returns the next node that shares the same parent.
MenuGetPrevChild Returns the previous node that shares the same parent.
MenuGetWindowNode Returns the handle of the root menu node for a given window.
MenuNodeHasCommand Checks whether the menu node has a valid cicode command
associated with it.
MenuNodeIsHidden Checks whether the menu node is hidden by evaluating its Hid-
denWhen cicode expression.
Miscellaneous Functions
GetLogging Gets the current value for one or more logging parameters.
Page Functions
80
Chapter: 2 What's New in CitectSCADA v7.x
PageHistoryDspMenu Displays a pop-up menu which lists the page history of current
window.
PagePeekCurrent Return the index in the page stack for the current page.
PageProcessAnalyst Displays a Process Analyst page (in the same window) preloaded
with the pre-defined Process Analyst View (PAV) file.
PageProcessAnalystPens Displays a Process Analyst page (in the same window) preloaded
with the pre-defined Process Analyst View (PAV) file and specified
trend or variable tags.
PageRecall Displays the page at a specified depth in the stack of previously dis-
played pages.
ProcessAnalystLoadFile Loads the specified PAV file to a Process Analyst object, which is
identified by parameter ObjName.
ProcessAnalystPopup Displays a Process Analyst page (in the same window) preloaded
with the pre-defined Process Analyst View (PAV) file and specified
trend or variable tags.
Quality Functions
QualityGetPart Extracts a requested part of the Quality value from the QUALITY var-
iable.
81
Chapter: 2 What's New in CitectSCADA v7.x
QualityIsControlInhibit Returns a value indicating whether the tag is in Control inhibit mode.
Server Functions
ServerBrowseFirst This function places the data browse cursor at the first record.
ServerBrowseGetField This function retrieves the value of the specified field from the
record the data browse cursor is currently referencing.
ServerBrowseNext This function moves the data browse cursor forward one record.
ServerBrowseNumRecords This function returns the number of records that match the filter
criteria.
ServerBrowseOpen This function initiates a new browse session and returns a han-
dle to the new session that can be used in subsequent data
browse function calls.
ServerBrowsePrev This function moves the data browse cursor back one record.
ServerReload This function reloads the server specified by cluster and server
name.
ServerIsOnline This function checks if the given server can be contacted by the
client for giving the online/offline status of the server.
String Functions
StrTruncFont Returns the truncated string using a particular font (specified by name)
or the specified number of characters.
AssMetadata Performs Super Genie associations using the "Name" and "Value" fields.
AssMetadataPage Uses the metadata information from the current animation point for the
page associations for a new Super Genie page, and displays the new
Super Genie in the current page.
AssMetadataPopup Uses the metadata information from the current animation point for the
associations for a new Super Genie page, and displays the new Super
Genie in a new pop up window.
82
Chapter: 2 What's New in CitectSCADA v7.x
AssMetadataWin Uses the metadata information from the current animation point for the
associations for a new Super Genie page, and displays the new Super
Genie in a new window.
Tag Functions
TagSetOverrideBad Sets a quality Override element for a specified tag to Bad Non
Specific.
TagSetOverrideGood Sets a quality Override element for a specified tag to Good Non
Specific.
Task Functions
Timestamp Functions
TimestampGetPart Returns one part (year, month, day, etc) of the timestamp variable.
TimestampCurrent Returns the current system date and time as a TIMESTAMP variable.
83
Chapter: 2 What's New in CitectSCADA v7.x
Window Functions
Modified Functions
Accumulator Functions
Alarm Functions
Display Functions
Format Functions
Miscellaneous Functions
Page Functions
Security Functions
Login Logs an operator into the CitectSCADA system. Not available when logged
84
Chapter: 2 What's New in CitectSCADA v7.x
in as Windows user.
AssGetProperty Retrieves association information about the current Super Genie from the
datasource.
AssGetScale Gets scale information about the associations of the current Super Genie
from the datasource (that is scale information about a variable tag that has
been substituted into the Super Genie)
AssInfo Gets association information about the current Super Genie (that is infor-
mation about a variable tag that has been substituted into the Super
Genie).
AssInfoEx Retrieves association information about the current Super Genie (that is
information about a variable tag that has been substituted into the Super
Genie).
AssScaleStr Gets scale information about the associations of the current Super Genie
(that is scale information about a variable tag that has been substituted
into the Super Genie).
Tag Functions
TagWrite Writes a tag element value for the tag elements which have
read/write access.
Window Functions
Reinstated Functions
Following functions have been reinstated for 7.20.
Time and Date Functions
85
Chapter: 2 What's New in CitectSCADA v7.x
86
Chapter: 3 Upgrading to CitectSCADA v7.20
To upgrade an existing project to v7.20 from v6.x, perform each of the following pro-
cedures.
You do not need to carry out these procedures if you are upgrading from v7.0 or v7.10 to
v7.20.
l Upgrade CTAPI Applications
Verify that CTAPI applications are upgraded before upgrading and running any
CitectSCADA V7.x projects.
l Configure I/O Devices
Before upgrading, verify that I/O Devices are configured as necessary to run in the
project.
l Run the Citect Installer
The installer will lead you through a number of steps until the installation is com-
plete.
l Launch CitectSCADA
An automatic upgrade of your projects will occur when you initially start Citect-
SCADA
l Run the Migration Tool
The automatic update that occurs when you initially launch CitectSCADA does not
fully upgrade your projects, as such it needs to be followed by running the Migration
Tool.
l Define Clusters
Clusters can now be defined. The project needs to be configured to use at least one
cluster.
l Configure Network Addresses
The network addresses and ports of the computers to be used as servers are now
defined in the project.
l Configure Servers
The Alarm, Report, Trend, and I/O Servers are now defined in the project.
l Configure Tags to Use Clustering
Alarms, reports, trends, SPC tags, and accumulators can now be configured to run in
a specific cluster.
87
Chapter: 3 Upgrading to CitectSCADA v7.20
Note: If you are running version 5.5, verify that you upgrade your projects to version
6.x before upgrading to v7.x.
See Also
What's new in V7.x
88
Chapter: 3 Upgrading to CitectSCADA v7.20
However, this also means if you have I/O Devices temporarily defined as memory I/O
Devices for testing or simulation, they will be incorrectly configured as local variables by
the upgrade process. Verify that you configure these devices as you require them to run
before upgrading to version 7.x.
After upgrading, confirm and adjust the configuration of all I/O devices in your project.
Failure to follow these instructions can result in death, serious injury, or equip-
ment damage.
Before attempting to configure your I/O devices for the changes caused by the upgrade
process, first read the information in Configuring Local Variables and Using Memory
Mode. This provides details about local variables and the other I/O Device options that
replace memory I/O Devices, allowing you to select and configure your project appro-
priately.
Note: Alarm devices with their Protocol property set to "Alarm" are no longer used
and will be removed by the Migration Tool. All Alarm Servers will now publish
Alarm Properties.
The reconfiguration will take place when you run the Migration Tool. For detailed infor-
mation on this tool, refer to Migration Tool.
See Also
Run the Citect Installer
Configuring Local Variables
Using Memory Mode
Note: Uninstall any existing version 6.x or version 7.0 before installing v7.20, as
CitectSCADA does not support different versions running side-by-side. Additionally,
to use the v7.20 Example and CSV_Example projects, it is recommended that you
delete the existing Example and CSV_Example projects using Citect Explorer before
starting the installation.
89
Chapter: 3 Upgrading to CitectSCADA v7.20
Launch CitectSCADA
An automatic upgrade of your projects will occur when you initially start CitectSCADA.
1. To launch CitectSCADA, click Start | All Programs | Citect | CitectSCADA 7.10 |
CitectSCADA Explorer. The following message will display:
Migration Tool
The automatic update that occurs when you initially launch CitectSCADAv7.20 does not
fully upgrade your projects, and needs to be followed by the use of the Migration Tool (
if migrating from v6.x this is particularly noteworthy). The automatic update is a pas-
sive action which updates the database field definition for any database that has been
changed between the two versions and copies new files that are necessary in v7.20. Prior
to the automatic upgrade proceeding you are given the option of canceling the upgrade.
The upgrade can be invoked at a later time by setting the [CtEdit]Upgrade parameter to 1
(True) in the Citect.ini file.
After the automatic update has completed then prepare your projects prior to running
the Migration Tool.
The Migration Tool is a separate application which has to be manually run after the
automatic upgrade has been executed, and initiated by you after you have prepared the
project for final migration. This tool will accommodate the important changes in project
functionality that are incorporated in v7.0 and v7.20.
It is important that you prepare your existing projects for a successful upgrade using this
tool.
90
Chapter: 3 Upgrading to CitectSCADA v7.20
Some of the features introduced in v7.20 of CitectSCADA require changes in the project
data from version 6.x
After upgrading, confirm and adjust the configuration of all I/O devices in your project.
Failure to follow these instructions can result in death, serious injury, or equip-
ment damage.
See Also
Memory devices
Alarm devices
Included projects
Using the Migration Tool
Memory Devices
In previous versions of CitectSCADA an I/O Device could be defined as a memory
device by setting the port value to "Memory". This was generally done for one of the fol-
lowing purposes:
l To provide for future devices that were not currently connected to the system, but
their points needed to be configured at this stage of project.
l For virtual devices where there was no corresponding physical I/O Device and you
needed data storage with the entire functionality normally associated with I/O var-
iables such as alarms.
l To act as a variable which was local to the process being used in place of Cicode
global variables.
You can still use I/O Devices for future or virtual devices in version 7.0, but manually
set the Port parameter to an unused value other than Memory, and set the Memory prop-
erty of the device to True to indicate that it is an offline in-memory device before running
the Migration Tool.
You need to review your project to identify which memory I/O Devices are local variable
holders and which ones need to be changed to non-memory so that the Migration tool
does not convert their variables.
The Migration Tool will set any I/O Device's port which is identified as a Memory
device to the new Local Variable, and the original device record will be deleted.
See Also
Configure I/O Devices
Alarm Devices
91
Chapter: 3 Upgrading to CitectSCADA v7.20
Alarm Devices
In previous versions of CitectSCADA Alarm devices were defined as devices with their
Protocol property set to "Alarm". In version 7.0 the function of configuring such a device
is now replaced by setting the Publish Alarm Properties property to True on the Alarm
Server.
Alarm devices with their Protocol property set to "Alarm" will be deleted from I/O
Devices table by the Migration Tool.
See Also
Alarm Server Definitions
The Migration tool can delete memory and alarm device records. If you want to delete
the devices at a later time, deselect the "Remove obsolete Memory and Alarm Devices"
option.
Note: Alarm devices with their Protocol property set to "Alarm" are no longer used
and will be removed by the Migration Tool. All Alarm Servers will now publish
Alarm Properties.
See Also
Converting Memory Variables
92
Chapter: 3 Upgrading to CitectSCADA v7.20
Comment Comment
With the exception of the Array Size, which has been introduced in version 7.0 exclu-
sively for local variables, every field receives it's value from the same or similar field.
See Also
Deleting Variable Tags
Default Scale
The Scale properties in both variable tags and local variables are optional. If a Scale
value is not specified the default value is indicated by a parameter in the Citect.ini file.
The parameter name is "DefaultSliderScale" under the [General] section in the Citect.ini
file. The default values for Scale is 0-32000, unless the default slider scale is true in
which case the default value depends on the type for example Integer, String etcetera.
93
Chapter: 3 Upgrading to CitectSCADA v7.20
The Migration tool will read this parameter and if it is not set, or set to false, then it will
explicitly set any empty Scale property to a value in to the range of 0 to 32000. This will
be done even if either of the Zero Scale or Full Scale parameters has a value, in which
case the empty Scale parameter will receive the default value.
If the DefaultSliderScale in the Citect.ini file set to True, the Scale parameters will not be
populated with a default value if they are empty, rather they will be interpreted at run-
time.
Included Projects
Each project may contain multiple included projects. Additionally any included project
may contain its own included project so creating a cascading project.
The Migration Tool needs to process the original project and included projects in a sin-
gle step. The reason for this is that variables can be defined in one project that refer to
I/O Devices defined in another included project.
The Migration Tool performs this procedure sequentially on the "master" project then
each included project.
In the case where two master projects share the same project as an included project, it is
important that you do not select the "Remove obsolete Memory and Alarm devices"
check box when you process a project that contains shared included projects. This is
because the removal is performed at the conclusion of the migration process on each
master and included projects sequentially. This could cause the deletion of an I/O Device
in the first master project which is referenced by a tag in a shared included project
which is processed in a later step.
If two separate "master" projects contain the same included project, run the Migration
Tool on each "master" project without selecting to delete obsolete devices.
94
Chapter: 3 Upgrading to CitectSCADA v7.20
After upgrading, confirm and adjust the configuration of all I/O devices in your project.
Failure to follow these instructions can result in death, serious injury, or equip-
ment damage.
To remove obsolete devices it is recommended that once the Migration Tool has com-
pleted successfully (without the check box being selected), run it a second time with the
check box selected. This will safely remove the devices since every tag conversion were
completed in the first pass of the Migration Tool.
Note: Before you use the Migration Tool is strongly recommended that you famil-
iarize yourself with the process that it performs, and the preparatory steps that you
need to carry out with your existing projects as described under Migration Tool.
95
Chapter: 3 Upgrading to CitectSCADA v7.20
4. Select the Remove obsolete Memory and Alarm devices check box if you wish to
delete these devices after successful migration.
Note: Do not select this check box if the project contains any included projects
which are shared with more than one master project when you run the tool for
the first time on such projects. Run the tool a second time using this option if the
migration is successful after it is run the first time if you want to delete the
devices.
5. Leave as selected the option 'Create Roles from User security information' if you wish
to migrate the users database from an existing project
6. Check the option 'Copy XP_Style menu into Tab_Style Menu' to convert legacy menu
entries to the format necessary for the new menu configuration system. By default
this option is unchecked, to avoid potential compile errors that may occur after migra-
tion if the legacy menu.dbf contains functions which have been removed.
7. Check 'Migrate Included Projects' to migrate the included projects that are in the
project you previously selected.
Note: If 'Copy XP Syle menu into Tab_Style Menu' and 'Migrate Included Projects'
are both selected when the migration tool runs the following message will be dis-
played "Copying menus of included projects may lead to conflicts. Any conflicts
will need to be manually corrected". To avoid this from occurring it is rec-
ommended you run the migration tool twice. In the first instance just select the
option 'Copy XP_Style menu into Tab_Style Menu', and in the second instance
just select the option 'Migrate Included Projects'.
8. Click Migrate to begin the migration process, or click Close to exit without per-
forming the migration.
9. The migration process will begin and display a progress dialog indicating the stage
of the conversion and the name of the project being migrated. If you wish to cancel
the migration at this point click the Abort button.
Note: Aborting a migration will stop the migration process, and any changes
already completed will not be rolled back. You will have to restore your project
from the backup created in the first step.
10. When the migration process is concluded a confirmation dialog box will display indi-
cating the number of variables converted and the number of I/O Devices deleted (if
device deletion was selected at the start of migration)
11. Click the Close button to close the dialog.
96
Chapter: 3 Upgrading to CitectSCADA v7.20
Define Clusters
Even if you do not intend to use clusters in your project, you need to define at least one.
Tags and servers will default to run in the defined cluster.
1. In the Project Editor, select Servers | Clusters. The Cluster dialog box displays:
2. In the ClusterName field, enter the name of the cluster. The name needs to be unique
to the project and not contain spaces.
3. In the Comment field, enter any useful comment. This property is optional and is not
used at runtime.
4. Click Add.
See Also
Configure Network Addresses
Configure Servers
All Primary and Standby Alarms, Reports, Trends, and I/O Servers are now defined
using the Project Editor. This involves specifying a network address and a cluster for
each server.
Default Ports
97
Chapter: 3 Upgrading to CitectSCADA v7.20
Each server has a unique default port assigned to it. This default port may only be used
with that type of server. Attempting to use a default port on another type of server will
result in a compilation error of:
"Invalid port number (2073-2082,20222,21) are reserved"
The following table lists the default port numbers and their associated server type.
98
Chapter: 3 Upgrading to CitectSCADA v7.20
99
Chapter: 3 Upgrading to CitectSCADA v7.20
See Also
Configure Trend Tags to use Clustering
100
Chapter: 3 Upgrading to CitectSCADA v7.20
Note:If updating projects created using previous versions of CitectSCADA, check that
the Computer Role Setup Page has the correct process mode selected.
See Also
Running the Computer Setup Wizard
Troubleshooting
Carefully consider the following results when upgrading to CitectSCADAv7.20:
l Compiler Errors
l Upgrading a Project that uses Distributed Servers
101
Chapter: 3 Upgrading to CitectSCADA v7.20
Compiler Errors
Before you configure your project to run in version 7.0, compiling the project will gen-
erate a number of compiler errors. These may include messages concerning deprecated
and deleted functions, as well as the detected error "No Clusters defined". This detected
error will be resolved once you define a cluster in the project.
See Also
Troubleshooting
Note: Defining a separate communications project means that when the Global
Display Project compiles, it has the communications information without needing
to load the data from the Cluster Projects.
l In each Cluster Project, specify the appropriate cluster for alarms, trends, reports, SPC
tags, and accumulators.
l You may need to modify the buttons and pages in the Global Display Project, par-
ticularly if they are using Cluster functions which have been modified or deprecated.
102
Chapter: 4 About CitectSCADA
CitectSCADA is a Supervisory Control and Data Acquisition (SCADA) solution that is
used to manage and monitor processes in manufacturing, primary production, utilities
delivery and facilities management.
The graphics, controls, configuration data and programming associated with a Citect-
SCADA installation is configured and implemented through projects. A project acts as a
digital representation of your production facility that is deployed in tandem with your
plant infrastructure, allowing the entire system to be monitored and controlled in real-
time.
However, from CitectSCADA 7.0 the compiler does not generate any static point count
any more. CitectSCADA counts I/O device addresses dynamically at runtime. This
includes tags used by alarms, trends, reports, events, pages, in Super Genies, use of the
TagRead() and TagWrite() Cicode functions, or read or written to using DDE, ODBC, or
the CTAPI. A particular variable tag is only counted towards your point count the first
time it is requested. That is, even though you may have configured a certain tag on a par-
ticular page in your project, unless you navigate to that page and request the data, the
variable tag will not be counted towards your point count.
In addition to this, there have been a number of other changes that have been made to
the licensing structure from CitectSCADA 7.0. These are listed below:
l I/O point count is now tag based not address based. For example, two tags that use
the same PLC address will be counted twice. If two trend tags use the same variable
tag, it will be counted once. The same applies to alarms.
l For the multi-process mode, each server component will accumulate its own point
count. The server component point count is the count added up from each server
103
Chapter: 4 About CitectSCADA
component -if two server components use the same tags, say alarm and trend, the
tags will be counted twice when the point count gets totaled.
l For the multi-process mode, the client component will also accumulate its own point
count including super genie and CTAPI tags.
l For the multi-process mode, the machine point count will be the point count on the
client component or the point count added up from each server component, which-
ever is bigger. For example, if the total point count for each server component is 100,
and the client component point count including CTAPI and super genies is 95, the
kernel "General" window will show 100. If the client component point count reaches
120 later and the server component point count still remains 100, the kernel "Gen-
eral" window will show 120.
l Reading properties of a tag with TagGetProperty() will cause that tag to be included
in the point count, even if the value is not read.
l Writing to local variables or disk IO variable tags via OPC etc will also increase the
point count. For example, if you use an OPC client to write to a local variable, each
local variable will be counted once, the first time it is used.
104
Chapter: 4 About CitectSCADA
Deploying CitectSCADA
The project is then deployed across a client-server network architecture. The servers are
used to manage communication with plant equipment and collate production data,
while the clients provide the interface for operators and managers to assess and interact
with the system.
This architecture allows the flexibility to adapt CitectSCADA to any production scenario,
with support for scalability, server clustering, and system redundancy.
Running a project
When a project is eventually compiled and implemented in runtime, your production
staff can visually monitor the system, initiate production processes and respond to
alarm conditions.
Historical and trend data can also be collated and distributed to assess operational per-
formance metrics such as production volume, efficiency, and maintenance requirements.
105
Chapter: 4 About CitectSCADA
106
Chapter: 5 Tools
CitectSCADA's architecture can be divided into three distinct areas of functionality:
l Configuration
l Runtime
l Drivers
Configuration involves the tasks necessary to prepare and build a project, while runtime
is the implementation of a project in a live production environment.
Drivers enable communication with devices via a number of communication protocols.
The driver defines the specific project settings necessary for CitectSCADA to com-
municate with a particular device.
When considering the tools included with CitectSCADA, it is easiest to look at their roles
in either configuration or runtime.
See Also
Configuration Tools
Runtime Tools
Drivers
Configuration Tools
The following tools enable you to configure a project and its components, and set up
computers to use CitectSCADA:
107
Chapter: 5 Tools
Runtime Tools
The following tools enable you to run, monitor, and control projects during runtime:.
108
Chapter: 5 Tools
Drivers
CitectSCADA can communicate with an array of I/O Devices, including PLCs (Pro-
grammable Logic Controllers), loop controllers, and distributed control systems (DCS).
The I/O Devices may be local (directly connected to an I/O Server) or remote (connected
to CitectSCADA via an intermediate communications means like a phone line).
Drivers enable communication with devices via a number of communication protocols
(including Ethernet, TCP/IP, and Serial). The driver defines the specific project settings
necessary for CitectSCADA to communicate with a particular device. This includes infor-
mation about:
l Boards
l Ports
l Devices
l Tag addressing
For detailed information on drivers and how to use them in your system, see Com-
municating with I/O Devices
109
Chapter: 5 Tools
110
Chapter: 6 Components of a project
The components you can incorporate in a project are logically divided across the fol-
lowing categories:
l Graphics components
l Tags
l Alarms
l System components
l Communications components
l I/OServer components
l Cicode / CitectVBA
These categories are represented in Citect Explorer through the set of folders associated
with each project.
As you build a project, the components you include are listed in the relevant project
folder. Selecting an item from one of these folders launches the selected component in
the tool necessary to edit its properties.
See Also
Graphics components
Tags
Alarms
System components
Communications components
I/OServer components
Cicode / CitectVBA
Graphics components
The graphical components of a project represent the content used to create the screens
presented on clients. They include:
111
Chapter: 6 Components of a project
Genies Objects that group multiple graphical and functional elements for
easy duplication
As you create project pages in Graphics Builder, the included components are added to
the relevant subdirectory in the current project's Graphics folder.
Tags
Tags are used to identify the end points in the infrastructure you are using CitectSCADA
to monitor and control. The name you give to a tag becomes a label for a register
address, allowing it to be intuitively applied across graphics pages and in alarm noti-
fications.
Three tag types are included in a project's Tags folder in Citect Explorer:
SPC tags used to label tags according to Statistical Process Control prin-
ciples
Selecting one of these tag types in Citect Explorer calls up the associated configuration
dialog in Project Editor.
112
Chapter: 6 Components of a project
Alarms
Alarms are used to identify conditions in a system that require attention. CitectSCADA
supports seven different alarm types:
Digital
Analog
Time-stamped
Advanced
Multi-Digital
Time-stamped Digital
Time-stamped Analog
You can also use alarm categories within your project to help identify and manage
alarms.
System components
The system components of a project allow you to customize, manage, and track your run-
time system. They include:
113
Chapter: 6 Components of a project
Users User profiles to restrict and grant access to the runtime system
Param- Built-in operating settings for fine tuning the runtime system
eters
See "Citect.ini File Parameters" in the CitectSCADA Technical Ref-
erence
114
Chapter: 6 Components of a project
Communications components
The communications components of a project are the configured representation of the
communications hardware in your system. They include:
Port The physical connection between the board and the I/O Device
115
Chapter: 6 Components of a project
Alarms Servers that monitor alarms and display them on the appro-
servers priate client(s)
Trends Servers that control the accumulation and logging of trend infor-
Servers mation
Cicode / CitectVBA
CitectSCADA offers two programming languages with which you can control and
manipulate CitectSCADA components:
116
Chapter: 7 Typical system scenarios
The scenarios described in this chapter demonstrate how CitectSCADA can be used to
support typical processes found in primary production, utilities delivery, and man-
ufacturing.
In reality, a project will incorporate a combination of the scenarios described here, with a
high degree of customization and scalability. However, these examples have been sim-
plified to demonstrate how CitectSCADA can be configured and deployed to meet the
specific requirements of a production system.
Standalone system
Every component of a system runs on a single computer. See Standalone system.
Distributed I/O system
CitectSCADA is used to monitor and manage distributed devices that are each connected
to remote I/O Servers. See Distributed I/O system.
Redundant server system
One or more of the servers associated with a system are duplicated and defined as pri-
mary and standby units, allowing the system to keep running in the event one of the
servers becomes inoperative. See Redundant server system.
Client-server system
The servers and clients associated with a system are independently distributed across a
number of computers on a network, offering greater accessibility and performance ben-
efits. See Client-Server system
Redundant and distributed control system
Remote or geographically separate sections of a production system have fully oper-
ational sub-systems in place that are monitored and controlled locally. If such a sub-sys-
tem becomes partially or wholly inoperative in a manner preventing local control, this
arrangement allows remote Control Clients to take control of the affected sub-system. See
Redundant and distributed control system.
Cluster controlled system
A production system is organized into discrete areas being monitored by operators
within each area. However, there is also a level of control that supervises every area of
the system. See Clustered control system.
Load sharing system
117
Chapter: 7 Typical system scenarios
The system splits the load of an otherwise stressed system across multiple machines,
better utilizing the available infrastructure. See Load sharing system.
See Also
Cluster Connections Configuration
Standalone system
A standalone installation of CitectSCADA runs every server and client component of a
system on a single computer. These include:
l I/O Server
l Alarm Server
l Trends Server
l Reports Server
l Control Client
This allows CitectSCADA to be run as a small, self contained system.
Note: You can run the server and client components of a standalone system as a sin-
gle-process or multi-process system. It is recommended that a single- process setup
only be used as a short term solution for your control system, or to run dem-
onstrations and test projects. Adding redundancy to your system will make it more
reliable and more efficient.
118
Chapter: 7 Typical system scenarios
This model is also useful in plants that contain devices with a serial port or limited com-
munications capabilities. By placing I/O Servers on the factory floor to interface with
these devices, you can optimize communications on slow or low-bandwidth networks
and improve overall performance.
Despite the geographical distribution of I/O Servers across many sites, this type of sys-
tem can be configured as a single cluster system, as a cluster is able to support many I/O
Servers.
The diagram below demonstrates how to approach the deployment of this type of sys-
tem across the server machines using a single cluster.
A second cluster will only become necessary if your project requirements call for more
than one redundant pair of alarms, trends or reports servers.
119
Chapter: 7 Typical system scenarios
Client-Server system
CitectSCADA's client-server architecture allows the components of a system to be dis-
tributed across a number of computers on a LAN, creating a system that offers geo-
graphical flexibility and performance benefits.
Each component is simply identified within the project by an address, allowing the loca-
tion and hardware requirements for each to be considered independently.
The diagram below demonstrates how this example can still be configured within a sin-
gle cluster.
Each server also acts as a Control Client across the system architecture.
120
Chapter: 7 Typical system scenarios
In the case of I/O Server redundancy, a standby server is maintained in parallel to the
primary server. If a hardware error is detected, the standby server can assume control of
device communication with minimal interruption to the system. You can also use redun-
dant I/O Servers to split the processing load.
Alarm, report and Trends Servers can also be implemented as redundant servers. This
improves the likelihood that clients will continue to have access to data from a standby
server in the case a primary server becomes inoperative. CitectSCADA maintains iden-
tical data on both servers.
In the diagram below, the primary and standby I/O Servers are deployed independently,
while the alarms, trends and reports servers are run as separate processes on common
primary and standby computers. In this case, the entire system can be configured as a
single cluster.
121
Chapter: 7 Typical system scenarios
Each site is represented in the project with a separate cluster, grouping its primary and
standby servers. Clients at each site are only interested in the local cluster, whereas
clients at the central control room are able to view every cluster.
122
Chapter: 7 Typical system scenarios
The deployment of a control room scenario is fairly straightforward, as each site can be
addressed independently within its own cluster. The control room itself only needs Con-
trol Clients.
The deployment of servers could be mapped out as follows:
CitectSCADA's support for dynamic clustering means each site can be monitored and
controlled from the central control room if necessary. For example, if an operator at a par-
ticular site only works during regular business hours, then the monitoring can be
switched to the central control room after hours.
123
Chapter: 7 Typical system scenarios
The example above would require the creation of two clusters, so that the project can
include two sets of primary and standby servers. The clusters represent the redundant
pairs of servers, and would be deployed across the two sites as follows:
The clusters offer the benefit of keeping a logical structure to the project during con-
figuration, despite the unusual distribution of redundant server pairs.
124
Chapter: 7 Typical system scenarios
Both machines have an even balance of Trends and Alarm Servers, making effective use
of the CPU and disk space. By distributing the servers across two clusters, the servers
are also able to act as redundant units to each other. This has reduced the necessary
number of computers from a maximum of eight down to just two.
125
Chapter: 7 Typical system scenarios
126
Using CitectSCADA
127
128
Chapter: 8 Planning a Project
This chapter describes the planning phase of a CitectSCADA system.
A planned approach to the design and configuration of your system allows you to make
optimal use of the product's features and performance capabilities, and helps you meet
the requirements of your production facility. It also helps avoid unnecessary rework dur-
ing the configuration of your project.
It is important to consider the following when planning a system:
1. The Physical Layout of a Plant
2. Operational Requirements
3. Project Design
4. Building Your Project
5. Setting up Your Computers
Geography
The physical layout of your facility, including whether the plant is spread across mul-
tiple geographical locations or specific areas of functionality, such as a number of pro-
duction lines running in parallel.
Machinery
The equipment (machines, physical connections, and devices) in your plant that will be
monitored and controlled by your system.
129
Chapter: 8 Planning a Project
Network configuration
The current configuration of the network that will support your system and its com-
munication with plant equipment. This will include the protocols used, the performance
capabilities of the system, and security.
See Also
Operational Requirements
Operational Requirements
By developing a set of operational requirements for your project, you'll define a com-
prehensive list of needs and objectives that your system needs to support to effectively
monitor and control production.
The things consider to determine the operational requirements include:
Architecture
Security
Reliability
Monitoring
Data collection
Architecture
Production Processes
The operating processes within your production facility need to be considered to deter-
mine how they can be logically represented and supported within your project. If the
processes are dependent on each other, you also need to consider how the interaction
between them will be managed, particularly if unexpected circumstances occur.
130
Chapter: 8 Planning a Project
Security
When planning a project you need to consider who will be using the system, and which
parts of a project they will need to have access to. To effectively do this you will need to
understand how roles, privileges and areas work together to enable you to develop a
secure CitectSCADA system.
See Also
Users and Areas
Reliability
The nature of your production processes will determine the importance of system relia-
bility. Consider issues such as:
l The need for uninterrupted operation
l the impact and cost of down-time
l the need to collect and protect system data
l the severity of alarm conditions.
This will help determine if your project needs to include redundancy, the type of redun-
dancy necessary, and the most appropriate way to implement it.
For more information, refer to Redundancy.
Monitoring
System monitoring is a key function of a SCADA system and needs to be considered in
terms of the necessary interaction between personnel and production processes.
You need to consider if the delivery of data is time-critical. For example, alarm con-
ditions need to be presented in real time, trend data may be delivered with a slight
delay, while maintenance data can be accumulated and viewed as necessary.
The system may also need to be monitored at different levels, from machinery operators
to control room personnel managing plant-wide processes. For each level of monitoring,
consider the data that needs to be presented, and the specific performance and diag-
nostic conditions that need to be flagged.
Data collection
Consider the kind of data you need to collect from the production process, and how it
will be used. Depending on your requirements, CitectSCADA can collect:
131
Chapter: 8 Planning a Project
l Production data
l Purchasing requirements
l Batch processing statistics
l Equipment status and performance data
l Maintenance scheduling information
l Process performance data
l Dynamic visual analysis data
Carefully consider an assessment of the likely amount of accumulated data, as it will sig-
nificantly impact on your computer hardware and network performance requirements.
For more information, refer to Logging and Trending Data.
See Also
Project Design
Project Design
Once you have developed a clear set of operational requirements, you need to plan how
to design your project to best meet these requirements. When designing your project, con-
sider the following issues:
Naming Standards
Page Templates
Genies and Super Genies
Clustering
Included projects
Redundancy
Naming Standards
By adopting naming standards, you can configure project components with meaningful
names that convey useful information, such as the location or type of component. The
standard that you use depends on the type of information that will be useful to system
operators. A naming standard helps promote consistency throughout the project, making
it easier to quickly identify components, and reducing duplication and user training.
Naming standards may be useful for devices, variable tags, reports, graphics objects,
and pages.
Reserved names
132
Chapter: 8 Planning a Project
Page Templates
Page templates are predefined page layouts that you can use to build the display screens
(graphics pages) for your project. Templates allow you to create new pages quickly, and
allow your runtime system to have a consistent look and feel. They can incorporate
standard navigational and support tools that are common to every page. CitectSCADA
includes a number of standard templates, and you can also design new templates to suit
the requirements of your system.
See Also
Using Page Templates
Clustering
Clustering allows you to group independent sets of CitectSCADA's server components
within a single project, allowing multiple systems to be monitored and controlled simul-
taneously.
The most appropriate configuration will depend on the requirements for the solution to
be deployed and the environment in which it is being deployed.
Some typical clustering configurations include:
l Standalone system
l Distributed I/O system
133
Chapter: 8 Planning a Project
l Client-Server system
l Redundant server system
l Clustered control system
l Redundant and distributed control system
l Load sharing system
CitectSCADA's implementation of clustering allows for the flexible deployment of graph-
ics pages that can access data from different clusters dynamically. A page can be allo-
cated a cluster context when it is called, and any elements on that page will be assigned
the same cluster, unless they have a cluster explicitly specified. See About cluster
context.
See Also
Typical system scenarios
Rules of Clustering
134
Chapter: 8 Planning a Project
Included projects
If you have a large production environment, you can simplify the configuration and
management of your system by designing your project as a collection of smaller
"included" projects.
Included projects can operate independently, however, they share resources and operate
interdependently during runtime. This means you can create and test projects rep-
resenting functional or physical sections of a plant, and then gradually bring them
online. Ongoing maintenance can then be managed with a minimal impact on pro-
duction.
For more information, refer to Including projects.
135
Chapter: 8 Planning a Project
Redundancy
Redundancy can be implemented at different levels of your system, depending on the
reliability requirements of your project. The following types of redundancy are available:
Device Redundancy
Multiple data paths to a device can be configured within CitectSCADA. Therefore, if the
primary path becomes unavailable, data can still be monitored over the secondary path.
Server Redundancy
Primary and Standby Alarms, Reports, and Trends Servers can be configured so that if a
primary server becomes unavailable to process a client's request, the request can be chan-
nelled to a standby server for processing.
LAN Redundancy
To avoid service interruptions when the primary network isn't operating, a redundant
LAN can be implemented that will provide an alternative path to a server if necessary.
See Also
Building Redundancy Into Your System
136
Chapter: 8 Planning a Project
Projects
You will first need to create a new project, and familiarize yourself with tasks like stor-
ing, including, and archiving it.
Before running the project, the process of compiling it will alert you to any errors in the
configuration.
See Also
Building Your CitectSCADA Project
Administering Projects
Compiling the Project
Graphics Components
Graphics components are the means through which operators view and interact with
the runtime system. Graphics pages can be designed to provide operators at different sys-
tem areas or levels with relevant monitoring and control options.
To create graphics components that meet your operational requirements, be familiar with
how to create graphics pages, use page templates, and configure graphical objects like
Genies and Super Genies.
See Also
Defining and Drawing Graphics Pages
137
Chapter: 8 Planning a Project
Alarms
The CitectSCADA alarm system monitors your production processes and alerts operators
to unexpected events that may require attention.
There are two types of alarms that you may need to configure:
l Hardware alarms - alert you to inoperative or partially operative equipment
l Configured alarms - allowyou to specify relevant alarm conditions for your facility
(for example, the value of a variable tag monitoring the level, temperature, or status
of a specific piece of equipment). There are seven types of configured alarms, depend-
ing on the type of alarm condition you need to set up.
To help operators process alarms, you can create graphics pages that provide alarm
information (such as the action an operator needs to perform to correct the situation).
See Also
Configuring and Processing Alarms
Configured alarms
Formatting an Alarm Display
Data Collection
Data collection in CitectSCADA incorporates two main aspects:
l Trends - The trends system allows you to collect and monitor plant data. Depending
on your requirements, data can be collected on a periodic basis, or when a specific
event occurs. The data can then be saved to disk for analysis or displayed on a graph
or report. To use trends in your system, you will need to be familiar with how to con-
figure trend tags and display trend data in a graph or report.
l Reports - Reports provide information on the status of your plant and processes. You
can configure reports with the following information so that they meet your oper-
ational requirements:
l Period/Trigger: Reports can be run on a request basis, periodically, or when a spe-
cific event occurs.
l Report format: You can use a text editor to create a file that specifies how a report
is displayed.
l Report output: Reports can be output to a file, device, or displayed on a graphics
page.
138
Chapter: 8 Planning a Project
See Also
Logging and Trending Data
Reporting Information
System Components
CitectSCADA includes the following system components, which provide further options
for monitoring, control, and user interaction:
l Commands and Controls - Configurable keyboard commands and slider controls
allow operators to interact with the runtime system.
l Events - Events (such as variable tags or expressions) can be configured that trigger a
specific action, like a command.
l Accumulators - Accumulators track incremental runtime data. The data is stored as
variable tags in an I/O Device, and updated regularly while the trigger is active.
l Statistical Process Control - SPC allows to you to track quality by collecting and inter-
preting process variables associated with a product.
l Labels - System wide substitutions can be configured for commonly executed com-
mands and expressions.
l Devices - High-level CitectSCADA data (including reports and logs) can be trans-
ferred to other system elements such as printers, databases, or files.
l Remote Access - A project can be accessed remotely or wirelessly in the following
ways:
l CitectSCADA Web Client - The CitectSCADA Web Client allows you to view a
live project within a Web browser.
l Internet Display Client - An Internet Display Client can be used to run a runtime-
only version of a project over the Internet from a remote location.
139
Chapter: 8 Planning a Project
See Also
Defining Commands and Controls
Configuring Events
Using Accumulators
Understanding Statistical Process Control
Using Labels
Using Equipment
Using Devices
CitectSCADA Web Client
Running Your System Over the Internet
Exchanging Data with Other Applications
140
Chapter: 8 Planning a Project
When CitectSCADA is used to monitor and control a plant, data from PLCs is collected
and displayed in the runtime environment. OPC Clients can access device and tag infor-
mation through the interface to the OPC Server, which in turn interacts with the CtAPI
interface to the Runtime. For details on how to configure the OPC Server, refer to Using
OPC Server DA2.0
141
Chapter: 8 Planning a Project
142
Chapter: 9 Administering Projects
CitectSCADA is a project-based application. This section of the help looks at the admin-
istrative tasks associated with creating, storing and maintaining your projects. It
includes:
l Managing your projects
l Archiving projects
l Including projects
l Working with the Project Editor
l Using Find and Replace in a project
Creating a project
There are two ways to create a new project:
l Use a pre-defined starter project
l Create a project from scratch
To base a project on an existing starter project:
143
Chapter: 9 Administering Projects
4. Enter a Description, and the Location where the new project files are stored.
5. Click the Create project based on starter project checkbox.
6. Choose the project on which you want to base your new project.
7. Click OK.
The starter project will contain pages, roles and other features that will help you quickly
get started with you project. Exact features will vary based on the template you base
your project on. For example, the Tab_Style starter project will contain:
l A cluster named "Cluster1".
l A role named "Administrators" which is linked to the "BUILTIN\Administrators"
Windows group and have global privilege of 8.
l Pages of Alarm, Summary, Disabled, Hardware, ProcessAnalyst and !Pr-
ocessAnalystPopup based on the relevant templates found in the Tab_Style_Include
project.
The newly created project will be immediately compilable, and will contain a basic level
of built-in functions such as viewing alarms and trends.
To create a project from scratch
To make it easier to configure a project from scratch, follow these steps:
1. Start Citect Explorer.
2. Choose New Project from the File menu, or click the New Project button.
3. Type a name for your project and choose a location for the files. This is mandatory.
4. Enter a Description, and the Location where the new project files are stored.
5. Select a Template style and Template resolution to set the appearance of the graph-
ics pages.
6. Click OK.
If creating a project based on the tab style templates, don't include pages based on tem-
plates that use a different style, including the earlier CSV_Include project. Doing so
might affect functionality.
See Also
New Project dialog
Creating a New Tab Template Project
144
Chapter: 9 Administering Projects
Name
A unique name for the project. The project name is restricted to 64 characters. It can con-
tain any characters other than characters in the Windows file naming rules "*|\{}:<>?/;'
Since the project name is a unique identifier, CitectSCADA does not permit you to create
or restore a project with the same name.
Description
A description of the project. This field is useful for giving an explanation of the role of
the project. You are urged to complete this field.
Location
The directory path where the project files are stored. As the Name field is entered, the
directory is automatically generated in the Location field. You can override this by man-
ually entering the location or clicking Browse.
Create project based on starter project
Select this option if you want to create a project based on the built-in starter projects.
Choose the project style from the Project drop down list that is displayed when this
option is selected.
You can create custom starter projects by placing *.ctz backup files in the
<User>/<Data>/Starter folder (where <User>/<Data> is the directory you chose during
installation). The [CtEdit]Starter parameter can be used to change this default path.
[Page defaults] Template style
The style (appearance) of the graphics pages in the runtime system. The style you select
is the default style for any new pages you add to the project. You can change the style of
existing pages and templates using the Page Properties, accessed through the Graphics
Builder.
Most users prefer the Standard style. You can view the pre-defined styles by looking in
the Include project under Graphics, Templates.
[Page defaults] Template resolution
The default screen resolution of the standard graphics pages (such as alarms pages and
standard trend pages):
145
Chapter: 9 Administering Projects
146
Chapter: 9 Administering Projects
The name of the project. This name is identical to the name that was used when the
project was created. The project name is restricted to 64 characters. It can contain any
characters other than the semi-colon (;) or single quote ('). Since the project name is a
unique identifier, CitectSCADA will not permit you to create or restore a project with the
same name. Maximum length is 64 characters.
(General) Status
The status of the project. This can be either COMPILED or UNCOMPILED.
(General) Location
The directory path where the project files are stored. This field cannot be edited.
(General) Description
A description of the project. This field is useful for giving an explanation of the role of
the project. You are urged to complete this field. Maximum length is 255 characters.
(General) Major revision
CitectSCADA sets this property to one (1) when the project is first created. You can use
this field to track major changes to the project. You can use an incremental revision his-
tory (for example 1, 2, 3, . . . or A, B, C, . . .). Maximum length is 4 characters.
(General) Minor revision
CitectSCADA sets this property to zero (0) when the project is first created. You can use
this field in conjunction with the Major Revision to track your project's development.
Maximum length is 4 characters.
(General) Date and Time
CitectSCADA will initially set these fields to the date and times at when the project was
created. These fields are useful when used in conjunction with the Revision fields. Max-
imum length is 20 characters each.
(General) Project ID
A unique number for the project. The project number can be between 1 and 1022.
If you enter an ID that has already been used for another project, CitectSCADAwill detect
this when it compiles the project if the projects are part of the same include structure.
The project number is part of the unique identifier (object ID (OID)) used by OPC drivers
when reading from and writing to tags.
If you do not specify a project number, CitectSCADA will automatically generate one the
next time you select this project in the Citect Explorer, or the next time you compile. Max-
imum length is 4 characters.
Note: If you enter 0, your project ID is automatically set after closing the project's
147
Chapter: 9 Administering Projects
"Properties" page.
(General) Read-only
Specifies that no changes can be made to the project. If an attempt is made to modify the
project with this option selected, a message will prompt the user to disable the option
before continuing.
Note: If you change any properties, you need to click OK to save the changes to the
project.
Note: You can override this default for your own pages at the time when you create
them or any time afterward.
148
Chapter: 9 Administering Projects
Note: You can override this default for your own pages at the time when you create
them, or any time afterward.
Note: You can override this default for your own pages at the time when you create
them, or any time afterward.
Copying projects
You can copy the contents of one project into an existing or a new project.
To copy a project:
149
Chapter: 9 Administering Projects
The name of the source project being copied. If more than one project exists, you can
choose a project name from the drop-down list.
[To] (Existing or New) project
You can copy to either an Existing or a New project name and location.
l Existing Project: The source project is written over (replaces) an existing project loca-
tion under an existing project name.
l New Project: The source project is copied to the new location under a new project
name. A new project needs to be given a new name not currently being used, and
which complies with the naming requirements as detailed below.
[To] Name
The name of the destination project being copied to.
When copying to an existing project, you need to choose a project name from the existing
project names drop-down list.
When copying to a new project, you need to create a new and unique name for the
project. The project name is restricted to 64 characters, and can contain any characters
other than the semi-colon (;) or single quote ('). Since the project name is a unique iden-
tifier, CitectSCADA will not permit you to create or copy to a project with an existing
same name.
After the new project is created, you can change the Name through the Project Properties.
When copying to an existing project location, you can choose to delete the existing con-
tents of the destination project, including subdirectories, before the source project is cop-
ied, by checking both the Clear location before copying, and the Clear subdirectories check
boxes. This removes many files that may be left behind to interfere with the copied
project. If you do not clear the project location before copying, only common files in the
destination project are overwritten.
[To] Clear location before copying
Specifies to delete the contents of the existing destination project before copying the
source project to the destination location. This removes many files that may be left
behind to interfere with the copied project.
[To] Clear subdirectories
Specifies to delete the contents of the sub directories of the existing destination project
before copying the source project to the destination location. This removes many files
that may be left behind to interfere with the copied project.
Location
150
Chapter: 9 Administering Projects
The directory path where the destination project files are stored. As the Name field is
entered, the directory is automatically generated in the Location field. You might override
this by manually entering the location or clicking Browse.
Check that the project names and location are correct in the confirmation dialog box.
Click Yes to copy the project, or No to cancel.
151
Chapter: 9 Administering Projects
You can only print the contents of the current project. Included projects will not be
printed. You can specify the print font, font size, and page size in the Options for the
Project Editor (in the Tools menu).
Deleting a project
To delete an existing project:
Note: You cannot recover a deleted project that hasn't been backed up.
See Also
Linking projects
Linking projects
CitectSCADA installations on different computers over the same network can share the
same project. After a project has been created on one computer, other computers on the
same network can link to the same project, but only if the project location is on a shared
or network drive. Once linked, the remote project is visible in the local Citect Explorer,
and can be edited and compiled over the network. Only one version of a project ever
exists, and this version has to be kept on the computer it was created upon.
Note: Linking to a project provides the developer with normal access and control to
the project, even though it might be on a remote machine over the network.
Linked projects will not be included into the compile of any other project unless they
have specifically been Included into that project from within Project Editor.
For details, see Including projects.
152
Chapter: 9 Administering Projects
Restart the client process if the hardware alarm "Cicode library timestamp differs" is raised
after a page is opened.
Failure to follow these instructions can result in death, serious injury, or equip-
ment damage.
Note: A hardware alarm of "Cicode library timestamp differs" will be raised if the Cicode library used by a
page has a different timestamp from the one in memory. The timestamps will be different if the project has
been fully recompiled, the project has been incrementally recompiled after the page has been modified, or if
the project has been incrementally recompiled after any Cicode has been modified.
To link to a project:
Time Synchronization
Previous versions of CitectSCADA employed a message-based time Synchronization
server to verify clocks on computers running a CitectSCADA project maintained time
synchronization. To support CitectSCADA running under standard user rights with User
Access Control (UAC) switched on in Windows Vista, our existing Time Server func-
tionality needed to be replaced.
153
Chapter: 9 Administering Projects
Note: This has also made the Cicode function TimeSet obsolete, and any usage of it
is recommended to be removed from your existing code.
Field Description
TCP/IP Port The network port the service will use to listen for
connections from clients.
154
Chapter: 9 Administering Projects
Field Description
Current local time Displays the current time on the local computer,
updating every 1 second.
Log information events Controls whether the service writes events of type
'Information' to the event log. The default is
unchecked so that only alerts (called "warnings" in
the software) and errors are recorded.
Keep this computer's time synchronized Select this check box to enable the computer to be
a time client. This allows you to enter the poll time
and list of time servers against which to syn-
chronize.
Synchronize with first available Displays a list of computers, and the current time
on those computers if available. The display is
updated every 1 second
Note: When you add a time source to the list, the current time on that machine will be displayed, provided the
service is running on that remote machine and listening on the same port number. If "Not available" then the
service is not running, or is running and using a different port number, or that port number is being blocked
by a firewall. The column in the list box is provided as a diagnostics function to ensure that the machine
names entered can be synchronized against. The time displayed in this box is an approximate only.
See Also
Time Synchronization
Archiving projects
Once you have configured your system, back up (or archive) the project. This will avoid
the loss of any configuration data in the event your primary storage becomes inoperative
or inaccessible.
Note: When you are developing a project, adopt a regular backup strategy. Before
155
Chapter: 9 Administering Projects
performing a backup, verify that you have refreshed any linked tags in your project.
CitectSCADA lets you back up a project to a local drive (hard drive), network location, or
removable media (floppy drive, memory stick).
This section of the help includes information on the following archiving tasks:
l Backing up a project
l Backing up INI files
l Configuring a backup with password encryption
l Running a backup from the command line
l Restoring a project
Backing up a project
The CitectSCADA Backup program archives files using a standard compression routine,
producing PKZip® v2.04g compatible files. The default extension for CitectSCADA
backup files is .CTZ, though any extension (including .ZIP) can be used. This means you
can also use the PKZip utility to extract files from a compressed CitectSCADA backup.
Note: Files produced with this backup program cannot be restored by product ver-
sions earlier than 5.10.
To back up a project:
2. Click the Backup button, or select Tools | Backup. The Backup Project dialog
box displays:
3. In the Name field, select the name of the project to back up.
4. In the Backup file field, enter the path to the backup file location, including the file
name. You can either type the path in directly or use the Browse button.
The backup file name defaults to <project>.CTZ. If the extension is omitted then .CTZ
is used.
When you back up a project to a floppy disk, the backup program will ask you if you
wish to delete the files on the floppy disk before starting the backup.
If the destination drive is configured as A: or B: and is detected as removable, you
will have the option to delete any existing files on the disk.
5. Under Options, select the necessary options from the following list:
l Use compression: You can use data compression when you are backing up a
project to save space.
156
Chapter: 9 Administering Projects
Note: You can define a non-default INI file for CitectSCADA by passing a parameter
through to the Project Explorer from the Project Explorer Properties dialog box on the
Shortcut tab. See Using an Alternative INI File for further information on how to do
this.
If you run the backup program from the command line, and you specify an INI file as a
parameter, the specified INI file will be backed up instead of Citect.ini.
See Also
Configuring a backup with password encryption
157
Chapter: 9 Administering Projects
1. Select the "Use encryption" option on the Backup Project dialog box.
2. Click OK. The Backup/Restore-Encryption dialog displays:
3. In the Enter Password field, enter your password. Asterisks will display in place of
the characters.
4. In the Re-Enter Password field, re-enter your password. CitectSCADA checks that
you have typed the same password both times.
5. Click OK. The project will be backed up.
See Also
Running a backup from the command line
Option Description
- database name
d<name>
158
Chapter: 9 Administering Projects
-f<level> format level, 0 only format if necessary, 2 always format disk. [obsolete
since version 3.xx, 4.xx]
Examples
l To back up (in version 3) c:\data use the following command:
CTBACK32 -g -rc:\data
159
Chapter: 9 Administering Projects
[BACKUP]
Database= ! database to backup or restore
BackupPath= ! file to backup to, for example c:\temp\example.ctz.
Restoring a project
You can restore backed up and archived projects using the Restore Project program. This
program allows you to overwrite any current project with a backed up version, or restore
a backed up project as a new project.
Note: Be careful when restoring files as every file in the destination and sub-direc-
tories will be deleted before restoring. If you accidentally set your restore path to the
root directory of the drive, the program will delete your entire disk drive.
160
Chapter: 9 Administering Projects
CAUTION
HARD DISK DRIVE ERASURE
Do not set the Restore Project path to the root directory of your drive (usually c:\).
To restore a project:
or select Tools | Restore. The Restore Project dialog box will display.
3. In the Backup file field, enter the name of the project to restore.
4. Under To, select `Current project', to overwrite a project with the backed up one, or
`New project' to restore a backed up project as a new one.
5. In the Name field, enter a name for the restored project.
6. In the Location field, enter the location of the project to restore, including the file
name. You can either type in the path directly, or use the Browse button.
7. Under Options, select `Configuration files' to restore backed up INI files, and the
TimeSyncConfig.xml file used to store the time synchronization settings configured in
the Time Synchronization utility.
8. If you backed up the sub-directories under the project, the directories will be listed
under `Select sub-directories to restore'. You can choose to restore every or no sub-
directories, or you can select specific sub-directories to restore.
9. Click OK.
See Also
Archiving projects
Including projects
With large systems, it might be more convenient to develop the application using a
series of smaller projects, instead of one large project. For example, you could use a sep-
arate project for each section of the plant, or for each main process. This way, you can
develop and test each of the smaller projects before including them in the main project.
CitectSCADA projects will not be included into the compile of any other project unless
they have specifically been included into that project from within the Citect Project
Editor.
161
Chapter: 9 Administering Projects
Note: If a project exists remotely on the same network as the local installation and it
is on a shared or network drive, it can be linked to the local Citect Explorer. This is
different to including a project. Linking makes a project visible in the local Citect
Explorer. Once linked, it can be selected as the current project for editing over the net-
work.
Any linked project (visible in Citect Explorer) can be included within a local project, and
is subsequently included in the compile of the local Project.
Be careful not to confuse include files with included projects:
l Include Files contain CitectSCADA commands and/or expressions and are used as
substitutions in a CitectSCADA command or expression property field.
l Included Projects are separate and (usually smaller) projects that can be included in
another CitectSCADA project so that they appear together as one project.
Each CitectSCADA system is supplied with a number of include projects. These projects
contains pre-defined database records.
Recommended implementation structures
There are many ways of implementing included projects. However, there are a few pre-
ferred rules for locating projects so that servers and clients function correctly on deploy-
ment. These are listed in the table below:
Deployment
162
Chapter: 9 Administering Projects
Deployment
* For these implementations, the client/server machine needs to already have project con-
tents at the c:\user\Include location and the implementations won't work with the
RUN/COPY features.
Note: Do not define circular references. That is, if project A includes project B, do not
include project A in project B. This will exit without completing at compile time with
a "Cannot open file" error. Instead, create another project and include both A and B
into this.
See Also
Included Projects dialog
CitectSCADA's included projects
163
Chapter: 9 Administering Projects
Note: Each system automatically has an include project, which contains predefined
database records and graphics libraries.
Project Name
The name of the project to include in this project (64 characters maximum).
Comment
Any useful comment (48 characters maximum).
Included projects
Each CitectSCADA installation is supplied with three predefined include projects,
designed to help you develop your project faster. They are:
l the Include project - a template project with trending and alarm pages.
l the CSV_Include project - a Windows XP-styled set of templates with common tool-
bars and advanced visualization tools.
l the CSV_Instant Trend project - created to support the CSV_Include project's instant
trending feature.
These projects contain pre-defined database records and graphics libraries that can be
used as the foundation for the content within your own project.
Note: Do not modify the include project for use as a runtime project. It will not com-
pile successfully, and be set aside for use as a template for new projects. Citect-
SCADA upgrades install a new version of the CSV_Include project, which will
overwrite any changes you make to the project when this happens.
The include projects are hidden from the project tree in Citect Explorer by default.
To show/hide a CitectSCADA Include project:
164
Chapter: 9 Administering Projects
Note: If you disable this option, you will lose data if you change a database record
165
Chapter: 9 Administering Projects
166
Chapter: 9 Administering Projects
The delay (in seconds) from the beginning of a database search until a search infor-
mation window displays. The search information window displays the number of the
traced records and allows you to cancel the search. You can cancel the search by select-
ing the Cancel button in the information window.
Cicode Editor
The text editor that is used for editing Cicode function libraries and report format files.
You need to enter the name of the executable file in this field. The default editor is the
Cicode Editor (ctcicode.exe) supplied with CitectSCADA.
Report Editor
The editor that is used for editing Report Format Files. You need to enter the name of the
executable file in this field. The default editor is Write (write.exe). If you are using Rich
Text Format (RTF) reports, verify that your editor is RTF capable.
Print page size
The number of lines (1 to 66) printed on each page when printing database records.
Print font point
The font size used when printing database records.
Print font name
The name of the font used when printing database records.
Maximum list box items
The maximum number of records that are displayed in drop-down combo boxes.
Warn about unused tags during full compile
Enables the generation of alert entries for unused tags that are not used directly in a
project. The alert entries are included in the Project Editor's Compile Errors form when a
full compile is run. By default this option is not selected.
Note: For this option Alert entries are generated only for a full compile, not an incre-
mental compile.
167
Chapter: 9 Administering Projects
1. Select the location you wish to insert a tag in to such as an expression field in a form.
2. Select Paste Tag from the Edit menu to display the Insert Tag dialog box.
3. Select the tag name, and click OK or click Cancel.
The tag will be inserted in the tag or expression field at the location of the cursor.
Note: If the total length of the function and its parameters is greater than 254 char-
acters, it won't appear in this dialog box. Instead, the message "Text Too Big" is dis-
played.
168
Chapter: 9 Administering Projects
Note: If you leave the Find field empty and click OK, a full list of functions appear in
the list.
1. Select the function name from the list that appears when searching for the function
(see above) and click Edit or click Cancel.
The file containing the selected function will be opened in the Cicode Editor.
169
Chapter: 9 Administering Projects
l From the Project Editor or Graphics Builder, click Edit | Find or Edit | Replace. The
dialog box appears with either the Find tab or Replace tab selected, depending on
which command you selected.
To search text:
1. On the Edit menu in the Project Editor or Graphics Builder, click Find.
2. In the Find box, type the text string you want to search for. The search is not case-sen-
sitive, so it doesn't matter whether you enter lower- or uppercase letters.
You can enter an entire string or a portion of the string you want to find. For exam-
ple, typing BIT will return any string containing BIT, such as BIT_1, BITE, HABIT,
HABITS, and so on. You cannot enter wildcard characters, but you can include spe-
cial characters, as well as spaces if you want.
3. Specify your search coverage using the Look in and Search options lists.
4. Click Find. Search results appear in the results list when the search completes. The
status text under the results list indicates the progress of the search.
Note: When you start a search, the Find button changes to a Stop button you can
use to exit the search. If you stop a search, a partial list of the results is displayed.
To replace text:
1. On the Edit menu in the Project Editor or Graphics Builder, click Replace.
2. In the Find box, type the text you want to search for.
3. In the Replace with box, enter the replacement text.
4. Specify your search coverage.
5. Click Find.
6. View the search results.
7. Make your replacements using Replace or Replace All.
170
Chapter: 9 Administering Projects
Column Description
Project The name of the project in which the found text occurs.
Item Depends on the type of document in which the item occurs. If the document type is a:
Field Identifies that portion of the document/database in which the found item occurs in. For
example, if the found item appears in a database, this refers to the column name in the
database. Be aware that the search covers both expression/command as well as
171
Chapter: 9 Administering Projects
Column Description
numeric properties.
Location Shows the specific record number, AN, or line number on which the found item occurs
within the document/database.
Context An example of the context in which the found item occurs within the project. For exam-
ple, if the document type is a:
If the number of results returned exceeds 200 items, use the First, Previous, Next, and
Last buttons to navigate your results in groups of 200 results.
You can toggle between the Find and Replace functionality without losing the search
results, but if you close the Results page, your search results are lost.
Note: You can resize list columns by moving your mouse cursor onto the separator
between the list columns. When the mouse cursor changes shape to a black bar with
arrows, drag the column to the new size. You can also double-click the vertical bar
between fields to resize that field to fit the widest item.
Removing results
You can remove a search result from the Results window. Results that are removed are
not included in exports or in replacement operations. Removing a result does not delete
it, but merely removes it from the Results window.
To remove a result:
l With the result you want to remove highlighted, click Remove. The result is removed
from the Results window.
Exporting results
You can export search results in a tab-delimited format to a specified location. Results
are exported in the format
172
Chapter: 9 Administering Projects
If the Results window contains more than 200 results, every result is exported, not just
the ones currently displayed. If you remove an item from the results list, it will not be
exported. (For details on removing results, see Removing results.)
If you export an item that has a context, the context string is stripped of tabs and new
line characters.
Results exported are in Unicode format. Because of this, two leading characters and two
trailing characters are added to the file, but in most cases will remain hidden. When
exporting results, use Excel 2000 and later, which support the Unicode format.
To export results:
1. With the search results you want to export listed in the Results window, click Export.
2. Specify the location in the dialog box and then click Save. If the file already exists,
you're given the option to overwrite the file. Status text under the results list indicates
the progress of the export.
Note: If you want to stop the export, click Stop. You cannot perform a partial
export, so clicking Stop cancels the export entirely.
l With the search result you want to jump to highlighted in the Results window, click
Go To. The document or form containing the occurrence opens.
173
Chapter: 9 Administering Projects
See Also
Replacing results
Replacing results
You can replace single results or multiple results with the replacement text string you
specified. You can also test a single result before replacing it. Depending on the type of
document that contains the search result, the following occurs when a replacement is
made:
l Database: The result is replaced with the replacement text and the database record
updated. The form containing the search result is not opened; to see the location of
the search result before or after the replacement is made, use the Go To command.
l Cicode/VBA: The Cicode file containing the matched text loads (if it is not loaded
already), the replacement is made, and the file saved.
l Graphic: The page opens in the Graphics Builder (if it is not already) and the replace-
ment made. If the page is open and contains unsaved changes, you're instructed to
save or discard the changes before making the replacement. If there are multiple
changes to be made to the same graphics page, the page remains open until every
change has been made.
l Report: The found text is replaced with the replacement text and the file is saved.
Note: Replacements cannot be undone once performed. take care to check your
replacements before making them, especially when working with multiple replace-
ments.
To test a result:
1. With the result you want to test highlighted, click Test. A dialog box appears show-
ing the result of the text replace.
2. Click Accept to accept the text replacement, or click Cancel.
To replace a single result:
l With the result you want to replace highlighted, click Replace. The replacement is
made and the result removed from the Results window. The next result in the list is
then selected.
To replace multiple results:
1. With the search results you want to replace listed in the Results window, click
Replace All. A confirmation dialog appears.
174
Chapter: 9 Administering Projects
2. The replacements are made and removed from the Results window. (Replacements
that are not made remain in the results list. This will occur if, for example, you try to
replace a property that is read-only.)
Note: Clicking Stop during this process does not undo any replacements already
made.
When attempting to make a replacement, you might encounter an alert message that
alerts you of project-related issues be aware of before making a replacement. For details,
see Find and Replace alert messages.
File in use
This alert message appears if the database or file that is necessary for writing to has
become unavailable. This may be the case if the database/file is being used by a third-
party application.
Do one of the following:
l Click Try Again (Default) to repeat the operation on the database/file.
l Click Ignore to skip the operation on this file.
l Click Ignore All button to skip any operations on files that are currently in use; this
option causes this message not to reappear.
175
Chapter: 9 Administering Projects
176
Chapter: 9 Administering Projects
In the example below, the Fill Level Maximum allows a range or 0-100, and the value
was 23 and is being replaced with 101, which would be out of range.
Do one of the following:
l Click Ignore to skip this operation, leave the entry in the list, and move on to the
next replacement if one exists.
l Clicking Ignore All acts like the Ignore button, except that it skips out-of-range errors
that occur during this replacement.
l Click Stop to stop the replacement at the current record.
Field is read-only
This alert message appears when replacing an item on the current graphics page when
the field being replaced is part of a linked object like a Genie or template.
In the example below, the Expression field was part of an object that was part of a genie.
177
Chapter: 9 Administering Projects
Undetermined error
This alert message appears when carrying out a replacement on the current graphics
page when a general error is detected, and not happen in normal operation.
Do one of the following:
l Click Ignore to skip this operation, leave the entry in the list, and move on to the
next replacement if it exists.
l Clicking Ignore All acts like the Ignore button, except that it skips any undetermined
errors that occur during this replacement.
l Click Stop to stop the replacement at the current record.
Troubleshooting Searches
If you don't find a result that you expected to find, check the following points, and then
perform your search again:
l Did you spell the text string correctly?
l Did you include the correct number of spaces?
l Are you using the appropriate Look in option?
l Are you using the appropriate Search options?
l Are you searching in the correct project?
l Are you using the correct graphics search?
l If you are using the graphics page search, do you have the correct graphics page
open?
178
Chapter: 10 Securing Projects
CitectSCADA projects represent a considerable investment. Once a commissioned project
has been delivered, it usually needs to remain in the delivered state until modifications
are performed by an authorized person. In order to help protect projects from mod-
ification by unauthorized personnel, CitectSCADA allows projects to be secured by an
administrator as "read-only."
For large applications, or applications where access to certain processes or machinery
needs to be restricted, you can build security into your system. You can then restrict
access to commands that you do not want to be available to evry one of your operators;
for example, commands that operate specialized machinery, acknowledge critical
alarms, or print sensitive reports. There are 2 options available to you to configure secu-
rity for your system.
These options are to use CitectSCADA native security or CitectSCADA integrated with
Windows Security .
This section describes the following:
l Characteristics of read-write and read-only projects (see Overview).
l Scenarios that describe Securing a Top-level Project and Securing an Include Project.
l How to secure projects as read-only (see Making a Project Read-Only).
l The consequences of securing projects (see Read-Only Privileges on Projects).
l Using CitectSCADA native security.
l Using CitectSCADA integrated with Windows security
Overview
CitectSCADA has two types of project:
l Read-write: allows write and delete privileges to the project folder (or for any project
file) for the current user.
l Read-only: projects that deny write and delete privileges to the project folder for the
current user.
The table below shows the different characteristics of read-only and read-write projects:
179
Chapter: 10 Securing Projects
Delete project x
Read-only projects cannot be compiled as top-level projects (i.e., projects that are the
main (root) project as opposed to an included project) and online changes are not sup-
ported.
Note: If the project folder is read-only for the current user, but one or more files in the
project have read-write access for the current user, the project is considered to be a
hybrid read-only/read-write project. CitectSCADA does not support this type of
project. Running a hybrid project may result in your system becoming unresponsive.
(This note does not include those folders or files that require read-write access in
order to operate at runtime; see Using CitectSCADA with Windows Security for
details.)
The security model used in enabling read-only projects does not replace the existing
CitectSCADA user accounts; instead, it works in conjunction with user accounts like this:
Note: Before securing a top-level project, read the section Read-Only Privileges on
Projects for details on operational constraints. Pay particular attention to the section
Read-only on top-level projects.
In this scenario, several onsite engineers are responsible for maintaining a top-level
project, ProjectXYZ. Consequently they require read-write privileges for every project
folder.
180
Chapter: 10 Securing Projects
The operators responsible for monitoring plant operations will use the project at runtime
only; consequently operators only have read-only access to the project.
The system administrator on site first identifies those employees who will use the
project, and then divides this pool of users into two user groups:
l Project Engineers - responsible for project configuration.
l Operators - responsible for the project's runtime operations.
This is shown in the illustration below.
The administrator creates two user groups to make administering users easier: Pro-
jectXYZEngineers and ProjectXYZOperators, and assigns engineers to the first group,
operators to the second.
Note: Creating user groups is optional and makes it easier to handle privileges for
multiple users. Creating user groups may be unnecessary if you only have a few
users.
The administrator then assigns engineers read-write privileges to the top-level project
folder, and operators read-only privileges, like this.
1. Select the project folder of the top-level project and display its properties.
2. Select the ProjectXYZEngineers user group and allow read-write privileges.
(Remember that in order to use read-write projects, read, write, and delete privileges
needs to be assigned.)
181
Chapter: 10 Securing Projects
3. Select the ProjectXYZOperators user group and deny write privileges. See the section
Making a Project Read-Only for the specific privileges assign.
4. Apply and save the changes.
5. Review the changes to verify that engineers and operators have the correct privileges
for their roles.
See Also
Securing an Include Project
Note: Before securing an include project, read the section Read-Only Privileges on
Projects for details on operational constraints. Pay particular attention to the section
Read-only on include projects.
In this situation, an OEM has configured and delivered an include project that is part of
a larger (top-level) project. Because the OEM engineer is solely responsible for main-
taining the include (and only the include) project, the site administrator assigns the OEM
engineer read-write access to the include project, but read-only access to the top-level
project. Conversely, the site's regular engineers can access the top-level project but not
the include project.
This scenario is shown here:
182
Chapter: 10 Securing Projects
Note: Because there is only one OEM engineer, the administrator did not create a
user group for this single user.
2. Selects the project folder of the top-level project and displays its properties.
3. Selects the AcmeTopEngineers user group and allows read-write privileges for this
folder. (Remember that in order to use read-write projects, read, write, and delete priv-
ileges needs to be assigned.)
4. Applies and saves the changes.
5. Selects the include project.
6. Selects the user name of the OEM engineer and allows read-write privileges for this
folder.
7. Applies and saves the changes.
8. Reviews the changes made to verify the correct privileges have been assigned. In par-
ticular, the administrator has to confirm that the privileges assigned to the AcmeT-
opEngineers user group deny read-write access to the include project.
See Also
Securing a Top-level Project
183
Chapter: 10 Securing Projects
1. In Windows Explorer, select the project folder you want to make read-only. By default
project folders are located in the folder
C:\ProgramData\Citect\CitectSCADA 7.10
2. Right-click the folder and choose Properties from the context menu. The Properties
dialog appears.
3. Select the Security tab.
4. Select the user and/or user group you want to modify security settings for.
5. Click Advanced. The Advanced Security Settings dialog appears for the selected
user/user group for the project folder.
Verify that the user or user group you want to modify permissions settings for is
selected.
6. Click Edit to display the Permission Entry dialog box.
7. Click Clear All to clear the current selections and then select the Allow check box for
the following options:
l Traverse Folder/Execute File
l List Folder/Read Data
l Read Attributes
l Read Extended Attributes
l Read Permissions
8. Click OK.
9. Click Apply to apply the permissions to the selected user/user group, and then click
OK to dismiss the Advanced Security Settings dialog.
10. Click OK to close the Properties dialog box.
The project folder has now been specified as read-only for the selected user(s) and/or
user group(s).
See Also
Securing a Top-level Project
Securing an Include Project
Note: Before Making a Project Read-Only, make sure you're familiar with the issues
184
Chapter: 10 Securing Projects
described here. Also make sure that the correct privileges have been set in order for
the configuration and runtime environments to operate; for details, see Using Citect-
SCADA with Windows Security.
l Startup
l General
l Graphics and pages
l Backup and restore
l Project upgrades
l Debugging
l Web deployment
l Runtime issues
Most of the issues discussed above are common to both top-level projects and include
projects. The sections listed below discuss issues specific to these types of projects:
l Read-only on top-level projects
l Read-only on include projects
Startup
A project is determined to be read-only when Citect Explorer starts up. If the security per-
missions on the project folder are modified after Citect Explorer has started, the Citect-
SCADA configuration applications may not be able to determine accurately that the
project is read-only.
See Also
Using CitectSCADA with Windows Security
General
When a read-only project is opened using the Graphics Builder, Project Editor, or Citect
Explorer. the title bar shows the name of the project and a Read-Only message to indi-
cate the project is read-only.
Opening the Express Wizard for a read-only project displays a message on the first page
indicating the project is read-only:
In addition, any menu commands, toolbar buttons, and other operations that perform a
write function are grayed out and/or unavailable. For example, the Copy command is
available in the Project Editor for a read-only project, but the Cut and Paste commands
are not.
185
Chapter: 10 Securing Projects
When using the Process Analyst, you cannot create views to a project folder that is read-
only and an alert message is displayed.
Project upgrades
A project upgrade occurs when any of the following occurs:
l [CtEdit]Upgrade=1 is added to the citect.ini file.
l A project link is added via Citect Explorer.
l When a project is restored.
When CitectSCADA detects that the include, system, or CSV_Include project is read-only
and the version of CitectSCADA that the project was created under does not match the
current version of CitectSCADA, a message box is displayed to advise you of this.
In addition, when CitectSCADA detects that a user project is read-only and the version
of CitectSCADA that the project was created under does not match the current version of
CitectSCADA, a message box is displayed to advise you of this.
Any links to the project will be removed and the project tree in Citect Explorer will be
updated to indicate this.
186
Chapter: 10 Securing Projects
If you plan to upgrade a top-level project, you need to log on as a user with the appro-
priate read-write security privileges for this project, add a link to the project in Citect
Explorer, and then perform the project upgrade again.
Failure to follow these instructions can result in death, serious injury, or equip-
ment damage.
Debugging
In read-only projects you can set breakpoints when debugging code, but these break-
points aren't saved when you exit the Cicode Editor.
Web deployment
You cannot perform Web deployment with read-only projects.
Runtime issues
By default most output operations during runtime occur in the [DATA] or [RUN] location
(see below for details). By default CitectSCADA configures the [RUN] location to the
project directory. If you intend on making the project directory read-only, you need to
modify the path(s) to a suitable read-write location.
l almsav.dat - Alarm data by default is saved in the [RUN] location, which is usually
the project folder. You need to change this location if you intend on making the
project folder read-only. Alternatively use the [Alarm]SavePrimary and [Alarm]Sav-
eSecondary options in the citect.ini file to control the location of the output.
l Disk PLCs - If a user does not have the correct privileges for the [RUN] path, com-
munications will be offline for disk PLCs. You need to change this location if intend-
ing to make the project folder read-only.
l User Cicode functions - Making a project read-only prevents the use of the following
user functions: UserCreate, UserDelete, UserEditForm, UsetrSetPassword, User-
SetPasswordForm. Attempting to use these functions results in an error code 262
(0x0106) ("Cannot open file").
187
Chapter: 10 Securing Projects
l Alarm Cicode functions - Making a project read-only prevents the use of the fol-
lowing alarm functions: AlarmSetDelay, AlarmSetDelayRec, AlarmSetThreshold, Alarm-
SetThresholdRec. Attempting to use these functions results in a hardware alarm 400
(0x0190) ("Project or file is read-only"). You also cannot modify alarm properties such
as threshold or delay.
Any files in your top-level project that require runtime read-write access have to be
located outside of the project folder.
Note: Any files in your top-level project that require runtime read-write access
have to be located outside of the project folder.
l Projects that are read-write that have read-only include projects as a component can
be compiled as usual.
l You can only run a read-only project if it is a top-level project.
l Applying read-only to top-level projects prevents online changes being made to
alarms, users, trends, and pages.
See Also
Making a Project Read-Only
Securing a Top-level Project
188
Chapter: 10 Securing Projects
See Also
Making a Project Read-Only
Securing an Include Project
Note: View-only mode is applied to the whole control client process, including any
Cicode task that is running.
Write only access is available after a user has successfully logged in. Once the user logs
out it returns to view-only mode.
Users can configure login by modifying the [Client]AutoLoginMode parameter.
See Also
189
Chapter: 10 Securing Projects
190
Chapter: 10 Securing Projects
box with the Computer Setup Wizard, so that there will not be an unintentional can-
cellation of system startup.
191
Chapter: 10 Securing Projects
192
Chapter: 11 Using CitectSCADA Security
To set up security in CitectSCADA you need to consider the following:
l Areas - An area is a section of the plant. It can be defined geographically or logically.
l Privileges - Level of access applied to system elements within your project. A user
assigned a role that possesses the matching privilege can control it.
l Roles - A defined set of permissions (privileges and areas) that are assigned to users.
l Users - A person or group of persons that need to access to the runtime system.
Before configuring security within your project you will need to have a thorough under-
standing of these four aspects, and how they work together.
See Also
Areas
Privileges
Roles
Users
Using CitectSCADA integrated with Windows Security
Areas
When implementing CitectSCADA for a large application, you can visualize the plant as
a series of discrete sections or areas. You can define areas geographically (especially
where parts of the plant are separated by vast distances or physical barriers) or logically
(as discrete processes or individual tasks).
Small plants, for example a simple manufacturing plant can be divided into just three
areas - raw product arrives in the receivables area, is transported to an area for proc-
essing, and is then transported to a packaging or despatch area.
193
Chapter: 11 Using CitectSCADA Security
However, with larger or more complex plants you might need to define several areas,
like this:
When defining an area, you would usually encompass a section of the plant that is con-
trolled by one operator (or controlled from one CitectSCADAControl Client).
You can also define smaller areas that are collectively controlled by an operator or Con-
trol Client. This method can increase flexibility, but can introduce a higher level of com-
plexity to your system.
194
Chapter: 11 Using CitectSCADA Security
You can define up to 255 separate areas. You can then refer to these areas by number (1
to 255) or use a label to assign a meaningful name to the area (for example receivables,
pre-process, conveying, etc).
After you have defined your areas, you then configure the system elements (commands,
objects, alarms, reports, etc). your operators will use in those areas. For example:
For example:
Command CONVEYOR = 1;
Area 8
In this example, an operator without access to Area 8 will not be able to send the com-
mand. Refer to Roles for more information on how areas and roles work together.
Note: Any system element that is not assigned to an area between 1 and 255 is auto-
matically placed in a default area known as Area 0. Every user can view the system
elements in Area 0, but without the matching privilege will be unable to control
them.
See Also
Configuring Areas
Privileges
Roles
Users
Privileges
CitectSCADA provides eight privileges, numbered 1 to 8, that are used to restrict access
to parts of the project. To implement privileges into your project:
l Assign a privilege to a particular system element (command, object, report, alarm etc)
l Assign the privilege or privileges to the role or roles that will need to control that sys-
tem element.
You can allocate different privileges to different types of operation, as in the following
example:
195
Chapter: 11 Using CitectSCADA Security
Privilege Command
4 Acknowledge alarms
5 Print reports
To allow a user to operate the conveyors, you assign privilege 1 to the role associated to
that user, for example:
Global Privilege 1
To allow a user to acknowledge alarms, you assign privilege 4 to the role associated to
that user, for example:
Global Privilege 4
To allow a user to acknowledge alarms and operate the conveyors, you assign both priv-
ilege 1 and privilege 4 to the role associated to that user record:
Global Privilege 1, 2, 3, 4, 5
Note: In assigning a role a global privilege, that role is granted view access to every area automatically. Any
user assigned that role will then be able to view every area of the plant.
After you have allocated privileges, you can define the privilege requirements of your
system elements (commands, reports, objects, alarms, etc.):
Com- CONVEYOR = 1;
mand
Privilege 1
196
Chapter: 11 Using CitectSCADA Security
Com- Report("Shift");
mand
Privilege 5
Not every system element needs a privilege classification. At least one command needs
to be issued by users, a command to log in to the system:
Com- LoginForm();
mand
Priv-
ilege
Com- A blank Privilege (or Privilege 0) means that the command has no classification
ment - it is available to every user who performs this role.
See Also
Roles
Users
Roles
When creating a role, consider the tasks the users who are assigned this role will be
expected to perform within the project, and what system elements that user will need to
have access to, or be restricted from. Using the areas and privileges defined previously, a
number of example roles are outlined below.
Note: Area 0 is assigned by default to every role. This means users can view any sys-
tem element in Area 0.
197
Chapter: 11 Using CitectSCADA Security
See Also
Users
Adding Roles
Users
A user can be a Windows or CitectSCADA user. Each user is assigned zero or more roles
depending on the activities and processes they will have to operate and monitor. If zero
roles are allocated to the user, this is the same as configuring the user with no privileges.
Name Role
See Also
Configuring CitectSCADA Security
Adding Roles
198
Chapter: 11 Using CitectSCADA Security
Configuring Areas
When configuring areas within a plant you have the option of labeling areas, grouping
areas and naming the group, and granting users view-only access to particular areas.
l Using labels to name areas
l Using groups of areas
l Viewing areas of the plant
Expression 10
In this case, "DespatchAccum" could be used whenever area 10 is referred to, for exam-
ple:
Command CONVEYOR = 1;
Area DespatchAccum
Note: If you leave the Area field blank on a form, the command does not belong to
199
Chapter: 11 Using CitectSCADA Security
To label an area:
Association 1 DespatchAccum
Association 2 11
Association 3 12
In the above example, areas 10, 11, and 12 are associated with the name "Despatch".
Any command assigned to "Despatch" belongs to areas 10, 11, and 12.
Command CONVEYOR = 1;
Area Despatch
Association 1 Receivals
Association 2 Process
200
Chapter: 11 Using CitectSCADA Security
Association 3 Despatch
In this example, the name "Plantwide" refers to every area defined in the "Receivals",
"Process", and "Despatch" groups.
To define a group of areas:
Groups properties
Use the Groups dialog box to configure properties of groups:
Group Name
The name of the group. You can use this facility, for example, to define multiple areas or
multiple devices. Enter a value of 16 characters or less.
After you have defined a group, it can be used anywhere that an individual entity can
be used. You can also specify complex groups by defining a group of groups.
Association 1 . . . Association 10
A list of the entities associated with the Group Name. Enter a value of 16 characters or
less. An Association can be a number, a name, or another group. You can also specify a
range of numbers in the format <n1..n2> for example:
Association 1 4..10
Association 1 AlarmPrint
Association 2 AlarmLog
Association 3 AlarmDBF
201
Chapter: 11 Using CitectSCADA Security
In this case, when the group name (AlarmInfo) is used as a device, the information is
sent to three devices - AlarmPrint, AlarmLog, and AlarmDBF.
Comment
Any useful comment. Enter a value of 48 characters or less.
Global Privilege
202
Chapter: 11 Using CitectSCADA Security
Alternatively, you could restrict users access to a group of areas (for example, "Recei-
vals") or to a single area (for example, 12).
Adding Roles
Create a role for those people or groups of people you want to use your system. When
creating a role you determine what permissions (privileges and areas) to set for each
based on the tasks the user assigned that role needs to be able to perform within the
project and plant.
To add a Role record:
203
Chapter: 11 Using CitectSCADA Security
As you configure your system, you can assign privileges to the various elements, such
as graphics objects, alarms, accumulators, commands, and so on. For example, a role
with a Global Privilege of 3 will be able to issue any command that is assigned a priv-
ilege of 3, or action any alarm with a privilege of 3, or click any button that is assigned a
privilege of 3, etc. Unless you are using areas, if you do not specify a global privilege, the
role cannot access any command with a privilege assigned.
Note: (For users using windows authentication) When you have completed the fields
in this dialog and if you have not already done so, add the users to the group in Win-
dows security that you want to have the privileges of this role.
See Also
Adding groups and users in Windows security.
Additional fields on this dialog using extended forms (press F2).
Additional Fields
Viewable Areas
The areas the user assigned the associated role is permitted to view. Enter a value of 16
characters or less.
Note: Do not set Viewable Areas in conjunction with Global privileges, as global
privileges give roles view access to areas automatically.
Remember, you need to still assign privileges to the elements in these viewable areas,
such as graphics objects, alarms, accumulators, commands, etc. If you do not, the user
will have full access to them. For example, if you do not assign a privilege to a com-
mand in one of these areas, the user will be able to issue it regardless if you want them
to or not.
To make an element (such as a button on a expression) view only for a particular user,
assign it an expression and a privilege. Add the area to the user's list of Viewable Areas,
but don't give the user the necessary privileges in that area (or the necessary global priv-
ilege).
Multiple areas can be defined using groups.
If you do not specify “Viewable Areas”, the user will have viewable access to area 0. See
Privilege and Area combinations for more information.
Areas for Priv 1 . . . Priv 8
204
Chapter: 11 Using CitectSCADA Security
The privileges (by area) assigned to the user. Enter a value of 16 characters or less. Using
this combination of areas and privileges, you can assign a user different privileges for
different areas. For example, users assigned a role with privilege class 6 in areas 29 and
30 will only have access to commands in those areas that require privilege class 6.
In the privilege field you can separate numbers with commas or you can enter a range
separated by two periods le.g. 1..8
Note: In assigning a privilege to an area, you are making that area viewable to users
assigned that role.
If you do not specify areas with associated privileges, access is defined by Viewable
Areas or Global Privileges only
Entry Command
A Cicode command that is executed when the user assigned this role logs in. You can
use any Cicode command or function. Enter a value of 254 characters or less.
Exit Command
A Cicode command that is executed when the user assigned this role logs out. You can
use any Cicode command or function. Enter a value of 254 characters or less.
Configuring Privileges
When configuring privileges you have the option of changing the default from non-hier-
archical to hierarchical. You may also need to assign privileges to a specific area or mul-
tiple areas and as such need to have an understanding of how certain combinations of
privileges and areas will affect the security of your project.
l Using hierarchical privilege
l Implementing system security
l Privilege and Area combinations
l Using multiple areas and privileges
205
Chapter: 11 Using CitectSCADA Security
Global Privilege 8
Command CONVEYOR = 1;
Privilege 1
Area 8
In this simple example, an operator without privilege 1 in Area 8 will not be able to
issue the command.
See Also
Viewing areas of the plant
206
Chapter: 11 Using CitectSCADA Security
These rules will assist you in understanding how the various privilege and area com-
binations between system elements and roles will affect your security. The table below
outlines numerous scenarios, and the resulting security for a simple on/off button.The
first two columns Area and Privilege refer to the button.
Yes Yes Con- Yes (match- Yes (not Can view the system
veyor ing) matching) element in the rel-
Operator evant area but cannot
operate it as role does
not have the nec-
essary associated
privilege.
207
Chapter: 11 Using CitectSCADA Security
assigned a matching
associated privilege.
See Also
Using multiple areas and privileges
Viewable Areas
In this first example, John Smith has been assigned the role of Despatch Handler. This
role has global privileges 1 and 2. Privilege 3 in the "Despatch" areas (10, 11, and 12),
privilege 4 in the "DespatchAccum" area (10) and privilege 5 in areas 10 and 11. This
means he can:
208
Chapter: 11 Using CitectSCADA Security
Global Privilege
In this second example John Smith has been assigned the role of Despatch Handler. This
role has no global privileges. Viewable areas, (7,8,9). Privilege 3 in the "Despatch" areas
(10, 11, and 12), privilege 4 in the "DespatchAccum" area (10) and privilege 5 in areas 10
and 11. This means he can:
l View areas 7,8,9,10,11,12
l In area 10, control system elements with a privilege level 3, 4 or 5.
l In area 11, control system elements with privilege level 3 or 5.
l In area 12, control system elements with privilege level 3.
l Due to rules 3 and 4, control system elements with privilege level 3,4,5 in Area 0
209
Chapter: 11 Using CitectSCADA Security
See Also
Adding Users
Adding users
For each person you want to have access to your project you need to add their user infor-
mation into the system.
To add a user:
Each operator needs to enter the User Name and Password to use the system.
User Names are restricted to using the same syntax as Tag names. See Tag name syntax.
Full Name
The full name of the user or class of user. Enter a value of 32 characters or less. This
name is used as a comment and for display in alarm logs and command logs.
Password
The user's password. Enter a value of 36 characters or less. When you enter the pass-
word, an asterisk (*) will display for each character entered. When you save the user rec-
ord, the password will be encrypted before it is saved to the Users.dbf.
Each operator needs to enter the User Name and Password to use the system.
Use the [General]PasswordExpiry parameter to specify when the password will expire.
Confirm Password
210
Chapter: 11 Using CitectSCADA Security
Re-enter the user's password to confirm the text entered in the Password field. Enter a
value of 36 characters or less. If the contents of the Password and Confirm Password
fields are different when the record is saved, a message will be displayed that indicates
a mismatch and invites you to try again.
Type
The generic type of user. Enter a value of 16 characters or less. For example:
Type Operator
Type Supervisor
Type Manager
The Type field is used in configuration only to specify a class of user that can then be
used as the basis for creating new users in runtime via the UserCreate() cicode function.
When this function is run it displays a form where you can select the user Type. When
you do this, your new user will inherit the properties of the chosen user class record that
you have already created. In doing this it uses the first user record with a matching Type
value.
In configuration, decide what user classes you need. Each class (or Type) would contain
any specific Global Privilege, Viewable Areas and Areas for Privilige and Entry and Exit
Commands values . Maintain just one user record for each class and then base other
individual users on this. If you create new users in configuration in the usual way by
using Add, Replace technique, then you will get multiple user records with the same
Type field value. Whilst this will not directly cause a problem for indiviual records it
could confuse development or provide scope for inconsistencies and unexpected behav-
iour if other field values are changed. When adding records in configuration, it is there-
fore recommended that you remove duplicate Type values from additional user records.
Roles
Each user is assigned roles. The Roles field will accept zero or more comma-separated
role names. If zero roles are specified for the user, this is the same as configuring the
user with no privileges.
Note: When a Windows or CitectSCADA user who is linked to multiple roles logs
onto runtime the privileges and areas that the user will be assigned are the com-
bined privileges of the linked roles.
Comment
Any useful comment. Enter a value of 48 characters or less.
211
Chapter: 11 Using CitectSCADA Security
Notes:To login a user, you need to use the Login() or LoginForm() Cicode functions.
Note: Online changes arising from user creations and modifications are reflected
only in the local _Users.rdb and Users.dbf files. Perform user administration activities
on a central node so that user records remain synchronized across a distributed net-
work. Other nodes will use the Copy= functionality in CitectSCADA or custom engi-
neered database replication.
See Also
Adding users
212
Chapter: 11 Using CitectSCADA Security
The pre-existing AutoLogin capability has also been extended to include the client, when
the user is a Windows user, having an associated Citect role. In order to invoke this func-
tionality for a Windows user you need to set the [Client]AutoLoginMode parameter in
the Citect.ini file.
A CitectSCADA user will always take priority over a Windows user when logging in at
runtime if the user is also included as a Windows user. However if a valid CitectSCADA
user login does not succeed for some reason, the Windows user credentials will not be
checked and an alert will be generated to advise that the login was not effective.
Conceptual diagram of CitectSCADA security and Windows security
213
Chapter: 11 Using CitectSCADA Security
Domain groups and users are defined or created on the domain server by the domain
administrator. Local groups and users are defined or created on the local computer by
the local administrator. To link a Windows user to a CitectSCADA role the user needs to
be a member of the Windows group and the name of the group has to be same as the
Windows group name specified in the CitectSCADA role.
For information on how to add groups and users to Window security, refer to the Win-
dows documentation appropriate to your operating system.
A Windows user need not be a CitectSCADA user. However if a Windows user is added
to the Windows group that is linked to a CitectSCADA role, then that Windows user will
have the privileges as are assigned to the role.
The Windows administrator can control which Windows user can or cannot login to run-
time by choosing whether to add the user to the linked Windows groups.
See also
Adding Roles
214
Chapter: 11 Using CitectSCADA Security
215
Chapter: 11 Using CitectSCADA Security
216
Chapter: 12 Configuring Your System
Before you run your project you will need to configure each computer in your Citect-
SCADA system. Configuration information is stored on each machine in a Citect.ini file
based on your installation, database configuration and compiled project. Configuration
is done with the Computer Setup Wizard.
The Computer Setup Wizard contains a series of pages allowing configuration of the
computer specific settings including:
l The role the computer has in the system network
l The project being run
l The CPU Configuration
l The CitectSCADA Events enabled for each component
l The Cicode run for each component on startup
l The cluster configuration
l The security settings applied
The wizard uses the configuration stored in the project databases to provide information
to you. Selected options are written to the Citect.ini file.
The wizard needs to be run on each computer in your system to appropriately configure
CitectSCADA for each particular machine. Run after compiling your project and as the
last step before running the system.
See Also
Running the Computer Setup Wizard
217
Chapter: 12 Configuring Your System
l Project Configuration
l Computer Role Configuration
l Network Model
l Server Password Configuration
l Server User Configuration
l Internet Server Configuration
l Alarm Configuration
l Reports Configuration
l Trends Configuration
l CPU Configuration
l Events Configuration
l Startup Functions Configuration
l Cluster Connections Configuration *
l Control Menu Security Configuration *
l Keyboard Security Configuration *
l Miscellaneous Security Configuration *
l General Options Setup *
* Only available in Custom Setup mode.
Each screen of the wizard is described in the sections that follow.
See Also
Project Configuration
Project Configuration
The dialog box for project configuration will vary depending on whether you are con-
figuring a project from a development and configuration environment, or from a runtime
only environment.
Development and configuration environment
Select the project to run on this CitectSCADA computer. The Computer Setup Wizard
will show you the compiled projects defined in the project list, apart from the include
projects.
If there is only one compiled project present, it will be automatically selected. If there are
no compiled projects present, an alert message is displayed and the wizard will ter-
minate. If this occurs, return to Citect Explorer and confirm that the necessary project is
saved locally and has compiled without errors.
218
Chapter: 12 Configuring Your System
See Also
Computer Role Configuration
219
Chapter: 12 Configuring Your System
Note: The Run/Copy mechanism does not transfer custom files such as meta-data,
icons, images or runtime DBF files. Therefore, it is recommended deploying a project
before Run/Copy to help ensure that those files at least exist. You will still need to re-
deploy a project, when you want to update the custom files.
See Also
Computer Role Configuration
Option Description
This computer will be a standalone or networked I/O Server and Control Client.
Server This option is disabled if this computer has no Server components assigned to it
and to run. Selecting this option enables the Multi-Process check box.
Control
Select the Multi-Process check box to separate your client and server com-
Client ponents into individual processes. This option can be used for distributing the
components across multiple CPUs.
If you leave the Multi-Process check box unselected, CitectSCADA will run the
client and server components in one process.
Con- This computer will only be a Control Client. This option is disabled if this com-
trol puter has been assigned a Server component to run. Selecting this option ena-
Client bles the Full License check box.
Select the Full License check box if you want this Control Client to use a full
license. This sets the [Client]FullLicense parameter in the Citect.ini file to 1 (the
default value).
This computer will only be a View-only Client. This read only option is disabled if
View- this computer has been assigned a Server component to run.
only
Client
220
Chapter: 12 Configuring Your System
Some of these options may be disabled depending on what servers have been configured
to run on this computer. The Computer Setup Wizard cross-references your computer's
network identification with the network addresses configured for each server in your
project configuration.
See Also
Network Model
CPU Configuration
Network Model
Select the network model to be applied to this CitectSCADA computer. Options include:
l Stand alone (no other SCADA computers))
l Networked (connect to other SCADA computers)
From Version 7.0 CitectSCADA uses TCP/IP to facilitate communications across a net-
work.
Note: TCP/IP address information for Citect servers is configured within the Citect
project itself. See Network Address Definitions for more information.
When you complete the Computer Setup Wizard, the chosen network model is written to
the [LAN] section in the citect.ini file; for example:
...
[LAN]
TCPIP=1
...
See Also
Internet Server Configuration
221
Chapter: 12 Configuring Your System
Enter the Password, and confirm the password in the fields provided, before clicking
Next.
If a client process exists and networking is enabled:
The Configure check box is unchecked. Select to enable the password fields.
Enter the password and confirm password in the fields provided, before clicking Next
Note: If a server password has already been configured for the machine, the ‘Pass-
word’ and “Confirm Password” fields will be pre-filled.
See Also
Configure Server User
Note: To determine the TCP/IP address of the Internet Server computer, choose
Start | Run. Type CMD and press Enter. Then at the DOS prompt type IPCON-
FIG and press Enter.
222
Chapter: 12 Configuring Your System
Note: that this can only happen automatically if an initial connection has previously
been made to the primary Internet Server.
See Also
Alarm Configuration
DNS Parameters
Alarm Configuration
The Alarm Configuration page will only be displayed if this machine is configured as an
Alarm Server in the Project Editor.
CitectSCADA has several options available for alarm processing. These are set in the
Alarm section of the Citect.ini file. Refer to the Parameters help for information on these
parameters.
Option Description
Alarm Determines the rate at which alarms are scanned and processed. A value of
scan 500 (the default value) indicates that CitectSCADA tries to process the alarms
time every 500 ms. However, if CitectSCADA cannot read the alarm data from the
I/O Device within 500 ms, the alarms are processed at a slower rate. For exam-
ple, if it takes 800 ms to read the alarm data from the I/O Device, CitectSCADA
processes the alarms every 800 ms.
If you select a larger value for the alarm scan time, the alarms server uses less
CPU (because it does not need to process the alarm records as often). The
amount of data read from the I/O Device is also reduced, so that other proc-
esses (Trends, Reports, and the current page) get their I/O Device data more
quickly. You can enter any value from 0 to 60000 (milliseconds).
Alarm The period for saving alarm and event data (to disk). You can save alarm and
save event data periodically so that the data is restored after a planned or
period unplanned system shutdown. The smaller the period, the greater is the load on
the system.
223
Chapter: 12 Configuring Your System
Sum- The maximum number of alarm summary entries that can be held in memory.
mary You can view these alarm summary entries on the alarm summary page. Each
length event requires approximately 300 bytes of memory, including the length of the
comment. 10,000 events require 3 to 4 MB of memory. If you use many events,
have enough memory to keep them in RAM.
Sum- The length of time that alarm summary entries remain in the alarm summary
mary queue.
timeout
Pri- The path to the primary save files. CitectSCADA uses two save files for each
mary alarms server, ALMSAV.DAT and ALMINDEXSAVE.DAT. The save primary path
alarms is the directory where the primary alarms server creates its save files. When
server restoring the files, the most recent (of the primary and secondary) save files
save will be used.
path
alarms
server
save
path
To minimize the chance of conflicts between alarm files used by multiple Alarm Servers
from different clusters running on the same machine, the alarm files have a dynamic
naming convention based on the following format:
<ProjectName>_<ClusterName>_<filename>.DAT
See Also
Reports Configuration
Reports Configuration
The Reports Configuration page will only be displayed if this machine is configured as a
Reports Server in the Project Editor.
Note: For a networked computer to be a Reports Server it needs to also be the I/O
Server or needs to be able to communicate with the I/O Server on the network.
Option Description
224
Chapter: 12 Configuring Your System
Startup Defines the name of the report to run when CitectSCADA starts up.
report
Inhibit trig- For example, you might have a report that is triggered off the rising edge
gered of a bit on startup. The Reports Server notices the bit come on, and runs
reports on the report. If this option is checked, the Reports Server does not run this
startup report until it has read the I/O Devices a second time.
See Also
Trends Configuration
Trends Configuration
The Trends Configuration page will only be displayed if this machine is configured as a
Trends Server in the Project Editor.
Note: For a networked computer to be a Trends Server it needs to also be the I/O
Server or needs to be able to communicate with the I/O Server on the network.
Option Description
Inhibit triggered trends on You might have a trend that is triggered off the rising
startup edge of a bit on startup. If this option is enabled, the
trends server does not display the trend until it has read
the I/O Devices a second time.
See Also
CPU Configuration
CPU Configuration
The CPU Setup page is used to assign client and server components to specific proc-
essors in a multi-processor machine.
225
Chapter: 12 Configuring Your System
This page lists each component's full name, including the cluster to which it belongs, the
priority and the CPU assignment. If the Multi-process option was not selected on the
Computer Role Configuration page there will only be one entry listed, either Client or
Client and Servers. If the Multi-process option was selected, you have the option of select-
ing specific CPUs for the Client, I/O Server, Alarm Server, Trends Server and Reports
Server.
To assign a CPU to a component:
1. Select one or more components from the list (hold the Ctrl key down to select mul-
tiple components).
2. Click Modify.
3. Type the number of the CPU and click OK.
When you complete the Computer Setup Wizard, the CPU assignations are written to
each component section in the Citect.ini file; for example:
...
[Alarm.Cluster1.AlarmServer1]
CPU=1
Clusters=Cluster1
...
[Trend.Cluster1.TrendServer1]
CPU=2
Clusters=Cluster1
...
See Also
Events Configuration
Events Configuration
Events are used to trigger actions, such as a command or set of commands. For example,
an operator can be notified when a process is complete, or a series of instructions can be
executed when a process reaches a certain stage. Select the Enable Events on this com-
puter check box if events are to be enabled on this CitectSCADA computer.
The Events Setup page lists each component's full name, including the cluster to which
it belongs, alongside a list of events that can be enabled for each component. If the
Multi-process option was not selected on the Computer Role Configuration page there
will only be one entry listed, either Client or Client and Servers. If the Multi-process
option was selected, you have the option of enabling events for each component on this
computer.
226
Chapter: 12 Configuring Your System
Note: The Computer Setup Wizard only displays named events from the selected
project. If you are using events in included projects you will need to edit your
Citect.ini file to add these under the [Events] section header.
Note: Events named 'Global' or events with no title will not appear as these are
global events. These events will run on computers that have events enabled. These
events will run in the client process.
...
[Alarm.Cluster1.AlarmServer1]
CPU=1
Clusters=Cluster1
Events=CSV_AlarmClient
...
[Trend.Cluster1.TrendServer1]
CPU=2
Clusters=Cluster1
Events=CSV_TrendXClient,CSV_TrendXServer
...
See Also
Startup Functions Configuration
227
Chapter: 12 Configuring Your System
If the StartupCode parameter value for a process is invalid, the CitectSCADA Runtime
Manager will simply ignore it on start up.
To assign a startup function to a component:
1. Select the component from the list. To select multiple components, hold down the
Ctrl key as you select each item.
2. Click Modify.
3. Type the name of the Cicode function you want to call on startup for that component.
4. Click OK.
When you complete the Computer Setup Wizard, the events are written to each com-
ponent section in the citect.ini file; for example:
...
[Alarm.Cluster1.AlarmServer1]
CPU=1
StartupCode=alarmServerStartup
...
[Trend.Cluster1.TrendServer1]
CPU=2
StartupCode=trendServerStartup
...
See Also
CPU Configuration
Cluster Connections Configuration
228
Chapter: 12 Configuring Your System
1. Select the component from the list. To select multiple components, hold down the
Ctrl key as you select each item.
2. Click Modify.
3. Select the clusters you want the component to connect to on startup.
4. Click OK.
When you complete the Computer Setup Wizard, the clusters are written to each com-
ponent section in the Citect.ini file; for example:
...
[Alarm.Cluster1.AlarmServer1]
CPU=1
Clusters=Sydney
...
[Trend.Cluster1.TrendServer1]
CPU=2
Clusters=Sydney,Tokyo
...
See Also
Implementing Clustering
Option Description
Citect- Allows the operator to use the control menu (top left-hand icon) to access
SCADA the Citect Editor, Project Editor, Graphics Builder, and Cicode Editor from
configuration CitectSCADA at run time. Disabling this provides better security.
envi-
ronment
on menu
FullScreen Allows the operator to set whether pages will be displayed in fullscreen or
restored state. When checked “FullScreen” will set the ini parameter
[Animator]FullScreen to 1. If “FullScreen” is set.
Show title Allows the operator to set whether pages will be displayed in fullscreen mode
bar with the title bar. The [Animator]FullScreen ini parameter is set as follows: 0
if “Fullscreen” is unchecked; 1 if “Fullscreen” is checked and “Show title bar”
is unchecked; 2 if both “Fullscreen” and “Show title bar” are checked.
“Show title bar” cannot be modified if the option“Fullscreen” is unselected.
229
Chapter: 12 Configuring Your System
Shutdown Allows the operator to use the control menu (top-left icon) to shut down
on menu CitectSCADA at runtime. The shutdown is not password- or privilege-pro-
tected. Disabling this provides better security.
Kernel on Allows the operator to use the control menu (top left icon) to display the
menu CitectSCADA Kernel at run time. Disabling this provides better security.
See Also
Keyboard Security Configuration
Note: The ability to disable Alt-Escape, Ctrl-Escape and Alt-Tab is not currently avail-
able.
See Also
Miscellaneous Security Configuration
Option Description
Inhibit screen saver while CitectSCADA is Stops the screen saver from blanking out
running important screens that have to be always
visible. Alternatively the screen saver pass-
word can add additional security features
See Also
General Options Setup
230
Chapter: 12 Configuring Your System
Option Description
Data Directory The directory where the CitectSCADA data files are located. The
data files are the files that are generated at run time: trend files,
disk PLC etc.
Backup project The backup directory that is used if a runtime database cannot be
path located (due to inoperative hardware or a file that has been moved,
corrupted, or deleted).
Startup page The Page Name of the graphics page to display when CitectSCADA
starts up.
Page scan time The delay (in milliseconds) between updating a graphics page and
starting the next communications cycle. The Page Scan Time sets
the default for how often your graphics pages are updated. When a
page is updated, relevant data (variable tags etc. represented on
the graphics page) is scanned to determine if field conditions have
changed. This setting is overridden by the Scan Time value spec-
ified in Page Properties (if applied).
A value of 250 (the default value) indicates that CitectSCADA will try
to update the page every 250 ms. However, if CitectSCADA cannot
read the entire data from the I/O Device within 250 ms, the page is
processed at a slower rate. For example, if it takes 800 ms to read
the data from the relevant I/O Device, CitectSCADA processes the
page every 800 ms.
Under some conditions, you might want to slow the update of your
pages to reduce the load on the I/O Servers. By reducing the page
scan time, you allow more communication bandwidth to other Citect-
SCADA tasks or Clients. For example, you might want fast response
on your main operator computers, while slowing the response time
on manager computers. You can enter any value from 0 to 60000
(milliseconds).
See Also
Finish
Finish
Click Finish to save the setup to the Citect.ini file, Cancel to quit the wizard without
saving, or Back to navigate to a page that requires adjusting.
231
Chapter: 12 Configuring Your System
232
Chapter: 13 Implementing Clustering
Once you have designed the clustering for your system, including the configurations of
servers you need, you can proceed to implement that design. You will need to configure:
l Cluster Definitions
Each cluster needs to be defined by giving it a unique name in the project.
l Network Address Definitions
Each physical server in your system needs to be identified with a unique name and
IP address.
l Alarm Server Definitions
Each Alarm Server needs to be named, and assigned to a cluster and physical server.
Identify each server as Primary or Standby.
l Reports Server Definitions
Each Reports Server needs to be named, and assigned to a cluster and physical
server. Identify each server as Primary or Standby.
l Trends Server Definitions
Each Trends Server needs to be named, and assigned to a cluster and physical
server. Identify each server as Primary or Standby.
l I/O Server Definitions
Each I/O Server needs to be named, and assigned to a cluster and physical server.
Identify each server as Primary or Standby.
See Also
Rules of Clustering
Assigning tags to a cluster at Runtime
Rules of Clustering
When configuring CitectSCADA the following clustering rules apply:
l Each cluster to have a unique name.
l Each server component to have a unique name.
l Each server component needs to belong to one cluster.
l Each cluster can contain only one pair of redundant Alarm Servers. They need to
reside on different machines.
l Each cluster can contain only one pair of redundant Reports Servers. They need to
reside on different machines.
233
Chapter: 13 Implementing Clustering
l Each cluster can contain only one pair of redundant Trends Servers. They need to
reside on different machines.
l Each cluster can contain an unlimited number of I/O Servers.
There are countless variations in how a clustered system can be configured. The most
appropriate configuration will depend on the requirements for the solution to be
deployed and the environment in which it is being deployed. For more information, refer
to Typical system scenarios.
The diagram below is an example of a system running with two clusters across three
machines. Every server and client component have been deployed in accordance with
the clustering rules.
The next diagram demonstrates circumstances which do not correctly follow the clus-
tering rules.
234
Chapter: 13 Implementing Clustering
The CitectSCADA compiler or the CitectSCADA Runtime Manager detects when the
rules of clustering are not being observed and advises the user accordingly.
See Also
About cluster context
Cluster Definitions
See Rules of Clustering for additional information.
To define a cluster:
Option Description
235
Chapter: 13 Implementing Clustering
3. Click the Add button to append a new record, or Replace if you have modified a rec-
ord.
See Also
Network Address Definitions
Option Description
Name The name of the machine at the network address being con-
figured. The name needs to be unique to the project and
not contain spaces.
3. Click the Add button to append a new record, or Replace if you have modified a rec-
ord.
See Also
Alarm Server Definitions
236
Chapter: 13 Implementing Clustering
Note: The Alarm server reuses the Alarm Properties port. As a result alarm prop-
erties are now published for configured alarm servers.
Option Description
Cluster The name of the cluster to which this Alarm Server will
Name belong. If there is only one cluster defined in the
project, you can leave this field blank. The Alarm Server
will default to the defined cluster
Port The port this server will listen on. You can leave this
field blank if you are running only one Alarm Server on
the machine, in which case the default port number will
be used.
237
Chapter: 13 Implementing Clustering
Option Description
3. Click the Add button to append a new record, or Replace if you have modified a rec-
ord.
See Also
Reports Server Definitions
Option Description
Port The port this server will listen on. You can leave this
field blank if you are running only one Reports Server
on the machine, in which case the default port number
will be used.
238
Chapter: 13 Implementing Clustering
Note: Servers listen on legacy ports only if the INI parameter [LAN] Ear-
liestLegacyVersion has been enabled.
Option Description
3. Click the Add button to append a new record, or Replace if you have modified a rec-
ord.
See Also
Trends Server Definitions
Option Description
Cluster The name of the cluster to which this Trends Server will
Name belong. If there is only one cluster defined in the project,
you can leave this field blank. The Trends Server will
default to the defined cluster.
239
Chapter: 13 Implementing Clustering
Option Description
Port The port this server will listen on. You can leave this field
blank if you are running only one Trends Server on the
machine, in which case the default port number will be
used.
Note: Servers listen on legacy ports only if the INI parameter [LAN] Ear-
liestLegacyVersion has been enabled.
Option Description
3. Click the Add button to append a new record, or Replace if you have modified a rec-
ord.
See Also
I/O Server Definitions
Option Description
Cluster The name of the cluster to which this I/O Server will belong. If there is only
Name one cluster defined in the project, you can leave this field blank. The I/O
Server will default to the defined cluster. 16 characters maximum.
240
Chapter: 13 Implementing Clustering
Server The name of the server. The name needs to be unique to the project and
Name any included projects, and not contain spaces. 16 characters maximum.
Network The network address(es) of the server being configured. To specify dual
Addresses network connections to the server, use a comma delimited list. See Net-
work Redundancy. 70 characters maximum.
Port The port this server will listen on. You may leave this blank in which case
the default port number will be used. 16 characters maximum.
Comment Any useful comment. This property is optional and is not used at runtime.
48 characters maximum.
Note: Servers listen on legacy ports only if the INI parameter [LAN]Ea-
rliestLegacyVersion has been enabled.
Option Description
1. Click the Add button to append a new record, or Replace if you have modified a rec-
ord.
241
Chapter: 13 Implementing Clustering
For example, a menu page could be created to launch the mimic page for three identical
production lines, each based on the same page called "ProductionLine".
To achieve this, you would use the PageDisplay function to configure the following but-
tons on your menu page:
Com- PageDisplay("ProductionLine","Cluster_A")
mand
Com- PageDisplay("ProductionLine","Cluster_B")
mand
In each case, PageDisplay would pass the name of the host cluster to the page, depend-
ing on which button is selected. As each production line shares a common architecture,
any tags that do not have a cluster explicitly defined will be assigned to the specified
cluster as the page is opened.
This functionality is supported by the following Cicode functions:
l PageDisplay
l PageGoto
l WinNew
l WinNewAt
You can also use the PageInfo function to determine the cluster context that has been set
for a page.
242
Chapter: 13 Implementing Clustering
This functionality extends to any Cicode that may be called from a graphics page. You
can write Cicode that only specifies variable tag names, allowing the cluster to be
defined by the current context of the page from which it is launched.
If the Cicode is executed by the function TaskNew, you have the option to specify a
cluster by setting the ClusterName parameter.
Note: The cluster context for Cicode cannot be changed once the code is running.
243
Chapter: 13 Implementing Clustering
244
Chapter: 14 Building Redundancy Into Your Sys-
tem
Redundancy in CitectSCADA can be defined at many different levels. When building
redundancy for your system, it is important to consider the degree of protection nec-
essary to meet your requirements, by:
l Defining how important your processes are;
l Determining the overall likelihood of system downtime, and the important processes
and equipment that will take the longest to restore to service;
l Deciding which components you would like to implement redundancy for; and
l Considering design and maintenance consequences of redundancy.
The section covers the following redundancy concepts:
l I/O Server Redundancy
l I/O Device promotion
l Redundancy and Persistence
l Data Path Redundancy
l Network Redundancy
l Alarms, Reports, and Trends Server Redundancy
Note: Using the Computer Setup Wizard will allow you to define the level of redun-
dancy you require by defining the function of each computer (See Running the Com-
puter Setup Wizard).
See Also
Alarms, Reports, and Trends Server Redundancy
How CitectSCADA handles file server redundancy
How CitectSCADA handles FTP server redundancy
Redundancy of Standalone Systems
245
Chapter: 14 Building Redundancy Into Your System
Note: Although both I/O Servers are identical, it is important to recognize that the
standby server is not duplicating the primary server's functions. If it were, the load
on the PLC portion of the network would be double and would significantly reduce
performance. Therefore, only the primary server communicates with the PLCs at any
given time.
246
Chapter: 14 Building Redundancy Into Your System
l When the primary server is brought back online, the system returns control of the I/O
Devices back to the primary server. This is done by copying the disk image from the
standby server to the primary, allowing the clients to reconnect to it, and thereby
resuming control of the system.
When the system is running, you can also use redundant I/O Servers to split the proc-
essing load. This would result in higher performance as every I/O Server would be run-
ning in parallel when servicing the I/O Devices.
See Also
I/O Device promotion
Example
The following diagram shows four I/O Devices connected to two I/O Servers, with just
one primary device configured.
247
Chapter: 14 Building Redundancy Into Your System
If no priorities were set for the standby devices, the compiler would allocate the fol-
lowing:
l I/O Device1 is allocated Priority 1 by default (no compiler alert)
l I/O Device2 is allocated Priority 2 (compiler warning alert)
l I/O Device3 is allocated Priority 3 (compiler warning alert)
l I/O Device4 is allocated Priority 4 (compiler warning alert)
This presumes the devices were configured in numerical order.
If I/O Device3 has been manually set to priority 2, the compiler would allocate the fol-
lowing:
l I/O Device1 is allocated Priority 1 by default (no compiler alert)
l I/O Device2 is allocated Priority 3 (compiler alert generated)
l I/O Device3 is allocated Priority 2 (no alert generated)
l I/O Device4 is allocated Priority 4 (compiler alert generated)
In this case, the setting for I/O Device3 has taken precedence. The remaining standby
devices are set for promotion based on the order they were configured.
Note: The automated priorities work on an n+1 equation; if I/O Device3 has been set
to Priority 5, the remaining devices would have been allocated priority 6 and 7.
See Also
Redundancy and Persistence
Data Path Redundancy
248
Chapter: 14 Building Redundancy Into Your System
The diagram shows that there are two I/O Servers, namely IOServer1 (primary) and
IOServer2 (standby). Each connects to the public switched telephone network (PSTN) via
a modem, which is in turn connects to the I/O Devices, also over a modem. Persistence
Caches work as follows:
1. Every IODevices->Cache Time period, data from an I/O Device is stored temporarily
in the memory of the I/O Server (I/O Server cache).
2. For every [IOServer]SavePeriod, IOServer1 saves its in-memory cache to disk.
3. The cache is saved in Persistence Caches -one for each cached device.
4. IOServer1 broadcasts to other I/O Servers the UNC path of the Persistence Caches (set
with [IOServer]SaveNetwork).
249
Chapter: 14 Building Redundancy Into Your System
5. From these Persistence Caches, IOServer2 updates its in-memory cache for its I/O
Devices.
6. Depending on the value of the I/O Server parameter of `[IOServer]SavePeriod' (deter-
mines how often the Persistence Cache is saved to the hard disk in seconds),
IOServer1 saves its in-memory cache to the hard disk every x amount of seconds.
Note: You can define an I/O Device on an I/O Server using the Express Com-
munications Wizard, or by adding a device in the I/O Devices form in Citect-
SCADA's Project Editor.
You are not limited to just one Standby Server, since the UNC path name set in
[IOServer]SaveNetwork is broadcast to I/O Servers. Each I/O Server updates its cache
from the Persistence Caches only for the I/O Devices defined on that server. It is then pos-
sible, therefore, set up several I/O Servers which update their in-memory caches with the
most recently read data.
For example, we set the [IOServer]SaveFile and [IOServer]SaveNetwork parameters as fol-
lows:
On IOServer1 On IOServer2
[IOServer] [IOServer]
SaveFile=C:\Data\IOServer1.dat SaveFile=C:\Data\IOServer2.dat
Save- Save-
Network=\\IOServer1\Data\IOServer1.dat Network=\\IOServer2\Data\IOServer2.dat
IOServer1 would broadcast the following UNC path of the Persistence Cache to other I/O
Servers: '\\IOServer1\Data\IOServer1.dat'. IOServer2 would then use the Persistence
Caches to update its in-memory cache with the device data most recently read by
IOServer1.
See Also
Data Path Redundancy
250
Chapter: 14 Building Redundancy Into Your System
Most brands of PLCs have the facility to allow you to install a parallel data path from
the I/O Server to the I/O Device.
The diagram above shows that an additional data path (running in parallel) has been
defined. The redundancy is provided as follows:
l When you start your runtime system, CitectSCADA connects to the I/O Device using
the primary data path.
l If communications with the I/O Device is lost at any time (for example if the com-
munications cable is disconnected), CitectSCADA will switch to the standby data
path with minimal or no interruption to the system.
l CitectSCADA reconnects through the primary data path when it is returned in to serv-
ice.
On a larger system (such as one running on a network), you can also use data path
redundancy to maintain device communications with multiple I/O Server redundancy,
as shown in the following diagram.
251
Chapter: 14 Building Redundancy Into Your System
l If communications with either the primary I/O Server or standby I/O Server be dis-
connected, the I/O Device is still accessible.
See Also
Multiple Device Redundancy (Standby Data Paths)
Note: Although I/O Servers are not assigned the Primary or Standby role based on
the I/O devices to which they are connected, it is common practice in redundant I/O
systems to connect the Primary I/O Devices to the Primary I/O Server and the
Standby I/O Devices to the Standby I/O Server. One I/O Server can connect to a mix-
ture of Primary and Standby I/O Devices. The I/O Server can support any number of
Standby Data Paths.
The following diagram demonstrates multiple device redundancy and Standby Data
Paths:
In this scenario, we have three I/O Servers connected to three I/O Devices in the fol-
lowing manner:
252
Chapter: 14 Building Redundancy Into Your System
253
Chapter: 14 Building Redundancy Into Your System
See Also
Alarms, Reports, and Trends Server Redundancy
Network Redundancy
You can use the dual NIC (or multiple network interface) capabilities of each client or
server, enabling you to specify a complete and unique network connection from a client
to a server.
Consider the following diagram:
Network Redundancy
Each of the system components in the cluster are connected to a second network (LAN
2). This is achieved by using the dual end points of each server. This provides con-
nection to two separate LANs to provide for LAN redundancy as follows:
254
Chapter: 14 Building Redundancy Into Your System
l If LAN 1 is suddenly inoperative, each component in the cluster can easily maintain
connection by using LAN 2.
l In turn, if LAN 2 becomes inoperative, LAN 1 remains in operation.
Server Redundancy
For information about server redundancy, see Alarms, Reports and Trends Server Redun-
dancy.
See Also
Configuring network redundancy
255
Chapter: 14 Building Redundancy Into Your System
Connectivity Parameters
256
Chapter: 14 Building Redundancy Into Your System
Two Citect.ini parameters determine how a client will behave if it is unable to establish
or maintain a connection with a primary Alarms, Reports or Trends server. Each server
type has access to these parameters [Type.ClusterName.ServerName]Priority and
[Type.ClusterName.ServerName]DisableConnection, where Type is the relevant server
type (Report, Trend or Alarm). The default setting for these parameters provides behav-
ior as described above, in that a client redirected to a standby server will retain a con-
nection to that server, providing that it is operable, even when the primary server is
restored. This is also the behavior that will occur if you do not add these parameters for
a given server type.
Using the parameters
[Report.ClusterName.ServerName]Priority
[Alarm.ClusterName.ServerName]Priority
[Trend.ClusterName.ServerName]Priority
[Report.ClusterName.ServerName]DisableConnection
[Alarm.ClusterName.ServerName]DisableConnection
[Trend.ClusterName.ServerName]DisableConnection
257
Chapter: 14 Building Redundancy Into Your System
See Also
Alarm Server redundancy
Reports Server redundancy
Trends Server redundancy
File server redundancy
FTP server redundancy
258
Chapter: 14 Building Redundancy Into Your System
Alarm redundancy is designed to allow the user to resolve the arbitration of an alarm
list that is different between redundant alarm server tasks. If a mismatch occurs, the user
is able to select which alarm server task is incomplete and restart that server process.
During the restart, the state of the alarm server task will match the online peer.
See Also
Reports Server Redundancy
259
Chapter: 14 Building Redundancy Into Your System
Note: Only CitectSCADA switches to a backup path. Any other applications that are
using files on the File Server will become inoperative when the File Server becomes
inoperative. This may cause the computer to wait for long periods for the File Server
(or to itself become inoperative). This includes Windows itself, so install Windows
on a local drive.
To enable File Server redundancy, set the [CTEDIT]Backup parameter to a backup data-
base path. For example, if your primary path is F:\CITECT\USER\DB, set the backup
path to another File Server or a local drive, such as C:\CITECT\USER\DB.
You will want to verify that the project in the Backup path is the same as the one in the
Run directory - each time you compile the project in the run directory copy it into the
backup directory.
Before placing your CitectSCADA system into service, confirm that the Standby File Server has
an identical copy of the current project, and that the [CTEDIT]Backup parameter is correctly
set.
Failure to follow these instructions can result in death, serious injury, or equip-
ment damage.
260
Chapter: 14 Building Redundancy Into Your System
See Also
FTP Server Redundancy
[CtEdit]Copy
[CtEdit]Run
Note: Standby FTP Servers need not be Internet Servers. The Standby FTP Server can
be any server using TCP/IP that the IDC can connect to, provided there are IDC
licenses present in the network.
See Also
Redundancy of Standalone Systems
261
Chapter: 14 Building Redundancy Into Your System
262
Chapter: 15 Communicating with I/O Devices
CitectSCADA can communicate with any control or monitoring I/O Device that has a
communication port or data exchange interface, including PLCs (programmable logic
controllers), loop controllers, bar code readers, scientific analyzers, remote terminal units
(RTUs), and distributed control systems (DCS).
Typical CitectSCADA communications consists of four key parts:
1. A CitectSCADA I/O Server;
2. A target I/O Device;
3. A physical means for transporting messages between them (transport);
4. The messages exchanged between them (protocol).
These components work in unison to expose the inputs and outputs of an I/O Device to
a CitectSCADA system.
l Inputs to the I/O Device provide information about your plant, such as the speed of a
machine, status of a conveyor, or the temperature of an oven.
l Outputs from the I/O Device usually initiate tasks that control the operation of your
plant, such as starting electric motors, varying their speed, or switching valves and
indication lamps.
263
Chapter: 15 Communicating with I/O Devices
The transport medium does not need to be a direct cable as shown in the diagram; it can
be any means of carrying the message – such as a high-speed wireless link or an FDDI
network. Similarly, the protocol-specific message could be a simple ASCII message or a
complex object-based message such as DNP 3. Engineers are free to assemble different
combinations of I/O Devices, transports, and protocols.
See Also
The Role of the I/O Server
264
Chapter: 15 Communicating with I/O Devices
You usually don't need to read (or write) to every register in the I/O Device: Citect-
SCADA lets you specify which inputs and outputs you want to monitor or control. After
defining these register addresses, you can use them for system control, operator displays,
trend analysis, data logging and alarm indication.
The choice of I/O Device is typically not open to the person engineering the com-
munications system. In most cases, the I/O Device hardware is purchased in advance of
the integration effort, or it is legacy equipment. However, if you have the luxury of
influencing the choice of I/O Devices, communications capability is recommended to be
one of the factors you consider.
Note: I/O devices such as programmable logic controllers (PLCs) usually have an
internal program that controls the low-level processes within your plant. A PLC pro-
gram continually scans the input registers of the PLC, and sets the output registers to
values determined by the PLC program logic. While CitectSCADA can replace any
PLC program, this is not recommended. PLCs are designed for high-speed response
(typically 1 to 100 ms) and replacing this functionality with CitectSCADA could neg-
atively affect your control system’s performance. Only use CitectSCADA to com-
plement your PLC program (that is, for high level control and system monitoring).
Do not use CitectSCADA or other SCADA software as a replacement for PLC-based control pro-
grams. SCADA software is not designed for direct, high-speed system control.
Failure to follow these instructions can result in death, serious injury, or equip-
ment damage.
See Also
The Role of the Transport Medium
265
Chapter: 15 Communicating with I/O Devices
Note: Modems are treated as a special case in CitectSCADA since they are rec-
ognized as logical devices by Windows. Refer to the specific online help on setting
up modems.
CitectSCADA uses the ‘COMx’ driver to implement simple serial transports. Similarly,
the ‘TCPIP’ driver implements the Ethernet transport. These are commonly used trans-
port drivers, and both have a range of tuneable options and settings. Each proprietary
board has its own specific transport driver – which is typically integrated with the pro-
tocol driver.
See Also
The Role of the Protocol
Working With Device Drivers
266
Chapter: 15 Communicating with I/O Devices
Communication Configuration
CitectSCADA uses a logical and structured communications configuration, that maps
closely to the elements shown in the diagram below.
It requires the engineer to:
1. Define an I/O Server in the I/O Server form;
2. Define the transport type in the Boards form (COMx, TCPIP, PROFI…);
267
Chapter: 15 Communicating with I/O Devices
Note: Each of these steps is simplified in order to illustrate the mapping of necessary
elements to the basic communication architecture. In reality, some other tasks need to
be performed to setup communications.
The following diagram shows how the elements in the configuration environment map
to the software components in the runtime system.
Although this is not essential to know, it does help understand how drivers fit into the
system.
268
Chapter: 15 Communicating with I/O Devices
Note: This example omits many logical runtime components for clarity (such as
clients). In addition, the runtime components shown are not visible to the user at run-
time. However, driver information can be accessed at runtime via the CitectSCADA
Kernel.
269
Chapter: 15 Communicating with I/O Devices
A good place to start when setting up simple communications is with the Express I/O
Device Setup wizard. Once you understand how the setup works, you can manually con-
figure arrangements that are more complex. Much of the functionality of the protocols
and transports can be modified using the driver options and parameters. Each driver
has its own specific section in the online help that will guide you through configuration
options.
See Also
Setting up communications
Working With Device Drivers
Note: Check with Technical Support if new drivers are available that support the
DRI.
The DRI allows a driver to push time-stamped data from field devices into a Citect-
SCADA system. This means time-stamped digital alarms, time-stamped analog alarms
and event-based trends can be updated directly from devices.
No configuration is necessary, as when these drivers start up they scan the system for
time-stamped digital alarms, time-stamped analog alarms and event-based trends. If the
driver receives updated information for any detected tags, it will pass it directly on. Reg-
ular I/O server polling is no longer used.
This mechanism can work in tandem with the tag extension feature (also introduced in
version 7.20) to enable access to field-generated timestamp and quality tag values (see
Tag Extensions).
Note: Prior to version 7.20, time-stamped data was manually pushed into Citect-
SCADA using the Cicode functions AlarmNotifyVarChange and TrnSetTable. If you
are upgrading a project to a version 7.20 system with a driver that uses the new DRI
push mechanism, you will no longer need to use these functions.
270
Chapter: 15 Communicating with I/O Devices
IO Server parameters
Events pushed from a DRI-supported driver can be buffered on an I/O server while an
alarm or trend server is offline. The way this mechanism operates can be configured via
the following parameters:
l [IOServer]EventsQueued
l [IOServer]EventsDropped
l [IOServer]MaxTimeInQueueMs
For more information, see IO Server Parameters.
See Also
Communications Configuration
Working With Device Drivers
Setting Up Communications
Setting up communications between a device and a CitectSCADA I/O Server typically
involves a process that includes the following steps:
1. Choose the Method of Communication
By examining the capabilities of your I/O Devices and control systems networks,
select an appropriate communication mechanism. This mechanism will usually
imply the transport and protocol drivers that needs to be con figured in Citect-
SCADA.
See The Role of the Transport Medium and The Role of the Protocol for more infor-
mation.
2. Prepare the Device
Confirm that your device meets the hardware and software requirements needed to
communicate with CitectSCADA. The Driver Reference Help provides hardware
setup information specific to each supported device.
3. Prepare the I/O Server for Communication
This involves preparing the I/O Server to communicate with a device. This includes
setting up a COM port, a serial board, or a proprietary board in an I/O Server.
4. Create a Test Project
Before configuring your CitectSCADA project, confirm communications between
CitectSCADA and your system devices. Creating a test project allows you to test the
communication path in isolation, and verifies that CitectSCADA can bring your
devices online.
5. Configure communications using the Communications Express Wizard
The Express Communications Wizard provides default values and a setup tailored to
the communications requirements of a selected I/O Device.
271
Chapter: 15 Communicating with I/O Devices
OR
Configure Communications Manually
You can manually configure the communications to your I/O Device using the
Boards, Ports and I/O Devices forms in the CitectSCADA Project Editor. This often
gives more flexibility, but requires a more detailed knowledge of the driver settings
and parameters.
Once you have performed these steps, you are ready to run and verify your com-
munications.
See Also
Customizing a Project Using Citect.ini Parameters
Using a Disk I/O Device
Preparing a Device
You need to verify your system meets the hardware and software requirements needed
to establish communication between a device and CitectSCADA.
This may include a variety of possibilities, including:
l the installation of a proprietary communications card
l the establishment of a device server
l the installation of configuration software, etc.
The Driver Reference Help provides the hardware and software requirements for each
device, and includes any additional information you need to know about setting up spe-
cific devices. To access this help, select Driver Help from the Help menu in Citect
Explorer and Project Editor.
See also
Preparing the I/O Server for communication
272
Chapter: 15 Communicating with I/O Devices
1. Verify that the Boards configuration has COMx as theType, and the Address set to
0. The I/O Port, Interruptand Special Opt can be left blank.
2. Enter the Port Number in the Ports configuration. The COM port number will
usually be either 1 or 2, and is set in the Ports section of the Control Panel. Use the
Special Opt field to modify the behaviour of the COMx driver. (See COMx driver spe-
cial options reference for more information).
Note: You only need to define the COMx board once. You can then add several ports
that use the same CitectSCADA board. For example, a COM port and two serial
boards could be defined as one COMx board in CitectSCADA, with multiple ports.
See Also
Debugging a COMx Driver
Using a Serial Board
273
Chapter: 15 Communicating with I/O Devices
You can use identical I/O Devices or I/O Devices supplied by different manufacturers;
CitectSCADA supports most popular I/O Devices. You can connect any number of I/O
Devices; the only limitation is the size of your computer. High-speed serial boards are
available for RS-232, RS-422, or RS-485 communication.
If you have several I/O Devices from the same manufacturer and these I/O Devices sup-
port multi-drop communication, you can connect them to an RS-422 or RS-485 high-
speed serial board installed in your computer. (The RS-232 standard does not support
multi-drop communication.)
Not every high-speed serial board supports RS-422. You can use an RS-232/RS-422 or
RS-232/RS-485 converter to achieve the same arrangement.
1. Install the board in your computer and set it up under Windows as per the accom-
panying instructions. Use the latest driver from the board manufacturer.
2. Make sure that the boards configuration has COMx as the Type, and the Address set
to 0. The I/O Port, Interrupt, and Special Opt can be left blank.
3. Enter the Port Number in the Ports configuration. The COM port number is usually
greater than 2 and set in the Ports section of the Control Panel. Use the Special
274
Chapter: 15 Communicating with I/O Devices
Options field to modify the behavior of the COMx driver. (See COMx driver special
options reference for more information).
Notes
l If using your computer's COM port, you don't need to install additional software.
l You only need to define the COMx board once. You can then add several ports that
use the same CitectSCADA board. For example, a COM port and two serial boards
could be defined as one COMx board in CitectSCADA, with multiple ports.
See Also
Using Proprietary Boards
275
Chapter: 15 Communicating with I/O Devices
Examples:
~Fred: Wait 500 milliseconds and then send 'Fred'
Fred\MMary: Send 'Fred', a carriage return, and then 'Mary'
Note: This option is not available for dialable devices (i.e. when the port number
is -1).
l -nt: With some serial interfaces, line interruptions can cause the COMx read thread to
shutdown. If this happens, the driver does not recover after the interruption. How-
ever, with the -nt (no terminate) option set, the thread is not shutdown, allowing the
system to recover when the interruption is rectified.
l -nts: If errors occur when the COMx driver is starting up, it will not terminate, but
will continue attempts to open the COMx port.
l -r: Driver will raise DTR only when transmitting.
l -ri: DTR is raised when there is enough room in the input buffer to receive incoming
characters and drop DTR when there is not enough room in the input buffer.
l -rPRE,POST: When transmitting a message the driver will raise DTR for PRE mil-
liseconds, transmit message, wait for POST milliseconds then drop DTR.
l -sc: Activates software flow control using XON and XOFF
XonLim: A number in bytes. This represents the level reached in the input buffer before the XON character is
sent (30 bytes)
. XoffLim: The maximum number of bytes accepted in the input buffer before the XOFF character is sent. This is
calculated by subtracting (in bytes) 100 from the size of the input buffer
276
Chapter: 15 Communicating with I/O Devices
1. Make sure that your Ethernet card is installed correctly and working under Win-
dows.
2. Make sure that the Boards configuration has TCP/IP as the Type, and the Address
set to 0. The I/O Port, Interruptand Special Opt can be left blank.
3. In the Ports form, use the Special Opt field to enter the destination IP address using
the following format:
-Ia -Pn -T
where:
a = the destination IP address in standard Internet dot format. (For example
192.9.2.60)
n = the destination Port number. Often one physical port has several virtual ports,
used for different purposes. Use this option only if you want to override the default of
2222.
T = forces the driver to use TCP (the default), rather than UDP (-U).
(See TCP/IP driver special options reference for more information)
Leave other fields blank. You can now define your I/O Device units.
Note: You only need to define the TCP/IP board once. You can then add several ports
that use the same CitectSCADA board.
See Also
Using a Serial Board
277
Chapter: 15 Communicating with I/O Devices
278
Chapter: 15 Communicating with I/O Devices
Note: With some PLCs, a high-speed serial board provides better performance than a
PLC interface board when the system is connected to more than one PLC.
You can mix both PLC interface boards and high-speed serial boards in a single com-
puter. You can, for example, connect a PLC network to a PLC interface board, and
individual I/O Devices to a high-speed serial board.
There are many possible hardware arrangements for a CitectSCADA application. Citect-
SCADA is a flexible system and imposes few restraints on the type (or manufacturer) of
I/O Devices that you can use, or on the way you connect them to the computer.
To set up CitectSCADA to use a proprietary board/software:
If you are using a proprietary board/software (that is, supplied by the PLC man-
ufacturer):
1. Install the board/software in your computer and set it up under Windows as per the
accompanying instructions. Use the latest driver from the manufacturer.
2. If possible, run diagnostics on the board before configuring CitectSCADA to check
that the board works correctly.
3. Check that the I/O Port and Interrupt settings are correct.
4. Configure the Boards and Ports as instructed by the PLC-specific help.
279
Chapter: 15 Communicating with I/O Devices
The Test Project needs to be as simple as possible. For example, if your system will even-
tually be communicating through a COM port, a KTX card, an SA85 card, and via
TCP/IP do not try and make this work on your first try. Make the Test Project with 1 ele-
ment at a time.
First add and test the COM port. When that works, make a new test project for the KTX
card, then make a new test project for the SA85 card, and finally one for the TCP/IP.
Once you are happy that each individual element works properly, start to add them
together.
While checking that you have only the absolute minimum information in the project to
enable communications, verify that there are no duplicated records.
A good way to do this is to open a form and then check the Record Number shown on
the bottom left of the form. Check that it is on Record 1, and then click the button in the
scroll bar on the right hand side of the form and drag it down. When you get to the bot-
tom of the scroll bar, let the button go. If it pops back up to the top of the form and the
record numbers stays at 1 then you have only 1 record.
It is necessary to drag the scroll bar as the forms are indexed on the I/O Server name.
Quite often there will be 'orphaned' records from a previous I/O Server name still in the
database files. If you find any extra records, delete them and then pack the project. Dupli-
cate or orphaned records in the communications database can negatively impact com-
munications performance.
See Also
Running Your Test Project
280
Chapter: 15 Communicating with I/O Devices
scrolled, and once it is off the screen it is gone. This might require a bit of practice as the
startup procedure might only take 1-2 seconds or less on a fast machine.
Once you have the project running (and assuming that everything worked) the last line
in the Main window in the Kernel will tell you that your I/O Devices are online. Do not
confuse this with the message telling you that your Port channels are online. Citect-
SCADA will first report that it can communicate through the port you have setup, then
report that it can communicate with the I/O Device.
See Also
Note: Each I/O Device/protocol combination requires a unique setup for the boards,
ports, and I/O Devices forms. See the specific Help for each device.
See Also
Express Communications Wizard - introduction
281
Chapter: 15 Communicating with I/O Devices
When you create a new I/O Server, CitectSCADA automatically suggests the name
IOServer1. You can enter a different name if you want. The name you specify needs to
be 16 characters or less and use alphanumeric characters (A-Z, a-z, 0-9). You can also
use the underscore character ( _ ).
Note: If you add a new I/O server, you will need to run the Computer Setup Wizard
on the designated computer before you attempt to run the project. This is necessary
to enable the computer to function as an I/O Server.
See Also
Express Communications Wizard - Device selection
282
Chapter: 15 Communicating with I/O Devices
See Also
Express Communications Wizard - I/O Device communications selection
283
Chapter: 15 Communicating with I/O Devices
See Also
Express Communications Wizard - I/O Device connection schedule
Options Description
Connect I/O Device to Check this box to indicate that the I/O Device is a dial-up
PSTN I/O Device (connected to a PSTN - Public Switched Tel-
ephone Network).
Once you have completed your I/O Device setup using this
Wizard, you need to go to the Ports form and change the
Port number to the actual number of the COM port.
Synchronize at The I/O Server will attempt to communicate with the I/O
Device at this time, and then at intervals as defined below.
This time is merely a marker for CitectSCADA. If you run
up your project after this time, the I/O Server won't wait
until the next day to begin communicating. It will operate
as if your project had been running since before the start
time.
Phone number to dial The telephone number that needs to be dialed to initiate
contact with the I/O Device.
Note: These values can also be set using the I/O Devices form in the Project Editor.
Examples
All based on a Synchronize at time of 10:00:00:
284
Chapter: 15 Communicating with I/O Devices
l If you enter 12:00:00 in the Repeat every field, and start your project at 9 a.m., the I/O
Server will communicate with the I/O Device at 10 a.m., then once every 12 hours
after that, i.e. 10 p.m., then again at 10 a.m. of the following day, etc.
l If you enter 12:00:00 in the Repeat every field, and start your project at 4 p.m., the I/O
Server will communicate with the I/O Server at 10 p.m., then again at 10 a.m. of the
following day, etc. It will assume that communications were established at 10 a.m.,
so it continue as if they had been - communicating once every 12 hours after 10 a.m.
l If you enter 3 days in the Repeat Every, and start your project at 9 a.m. on a Wed-
nesday, the I/O Server will communicate with the I/O Device at 10 a.m., then once
every 3 days after that, i.e. 10 a.m. on the following Saturday, then at 10 a.m. on the
following Tuesday, etc.
l If you enter the 6th of December in the Repeat every, and start your project during
November, the I/O Server will communicate with the I/O Device at 10 a.m. on
December 6, then again on December 6 of the following year, etc.
l Select On Startup for a persistent connection. To disconnect a persistent connection,
you need to call the IODeviceControl() function with type 8.
See Also
Caller ID and commands
Express Communications Wizard - Link to external database
Note: If you are multi-dropping off a single modem, use your I/O Devices to issue the
caller ID, not the modem. This is because using the modem to issue the ID will send
the same ID no matter which I/O Device the call is relevant to, which makes it dif-
ficult to identify the I/O Device that triggered the call.
By using the I/O Device to issue the ID, the I/O Server will receive a unique caller ID for
each I/O Device. However, not every I/O Devices are capable of issuing caller IDs. If you
are multi-dropping, use I/O Devices that can issue caller IDs.
Option Description
285
Chapter: 15 Communicating with I/O Devices
[Event Com- Cicode to be executed once the modem is connected and the I/O
mands] On Device has come online (that is, before any read or write requests are
connect processed).
[Event Com- Cicode to be executed before the connection to the I/O Device is ter-
mands] On minated (and after read and write requests are processed).
disconnect
Note: These values can also be set using the I/O Devices form in the Project Editor.
See Also
Express Communications Wizard - Link to external database
Option Description
Link I/O Device to an Determines whether or not you want to link the I/O
external tag database Device to an external data source. If you link to an exter-
nal data source, CitectSCADA is updated with any
changes made to the external data source when a refresh
is performed.
Database type The format of the data referenced by the external data
source.
External tag database Specify the location of the external database. This could
either be a path and filename of the external data source
for the I/O Device, or the IP address/directory, computer
name, or URL of a data server, etc. (for example
"Work.CSV" or "127.0.0.1", "139.2.4.41\HMI_SCADA"
or "http://www.abicom.com.au/main/scada" or
"\\coms\data\scada").
286
Chapter: 15 Communicating with I/O Devices
Option Description
or
ServerNode=111.2.3.44; Branch=XXX
Add prefix to externally Check this box if you want to insert a prefix in front of the
linked tags names of linked tags in your Variable.DBF.
Tag prefix The prefix that will be inserted in front of the names of
linked tags in your Variable.DBF (for this I/O Device
only). To change the prefix, delete it first, perform a man-
ual refresh, then add the new prefix.
Live Update This field is only available if you have installed one of the
CitectSCADAFastLinx products. It controls whether or not
the linked tags in CitectSCADA and an external tag data-
base will be synchronized if either database is changed.
To enable live linking, choose Yes from the Live Update
menu, and verify that the Automatic refresh check box
is not selected. (Live Update and Automatic Refresh are
mutually exclusive.)
287
Chapter: 15 Communicating with I/O Devices
Option Description
See Also
Express Communications Wizard - Serial device
288
Chapter: 15 Communicating with I/O Devices
unique port name for each and -1 for the port number. You need to also specify the
communication parameters and any special behavior of that port.
4. Complete the I/O Devices Properties. This defines the I/O Device that CitectSCADA is
talking to, by specifying the address. The protocol is also defined at this level.
5. Run the Computer Setup Wizard to complete configuration. This allows you to define
your CitectSCADA computer as the I/O Server defined above. This is usually done
after you compile the project.
6. If using dial-up remote I/O Devices, you need to complete the Modems dialog box.
This defines how CitectSCADA uses a modem to communicate with remote I/O
Devices.
Note: If there is no data to read or write, CitectSCADA will not communicate with an
I/O Device regardless of whether it is defined or not. You need to create a variable
tag and use it before CitectSCADA will do a read request. For example, use an integer
variable to display a number on a page.
Note: You need to add the record to the project database (use the Add Button at the
bottom of the form) or replace the record (use the Replace Button at the bottom of the
form) if you have changed the record.
289
Chapter: 15 Communicating with I/O Devices
Boards Properties
The properties of a board depend on the type of board installed in the I/O Server com-
puter.
Note: The term "Board" is a legacy term from the time when most ports on a com-
puter were provided by additional boards. For example, an Ethernet card. The logical
board concept is still useful even though a physical board may not exist (it may be
software).
Note: If more than one board is installed in the same computer, use a different mem-
ory address for each board.
I/O Port
The I/O port address of the Board. 8 characters maximum.
You need to specify the address to match the switch settings on the board when it was
installed in your computer.
Note: If you are using your computer's COM port not enter the port address here.
specify the port number in the Ports form.
Interrupt
290
Chapter: 15 Communicating with I/O Devices
The interrupt number used by the Board. This is not necessary if using your computer's
COM port.
Special Opt
Any special options supported by the board. 32 characters maximum. Please check the
Hardware Arrangements Help Topic for your specific I/O Device to see if specific options
are necessary.
Comment
Any useful comment. 48 characters maximum.
Ports Properties
The properties of a port depend on the type of board installed in the I/O Server, and on
the I/O Device connected to the port. Ports have the following properties:
Port Name
A name for the port connected to your I/O Device(s). 31 characters maximum. Each port
needs to have a unique name (i.e. you cannot assign the same Port Name to two ports in
your system). You can use any name, for example: Board1_Port1
If you have more than one board in your computer, you can use the port name to iden-
tify the board, for example: Board2_Port1
Port Number
The port number that the I/O Device is connected to. 4 characters maximum. Do not
assign the same Port Number to two ports on a board, unless connecting to a dial-up
remote I/O Device via a modem (see the note below). Ports on different boards can be
assigned the same number.
If you are using your computer's COM port enter the port number here - the port number
is defined in the Ports section of the Windows Control Panel.
Note: If you are connecting to a dial-up remote I/O Device (via a modem), you need
to define a unique port name on the I/O Server for each dial-up remote I/O Device,
and the port number needs to be -1 for each.
Board Name
The name you used for the board. 16 characters maximum. This is necessary to link the
port to the board. For example Server1_Board1
Baud Rate
The baud rate of the communication channel (between the CitectSCADA I/O Server and
the I/O Device). 16 characters maximum.
291
Chapter: 15 Communicating with I/O Devices
Note: The I/O Device hardware and serial board may support other baud rates. If
you do choose an alternative baud rate, verify that both the I/O Device and serial
board support the new baud rate.
Data Bits
The number of data bits used in data transmission. You need to set your I/O Device to
the same value or a communication link cannot be established.
Stop Bits
The number of stop bits used to signify the completion of the communication. You need
to set your I/O Device to the same value.
Parity
The data parity used in data transmission.
Special Opt
Any special options supported by the port. 32 characters maximum. Please check the
Hardware Setup Help Topic for your specific I/O Device to see if specific options are nec-
essary.
Comment
Any useful comment. 48 characters maximum.
1. In the Project Editor, select Communication | I/O Devices. The I/O Devices dialog dis-
plays.
2. In the Name field, type in a name for your I/O Device (PLC). The name needs to be
unique in the CitectSCADA system, unless the I/O Device is defined in other I/O
Servers (to provide redundancy). If redundancy is used, the I/O Device needs to then
have the same I/O Device number and address for each I/O Server. use different I/O
Device names for your primary and standby I/O Devices, otherwise I/O Device
Cicode functions cannot differentiate between them. 31 characters maximum.
3. In the Number field, enter a unique number for the I/O Device (0-16383). 8 characters
maximum. The number needs to be unique in the CitectSCADA system, unless the
I/O Device is defined in other I/O Servers (to provide redundancy). If redundancy is
used, the I/O Device needs to then have the same I/O Device number and address for
292
Chapter: 15 Communicating with I/O Devices
each I/O Server. You may use the same device name, but if you want to use I/O
Device Cicode functions, it is easier to have different I/O Device names.
Note: For Numbers, Protocol and Port Type - The same network number is used
for redundancy (as stated above), however this implies that the Protocol is
usually the same (though there maybe some special circumstances where devices
support multiple protocols) and the Port modes are similar. i.e. a real world port
reference, DISKDRV or MEMORY . If DISKDRV is being used, then redundant
units (i.e. the same NUMBER) needs to be DISKDRV. This also applies for MEM-
ORY mode.
4. In the Address field, enter the address of the I/O Device. 64 characters maximum.
What you enter in this field is determined by the type of I/O Device (and protocol)
used, as each has a different addressing strategy.
5. In the Protocol field, select the protocol you are using to communicate to the I/O
Device. 16 characters maximum. Many I/O Devices support multiple protocols,
dependent on the communication method chosen.
6. In the Port Name field, specify the port on the board to which the I/O Device is con-
nected. 31 characters maximum. This is necessary to link the I/O Device to the port.
For example Board1_Port1.
Note: There is a limit of 255 COMx ports on a server. To avoid this limitation
restricting your number of remote I/O Devices, you can connect multiple remote
I/O Devices to the same port as long as communication details (Telephone
number, baud rate, data bits, stop bits, and parity) are identical.
7. In the Startup mode field select the type of I/O Device redundancy:
Standby This channel will remain unused until the I/O Device
configured with the primary channel becomes inoper-
ative.
Stand- This channel will remain unused until the I/O Device
byWrite configured with the primary channel becomes inoper-
ative. Write requests sent to the primary channel are
also sent to this