CitectSCADA 7.20 User Guide-2
CitectSCADA 7.20 User Guide-2
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