0% found this document useful (0 votes)
30 views100 pages

CitectSCADA 7.20 User Guide-2

Uploaded by

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

CitectSCADA 7.20 User Guide-2

Uploaded by

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

Chapter: 3 Upgrading to CitectSCADA v7.

20

Configuring Multiple Monitor Support


Multiple monitors are now supported in the core product instead of within a set of tem-
plates. This means you can display an existing project across multiple monitors by
adjusting a set of multi-monitor parameters.
While the standard built-in functions work seamlessly in a multi-monitor environment,
you may need to check whether a custom configuration functions correctly in multiple
windows simultaneously.
See Also
Working with Multiple Monitors
MultiMonitors Parameters

Compile the Project


Once you have configured your project, compile it and verify that there are no errors.
At this stage you may want to reconfigure some of your Cicode to support online
changes. Particularly the AssInfo and TagInfo functions that will be deprecated in future
versions of the software. In most cases they can be replaced with the functions AssIn-
foEx and TagInfoEx.

Run Computer Setup Wizard


Run the Computer Setup Wizard for each computer running the project. At each stage of
the Wizard, configure the appropriate settings for that computer.

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

Upgrading a Project that uses Distributed Servers


If you have implemented clustering in Version 6.x using Distributed Servers, a Global
Include Project, and Cluster Projects, configure your project to use clustering in version
7.0.
The existing structure of the Global Display Project and Cluster Projects can remain the
same (that is, the Global Display Project includes each of the Cluster Projects).
The following points describe a recommended project structure for clustering in version
7.0:
l Include a separate communications project in the Global Display Project. In this
project, it is recommended that you define only the Network Addresses, Clusters, and
Servers.

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.

Dynamic-point count licensing


In CitectSCADA 6.10 or earlier, multiple tags that share the same I/O device address will
be counted as a single I/O point. This is calculated at compilation time and the compiler
will report the number I/O points used in a project and is referred to as the Static Point
Count. Any other tags used in super genies, read/written to via CTAPI, ODBC, DDE,
TagRead() and TagWrite() are counted at runtime and are referred to the Dynamic Point
Count. Thus, the total I/O point count will be equal to Dynamic Count plus Static Count,
which is calculated at runtime.

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.

Configuring a CitectSCADA project


Initially you use CitectSCADA's configuration environment to identify and address the
devices and datasources included in a project by tagging the variables associated with
each.
You can then use templates to design graphics pages that reference these tags, creating
an interface your staff can use to view and control the system.
With these graphics pages, you can:
l use animations to display the operating status and performance of a plant
l provide operators with centralized or local control of production equipment using
keyboard commands and graphical tools
l develop a multi-layered security system that controls user access according to func-
tional groups or geographical areas
l implement historical and millisecond trending of tag data in a graphical format.
A powerful scripting language is also included to enable customized, programmable
functionality.

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:

CitectSCADA Explorer The application used to create and


manage your projects. It displays a
list of projects, and provides direct
access to the components of each.
You can use Explorer to rename,
back up, restore or delete a project.

See Administering Projects

CitectSCADA Project Editor The application used to create and


manage the configuration infor-
mation for your project, including
tags, alarms, system components,
and communications components

See Components of a project

107
Chapter: 5 Tools

CitectSCADA Graphics Builder The application used to design,


create, and edit the graphics com-
ponents of a project, including tem-
plates, graphics objects, symbols,
genies, and Super Genies

See Defining and Drawing Graphics


Pages

Computer Setup Editor A utility for editing configuration


files and generating reports to com-
pare and analyze files

See Computer Setup Editor online


help

Computer Setup Wizard A wizard that allows you to cus-


tomize a computer's setup and
define its role and function

See Running the Computer Setup


Wizard

Runtime Tools
The following tools enable you to run, monitor, and control projects during runtime:.

CitectSCADA Web Displays a live CitectSCADA project within


Client a web browser

See CitectSCADA Web Client

Internet Display Client A computer used to run a CitectSCADA


project over the Internet from a remote
location.

See Running Your System Over the Inter-


net

Process Analyst An Active X control that allows you to com-


pare and analyze historical and real-time
trend and alarm data during runtime.

See "Configuring the Process Analyst" in


the Process Analyst User Guide

108
Chapter: 5 Tools

CitectSCADA Runtime An application used to manage and control


Manager the CPU configuration of the project, and
the running state of each component

See "Launching Runtime Manager" in the


Runtime Manager online help

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:

Pages The basis for the screen layouts

See Defining and Drawing Graphics Pages

Tem- A collection of page layouts used to standardize display screens


plates

111
Chapter: 6 Components of a project

See Using Page Templates

Symbols Graphics objects stored in a library for reuse

See Using symbols

Genies Objects that group multiple graphical and functional elements for
easy duplication

See Understanding Genies

Super Genies that can pass device-specific information at runtime.


Genies
See Using Super Genies

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:

Variable used to label register addresses


tags
See Tagging Process Variables

Trend used to label tags for data trending


tags
See Trending Data

SPC tags used to label tags according to Statistical Process Control prin-
ciples

See SPC Tags

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

See Digital Alarms

Analog

See Analog Alarms

Time-stamped

See Time-stamped Alarms

Advanced

See Advanced Alarms

Multi-Digital

See Multi-digital Alarms

Time-stamped Digital

See Time-stamped Digital Alarms

Time-stamped Analog

See Time-stamped Analog Alarms

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:

Keyboard A meaningful name assigned to a keyboard key


key
See Keyboard Keys

113
Chapter: 6 Components of a project

Keyboard Key sequences with associated instructions


commands
See System Keyboard Commands

Reports Customized presentation of runtime data and special conditions

See Reporting Information

Events Commands that execute in response to specific runtime


triggers, such as a Cicode expression or variable tag. When the
event trigger is true, the command will execute

See Configuring Events

Accumu- Variable tags tracking continuous runtime data. Data can be


lators monitored and displayed by animating or trending the variable
tags

See Using Accumulators

Devices Components that can transfer high-level data to other com-


ponents such as RTF files, ASCII files, and printers

See Configuring Devices

Users User profiles to restrict and grant access to the runtime system

See Adding User Records

Groups Groups of system areas used to simplify the management of


user profiles

See Defining Areas

Label System-wide substitutions for commonly used commands and


expressions

See Using Labels

Fonts Fonts for displaying alarms and objects

See Using System Fonts

Param- Built-in operating settings for fine tuning the runtime system
eters
See "Citect.ini File Parameters" in the CitectSCADA Technical Ref-
erence

Included Predefined projects with database records automatically


projects included in user projects

114
Chapter: 6 Components of a project

See Including projects

Communications components
The communications components of a project are the configured representation of the
communications hardware in your system. They include:

Board Hardware enabling various types of communication with I/O


Devices

See Boards Properties

Port The physical connection between the board and the I/O Device

See Ports Properties

Modem Hardware used to connect CitectSCADA to a dial-up remote I/O


Device.

See To set up a modem in CitectSCADA:

I/O An item of equipment that communicates with plant-floor con-


Devices trol or monitoring equipment

See I/O Devices Properties

I/O Device The unique address of an I/O Device CitectSCADA is com-


address municating with

I/O Server components


The server components of a project are the configured representation of the server com-
puters in your system. They include:

Cluster Logical groups of servers running across several physical


machines

See Implementing Clustering

Network The IP addresses or machine names of the primary and standby


addresses servers

See Network Address Definitions

115
Chapter: 6 Components of a project

Alarms Servers that monitor alarms and display them on the appro-
servers priate client(s)

Reports Servers that control the processing of reports


servers

Trends Servers that control the accumulation and logging of trend infor-
Servers mation

I/O Servers Dedicated communications servers that exchange data between


I/O Devices and clients

Cicode / CitectVBA
CitectSCADA offers two programming languages with which you can control and
manipulate CitectSCADA components:

Cicode A structured programming language designed for use in Citect-


SCADA to monitor and control equipment.

See Introducing Cicode.

A Visual Basic for Applications (VBA) and VBScript-compatible


CitectVBA Basic scripting language.

See Introducing CitectVBA.

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.

Distributed I/O system


This scenario demonstrates a method of connecting CitectSCADA to a number of devices
that are distributed across several sites over a wide geographical area.
Instead of attempting to connect devices directly via a remote connection, an I/O Server
is placed at each site, enabling communication to be managed within the system.

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

Redundant server system


The ability to define primary and standby servers within a project allows hardware
redundancy to be built into your system infrastructure. This helps prevent situations
where an error on one server results in the overall system becoming inoperative. Sys-
tems of this type are especially beneficial when service continuity and/or secure data col-
lection are important.

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

Clustered control system


In this scenario, the system is organized into discrete sites being controlled by local oper-
ators, and supported by local redundant servers. At the same time, there is a level of
management that requires sites across the system to be monitored simultaneously from a
central control room.

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.

Redundant and distributed control system


In this scenario, a project represents a number of locally operated sites each containing
its own set of servers and clients. For example, a number of pumping stations across a
water distribution system, or multiple production lines in a manufacturing facility. How-
ever, there is a requirement for monitoring to continue in the event the system at one of
the sites becomes inoperative.
This is achieved by distributing the primary and standby servers across the different
sites, or by placing the standby servers in a central location.
Clustering is used to define the role of the different servers at each site, which can be
viewed in a common project running on every client. This means Site A can be mon-
itored from Site B, and vice versa, if a system becomes inoperative at one of the sites.

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

Load sharing system


Load sharing of system components across different computers and CPUs means the
work load of a potentially stressed system can be split across multiple machines, better
utilizing the available infrastructure.
For example, managing alarms can draw heavily on a CPU's performance, while trend-
ing data can use a lot of disk space. By assigning your Trends and Alarm Servers to dif-
ferent processes on a shared computer, an Alarm Server can be used as a standby
Trends Server, making practical use of idle disk space.
This approach can used to improve network performance, data access times, and gen-
eral system stability.
If you introduce clustering, you have the flexibility to run multiple servers of the same
type on a single computer. As long as a client has access to every cluster configured in a
project, it doesn't matter if a set of servers is distributed across a number of clusters.
In the diagram below, two servers have been configured to act as standby units for each
other, supporting two sets of redundant Trends and Alarm Servers.

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

This section contains information on using CitectSCADA and


describes the following:
Planning a Project
Administering Projects
Securing Projects
Configuring Your System
Implementing Clustering
Building Redundancy Into Your System
Tagging Process Variables
Linking, Importing, and Exporting Tags
Defining and Drawing Graphics Pages
Configuring and Processing Alarms
Configuring Events
Using Accumulators
Logging and Trending Data
Understanding Statistical Process Control
Reporting Information
Using Security
Using Labels
Using Devices
Exchanging Data with Other Applications
Using Genies and Super Genies
Working with Multi-Language Projects
Using OPC Server DA2.0
Communicating with I/O Devices
Using the Communications Express Wizard
Building Your Project

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

The Physical Layout of a Plant


You need to consider the physical layout of the plant where you would like to imple-
ment CitectSCADA.
This information will help determine the architecture of your project, and many of its
operational requirements. It also allows you to assess the available equipment, to deter-
mine if any additions or modifications are necessary.
Consider the following items when examining the physical layout of a plant:

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

Existing computer hardware


The computers that currently exist within your facility to support CitectSCADA's client-
server architecture. The specifications and limitations of the existing equipment will
have to be considered to determine if the operational requirements of your system can be
supported.

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

Some names such as IO_Server, Report_Server, Alarm_Server, Trend_Server, and Client


are reserved for use in the include project. Using one of these names for your server will
result in a compilation error. It is better to use names in your project that are meaningful
to your installation.

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

Genies and Super Genies


Genies are like object templates that you can place on graphics pages to help simplify
the configuration of many similar devices. They group functional and graphical ele-
ments, and present device information using configurable string substitutions as place-
holders for specific tags or expressions. The information is then presented during
runtime.
Super Genies are genies that can be passed device-specific information at runtime. Super
Genies are useful for dynamic controls, like a popup switch that can be used to control
many devices.
See Also
Using Genies and Super Genies

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

About cluster context


Many CitectSCADA items require a cluster to be specified in order for them to work cor-
rectly. This ClusterName can either be explicitly specified when the item is called or dis-
played, or an item can use the default cluster context of the calling process or page. If
your system has only one cluster, then no cluster name needs to be specified. See Cluster
context rules.
Cluster context, therefore, is the default cluster used for tag resolution and execution of
expressions and Cicode functions. In the case of tags, a cluster is explicitly supplied by
prefixing the tag name with the cluster name. For built-in Cicode functions ClusterName
is usually an optional parameter.
Server processes (Alarm, Trend, Report) have their default cluster context set to their
own cluster, so that, for example, Alarm definitions that contain variable tags without
clusters explicitly supplied will attempt to resolve those tags to their own cluster. Cicode
tasks started from server code will inherit the servers cluster unless one is explicitly
given.
Graphics pages have no cluster context by default. A page's cluster can be supplied stat-
ically in the page appearance properties, can be inherited from a previous context, or can
be applied dynamically using an optional parameter in the Cicode function that dis-
played the page. Any Cicode tasks started from a page will inherit the cluster context of
that page.
See Also
Cluster context rules

134
Chapter: 8 Planning a Project

Cluster context rules


1. Single cluster systems always use that cluster and do not require the use of cluster
prefixes.
2. Variable Tags referenced in an Alarms, Reports or Trends Server context are implic-
itly resolved to that cluster unless explicitly stated otherwise using a cluster prefix
such as ClusterName.TagName.
3. Cicode called in an Alarms, Reports or Trends Server context runs with the server's
cluster context as default.
4. Server to Server connections (for example, SPC Alarms) are within the cluster by
default.
5. Client pages can have a cluster context associated with them.
6. Client pages can be configured with a cluster context or inherit the cluster from the
previous (or parent) page.
7. Client pages can have the configured cluster context overridden dynamically at run-
time.
8. Client pages have no default cluster and do not inherit context in multi-cluster sys-
tems by default.
9. The TaskNew Cicode function inherits the caller's (either page or task) cluster context
unless explicitly overridden.
See Also
About cluster context

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

Building Your Project


Once you have determined your project requirements and design, you can begin imple-
menting the design in CitectSCADA.
The following topics will assist you to identify the project components and options that
you need to implement.
Projects
Setting up I/O Device Communication
Graphics components
Alarms
Data Collection
Users and Areas
System Components

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

Setting up I/O Device Communication


CitectSCADA can be configured to communicate with I/O Devices from a number of dif-
ferent vendors. To establish communications with an I/O Device, you will need to per-
form the following steps:
l Install the relevant device driver
l Configure the hardware and software necessary by the device
l Set up a test project to test the communications channel
l Configure a variable tag for each data point on the I/O Device that you want to com-
municate with.
l Configure the device in the project, either manually or using the Communications
Express Wizard.
See Also
Using the Communications Express Wizard
Communicating with I/O Devices
Tagging Process Variables

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

Using Genies and Super Genies


Using Objects
Defining Common Object Properties.
Understanding Object Types

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

Users and Areas


You can design security for your system which incorporates both of the following fea-
tures:
l Users - User accounts allow you to restrict access to your runtime system. Every user
needs to log in to the system with a user name and password to gain access. User
accounts can be set up for individuals or for groups of users.
l Areas - Areas allow you to define geographical or functional boundaries in your sys-
tem.You can then control both the access users have to different parts of the project,
and the tasks they can perform.
See Also
Using Security

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

Setting up Your Computers


Once you have built your project, you need to configure each computer in your system.
The configuration information is stored on each computer in a Citect.ini file. The infor-
mation includes:
l The role the computer has in the Citect network
l The project being run
l The CPU Configuration
l The Citect Events enabled for each component
l The Cicode run for each component on startup
l The cluster configuration
l The security settings applied
The Computer Setup Wizard displays a series of pages where you can configure these
settings. The selected options are written to the Citect.ini file. run the wizard on each
computer as the final step before running your project.
See Also
Running the Computer Setup Wizard

Setting up CitectSCADA as an OPC data source


CitectSCADA OPC Server allows you to access data available in the CitectSCADA run-
time environment (for example from PLCs and databases) through any OPC Client appli-
cation (v1.0 or v2.0).

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

Managing your projects


This section of the help explains how Citect Explorer is used to manage the admin-
istration of your projects. It includes the following topics:
l Creating a project
l Editing the properties of an existing project
l Copying projects
l Printing project details
l Deleting a project
l Linking projects
l Time Synchronization

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:

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.

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

New Project dialog


This dialog box lets you create a new project. To create a new project, enter a value in the
Name field (the other field entries are optional), then click OK.
Once created, project properties can be viewed and edited using the Project Properties
dialog, which contains the items described below.

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):

Screen Type Screen Width (pixels) Screen Height (pixels)

VGA 640 480

SVGA 800 600

XGA 1024 768

145
Chapter: 9 Administering Projects

Screen Type Screen Width (pixels) Screen Height (pixels)

SXGA 1280 1024

WUXGA 1920 1200

User **** ****

[Page defaults] Show template title bar


Determines whether to display the Windows title bar (at the top of each graphics page).
The title bar contains the title of the window, maximize, minimize and close buttons (at
the right hand end of the title bar), and the control menu button (at the left hand end of
the title bar).
To display a page in fullscreen (without a title bar), the size of the page needs to be the
same size as the display (or larger). If the page is smaller than the display, the title bar
still displays, even if fullscreen mode is enabled. Standard templates styles are available
for both page sizes.
[Page defaults] Background color
The background color that will be displayed in newly created graphics pages.

Editing the properties of an existing project


To edit the properties of an existing project:

1. Open Citect Explorer.


2. Select a project from the list.
3. Click the Properties button, or select Project Properties from the File menu.
4. Edit the properties in the Project Properties dialog.
5. Click OK to save your changes, or Cancel to abort.
Properties
Projects have Project General Properties and Project Page Properties.

Project General Properties


(General) Name

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.

Project Page Properties


(Page Defaults) [Template] Resolution
The default screen resolution of the standard graphics pages (such as alarms pages and
standard trend pages):

Screen Type Screen Width (pixels) Screen Height (pixels)

VGA 640 480

SVGA 800 600

XGA 1024 768

SXGA 1280 1024

User **** ****

Note: You can override this default for your own pages at the time when you create
them or any time afterward.

(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.

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.

(Page Defaults) [Template] Show title bar


Determines whether the Windows title bar displays (at the top of each graphics page).
The title bar contains the title of the window, maximize, minimize and close buttons (at
the right hand end of the title bar), and the control menu button (at the left hand end of
the title bar).
To display a page in full screen (without a title bar), the size of the page needs to be the
same size as the display (or larger). If the page is smaller than the display, the title bar
still displays, even if full screen mode is enabled. Standard templates styles are available
for both page sizes.

Note: You can override this default for your own pages at the time when you create
them, or any time afterward.

(Page Defaults) Background color


The color that will display in the background of new graphics pages.

Copying projects
You can copy the contents of one project into an existing or a new project.
To copy a project:

1. Open Citect Explorer.


2. Select the Copy icon, or select Copy Project To from the File menu.
3. In the Copy Project dialog box, select the source project from the drop-down list
under Project name.
4. Select an existing destination project to copy to or select a new project.
5. Click OK to copy the project, or click Cancel.
See Also
Copy Project dialog

Copy Project dialog


This dialog box lets you copy the contents from one project into another. To copy a
project, specify the source [From] and destination [To] projects, then click OK.
[From] Project name

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.

Printing project details


You can print configuration elements (database records, pages, Cicode files, etc.) in the
current project. CitectSCADA prints to the Windows default printer.
To print project database details:

1. Open the Citect Project Editor


2. Select Print from the File menu.
3. Use the Print selection list to choose the elements you want to print.
4. Click OK to start printing, or Cancel to abort.
Before printing your database, print a small portion to test the results. You can change
the default font, font size, and page size by choosing Options from the Tools menu. For
other print options, refer to your Windows documentation.
See Also
Print (project details) dialog

Print (project details) dialog


This dialog box allows you to print the configuration elements (database records,
graphic pages, Cicode files, etc.) in the current project. Click OK to print the selection, or
Cancel to abort printing.
[Print selection]
Lists the elements in the project that can be printed. To select (or deselect) an element for
printing, click the check box; a checkmark indicates it will be printed.
Click Select All to select every item in the list, or Deselect All to clear your selections.
[Options] Graphics pages included in print selection
Specifies a particular page to print. Use the drop-down list to select a single page from
the project. Choose the <All pages> entry to print the pages in the project.
[Options] Group printouts by graphics page
Print the objects database information with the related page. If this option is not set, then
the objects database information is printed as continuous lists, with just a page reference.

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:

1. Open Citect Explorer.


2. Select a project from the list.
3. From the File menu, select Delete Project.
4. A message box asks you if you want to proceed. Click Yes to delete the project, or
click No to cancel.
You cannot delete a project that is currently open or any installed project. You also can-
not delete the Include project that is supplied with CitectSCADA.

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.

Note: It is possible to delete a linked project, even though it might be on a remote


machine over the network. unlink a project rather than delete it 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

UNINTENDED EQUIPMENT OPERATION

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:

1. Open the Citect Explorer.


2. Click the Add Link button, or select Add Project Link from the File menu.
3. Use the Select Project Directory dialog to choose a project location.
4. Click OK to link the project, or click Cancel.
If the new project has the same name as an existing one, you are prompted to change it
before proceeding. Edit the properties in the Project Properties dialog.
To remove a link to a project:

1. Open the Citect Explorer.


2. Select a project from the list.
3. Click the Remove Link button, or select Remove Project Link from the File menu.
4. You are prompted if you want to proceed. Click Yes to remove the link, or No to can-
cel.
See Also
Including projects, Improved Client Side Online Changes

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.

In order to maintain time synchronization CitectSCADAv7.20 now installs a Windows


service called TimeSyncService, which runs under the built-in LocalSystem account. The
purpose of this service is to maintain the time on the local computer against one or more
time sources. A time source is a computer on which the time service is running.
A Time synchronization utility is provided by CitectSCADA to assist you to configure
time synchronization, and control the service as part of your administration envi-
ronment. The dialog stores and reads settings in the TimeSyncConfig.xml file, which is
installed in the CitectSCADA Config directory by default. See New Locations for Con-
figuration and Project Files for information about configuration file locations. Using the
configuration utility, you can specify an alternative path to the config file, such as a net-
work share. This can be useful where you have multiple computers using the same con-
figuration data and to change any setting you only need to change it on one machine.
To display the Time Synchronization dialog, open Citect Explorer and from the Tools
menu select the Time Synchronization menu item.
See Also

Time Synchronization Dialog

Time Synchronization Dialog


The fields available on the Time synchronization dialog are described in the following
table.

Field Description

Current status Displays the status of the TimeSync Windows serv-


ice, as displayed in service properties under com-
puter management. You may click the Start Service
button if the service is stopped, or Stop Service
service if it is running. If the service is identified as
being disabled, the button is also disabled. To ena-
ble the service use the Windows administrative
tools as either automatic or manual startup.

Startup type Identifies if the service is started manually, or auto-


matically. If the service is disabled, use the Win-
dows administrative tools to enable the service as
either automatic or manual startup.

TCP/IP Port The network port the service will use to listen for
connections from clients.

154
Chapter: 9 Administering Projects

Field Description

Last synchronization Displays the value of the LastSyncTime registry set-


ting. This is the Local time at which the last suc-
cessful Synchronization occurred.

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 every Enter a number in hours between 1 and 168 (inclu-


sive) to specify frequency that synchronization
needs to occur. The default value is 24.

Synchronise Now Click to synchronize immediately

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

Add button Displays a dialog for you to enter the name of a


server to add.

Remove Select a computer from the list above, and click


"Remove" to remove it from the list

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:

1. Open Citect Explorer.

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

l Save compiled: By default, CitectSCADA backs up the project in uncompiled


mode. If you select this option, CitectSCADA backs up both the compiled and
uncompiled projects, resulting in a larger backup file.
l Save sub-directories: If you select this option, CitectSCADA also backs up data in
any sub-directories within the project directory. The directory structure is main-
tained in the backup, and you can choose to restore the sub-directories when
restoring the project. For example, if you wish to back up your Process Analyst
Views, save them in a sub-directory of the project and select this option. When
you restore the project, you will have the option to also restore the Process Analyst
Views directory.
l Use encryption: As an added security measure, you can back up your project in
an encrypted format. If you select this option, CitectSCADA requests a password.
CitectSCADA writes the project to disk in a format that encodes the password
along with the protected project. The project can only be restored if the password
is entered.
l Save configuration files: Select this option to back up *.ini files from the Config
folder. This will also backup the TimeSyncConfig.xml file used to store the time
synchronization settings configured in the Time Synchronization utility.
6. Click OK.
See Also
Backing up INI files

Backing up INI files


By default, when you select the 'Save configuration files' option, *.ini files from the Con-
fig folder are backed up.
If you are using a custom INI file (for example 'abc.ini') and it is placed in the Config
folder, it also will be backed up. If you are using a custom INI file that is stored in a sub-
directory of the project select the 'Save sub-directories' option to back it up as well.

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

Configuring a backup with password encryption


When you select the "Use Encryption" backup option, CitectSCADA writes the project to
disk in a format that encodes the password. The project can only be restored when the
password is entered.
To use encryption:

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

Running a backup from the command line


You can execute the CitectSCADA backup program from the command line to back up
and restore files other than CitectSCADA projects.
From version 5, the backup program is called CtBack32.exe. For older versions, it is
called CtBackup.exe. By default, it is installed in the CitectSCADA project 'Bin' folder.
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 PKZip to extract files from a compressed CitectSCADA backup if you prefer.
When you execute a backup from the command line, if you specify an INI file as a
parameter, it will be backed up instead of the default citect.ini file.
The backup program reads the citect.ini file for any parameters set using the [BACKUP]
category. These settings (if any, and their defaults if not) are over-ridden by any values
passed as command line options.
The table below describes the backup command line options.

Option Description

- database name
d<name>

158
Chapter: 9 Administering Projects

-m<ext> include extension

-x<ext> exclude extension

-e encrypt with password

-p<pass- encrypt/decrypt password


word>

-s[+/-] recurse subdirectories

-f<level> format level, 0 only format if necessary, 2 always format disk. [obsolete
since version 3.xx, 4.xx]

-u[+/-] save uncompiled, use -u- to save compiled

-g[+/-] show configure dialog

-c[+/-] compress files

-b<path> path to backup from

-r<path> path to restore to

-i<file- ini file name


name>

-f1 use old file format (truncates long filenames to 8.3)

-a run in auto mode

(Note: Every necessary input needs to be in command line or INI file.)

Examples
l To back up (in version 3) c:\data use the following command:

CTBACKUP -g- -bc:\data

l To restore the above data use (in version 5):

CTBACK32 -g -rc:\data

159
Chapter: 9 Administering Projects

l To backup a CitectSCADA database, for example, to backup demo use:

CTBACK32 -dDEMO -b -u- -c+ -d-

Ctbackup also uses the following parameters in the CITECT.INI file:

[BACKUP]
Database= ! database to backup or restore
BackupPath= ! file to backup to, for example c:\temp\example.ctz.

DrivePath= ! path to backup to or restore from.

FilePath= ! file path, used in not a database


BackupFile= ! file name on backup disk, default CTBACKUP.

Password= ! encryption password


Drive=0/1/2 ! 0=other, 1=A, 2=B
DiskSize=0/1 ! low density=0, high density=1
Encrypt=0/1 ! encrypt backup
FormatLevel= ! format level.

Configure=0/1 ! display configure dialog


Compress=0/1 ! compress backup
Overwrite=0/1 ! overwrite
SaveCompiled=0/1 ! save compiled
Recurse=0/1 ! recurse sub directories
DeleteAll=0/1 ! delete all before restore
SaveIniFiles=0/1! determines whether save ini files is checked
Operation=0/1 ! 0=backup, 1=restore
Include= ! include list
Exclude= ! exclude list, default DBK,_CI
CompiledFiles= ! compiled files, default RDB
FileFormat=0/1 ! 1= use old format (truncates long filenames to 8.3)

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:\).

Failure to follow these instructions can result in equipment damage.

To restore a project:

1. Open Citect Explorer.


2. Click the Restore button

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

Recommendation Development Computer Server / Display Client WebClient

Good c:\user\ProjectMain d:\run\ProjectMain (<-RunPath) \temp\citect\deployname\


ProjectMain

c:\user\ProjectInclude d:\run\ProjectInclude \temp\citect\deployname\


ProjectInclude

c:\user\Include d:\run\Include \temp\citect\deployname\


Include

OK* c:\user\Dev\ProjectMain d:\runA\ProjectMain (<-Run- \temp\citect\deployname\


Path) ProjectMain

c:\user\Dev\ProjectInclude d:\runA\ProjectInclude \temp\citect\deployname\


ProjectInclude

c:\user\Include c:\user\Include* \temp\citect\deployname\


Include

OK* c:\user\Dev\ProjectMain d:\run\ProjectMain (<-RunPath) \temp\citect\deployname\


ProjectMain

162
Chapter: 9 Administering Projects

Deployment

Recommendation Development Computer Server / Display Client WebClient

c:\user\Includes\ProjectInclude c:\user\Includes\ProjectInclude* \temp\citect\deployname\


ProjectInclude

c:\user\Includes\Include c:\user\Includes\Include* \temp\citect\deployname\


Include

* 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.

Including a project in the current project


To include another project (in the current project):

1. Open the Citect Explorer.


2. Select a Project from the list.
3. Select the System icon and then Included Projects.
4. Complete the Included Projects dialog that is displayed.
5. Click Add to append a record you have created, or Replace if you have modified a
record.

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

Included Projects dialog


This dialog box lets you include another project in the current project. With large sys-
tems, develop the application using a series of smaller projects instead of one large
project.
You can include up to 240 projects. (You have to set [CtEdit]DBFiles to 310 in order to
enable this limit.) Every record in each project are globally accessible (i.e., a record
defined in one project can be used in another).

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:

1. Open the Citect Explorer.


2. Select Show Include Project from the View menu.
See Also
Introducing CSV_Include

Working with the Project Editor


The Project Editor is the primary tool used to configure the variable addressing, com-
munications and system components of a project. This section looks at the components
incorporated into the Project Editor to support this process.

164
Chapter: 9 Administering Projects

l Setting the Project Editor options


l Paste Tag dialog box
l Paste Function dialog box
l Find User Function dialog box
l Using Find and Replace in a project

Setting the Project Editor options


The Project Editor offers the option to change the way the project configuration envi-
ronment operates.
To set the Project Editor options:

1. Launch the Project Editor


2. Select Options from the Tools menu.
3. Make the necessary option adjustments.
4. Click OK.
See Also
Project Editor Options dialog

Project Editor Options dialog


This dialog box allows you to adjust the functionality of the Project Editor.
Show deleted
Enables the display of deleted records in the databases. When enabled, a check box at
the bottom of the database form indicates if a record is deleted.
Incremental compile
Enables the incremental compilation of the project.
Extended forms
Enables the display of extended database forms. You can also use the F2 key on the key-
board to display extended forms.
Inform record changed
Enables the "Record has been changed" message window to appear when you add (or
change) data in a database form and then try to close the form - before you add or
replace the record.

Note: If you disable this option, you will lose data if you change a database record

165
Chapter: 9 Administering Projects

and forget to add or replace the record.

Disable user functions search


When you use a combo box to select a function (for a command or expression field), a
list of built-in Cicode functions and user-written functions displays. If you disable user
functions, only the built-in functions are displayed in the list.
Confirm on project packing
Enables the "Packing databases may take a long time" message window to appear when
packing a database.
Auto open error form
Automatically displays the Compile Errors form if an error is detected when the project
is compiled.
Compile enquiry message
Enables the "Do you want to compile?" message window to appear when the project has
been modified and Run is selected from the File menu. Normally, CitectSCADA compiles
the project automatically (if the project has been modified) when Run is selected.
Compile successful message
Enables the "Compilation Successful" message window to appear when the project has
been compiled.
Prompt on tag not exist
Enables the "Variable tag not found. Do you wish to create this tag?" message window to
appear when a variable tag is specified that does not exist in the database. With the mes-
sage window enabled, you can create new variable tags as they are necessary.
Prepare for Web deployment
Automatically runs the Web Deployment Preparation tool every time you compile a
project. Please be aware that this dramatically increases the amount of time taken for
each compile, particularly for large projects.
Log deprecated warnings during compile
If you select this option, the compiler will generate an alert message to identify any dep-
recated elements it detects in a project, that is any functions, parameters, or Kernel com-
mands that are no longer supported.
By unchecking this option, the alert messages are still included in the displayed alert
count, but they are not added to the error log.
Info popup time

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.

Log "tag not defined" warnings during compile


If you select this option, the compiler will generate a `tag not defined' alert in the error
log for any tags detected that are not defined in the variable database.
As CitectSCADAv7.20 now allows you to include undefined tags on your graphic pages,
this alert may be redundant and impractical. By unchecking this option, the alerts are
still included in the displayed count, but they are not added to the error log.

167
Chapter: 9 Administering Projects

Paste Tag dialog box


If you need to insert a variable tag into a tag or expression field, you can use the Paste
Tag dialog box.
To insert a variable tag into a tag or expression field:

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.

Paste Function dialog box


If you need to insert a function into a tag or expression field, you can use the Insert Func-
tion dialog box.
To insert a function into a tag or expression field:
1. Select the location you wish to insert a function in to such as an expression field in a
form.
2. Select Paste Function from the Edit menu to display the Insert Function dialog box.
3. Select the function name, and click OK or click Cancel.
To insert the function with its arguments included, select the Insert arguments box.
The function is inserted in the current 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.

Find User Function dialog box


If you need to locate a Cicode function in your Cicode source files, you can use the Find
User Function dialog box.
To locate a function within a Cicode source file:

1. Select Find User Function from the Edit menu.


2. Enter the function name (or part of the function name) and click OK or click Cancel.
A list of functions that match your search criteria will be displayed.

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.

To edit the Cicode file that contains the function:

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.

Using Find and Replace in a project


You can use the Find and Replace dialog to locate specified text in your projects. You
can perform global text replaces in your projects, as well as export search results.
This is explained in the following topics:
l The Find and Replace dialog
l Specifying search coverage
l Using the results list
l Removing results
l Exporting results
l Jumping to a result (Go To)
l Replacing results
l Find and Replace alert messages
There is also a topic on Troubleshooting Searches to help determine if a search has been
correctly configured when unexpected results are returned.

The Find and Replace dialog


You open the Find and Replace dialog box from either the:
l Project Editor: You can find and replace text strings in your projects and included
projects.
l Graphics Builder: You can find and replace text within a single graphics page, tem-
plate, or Genie (including fields of the Metadata and Associations tabs [except the "In
Use" field]).
You can configure your search coverage, view your results, replace results, or open a
search result for more information.
To display the Find and Replace dialog box:

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.

Specifying search coverage


You specify search coverage using the Look in and Search options lists to determine
which items in your projects you want to search for.
When you choose a Look in option, the Search options change. Each time you select a
Look in option, associated Search conditions are selected by default. The Look in
options work with the Search options as follows.
l Selecting Current Project or Current Project and Include Projects displays the
options described below.

170
Chapter: 9 Administering Projects

l General: Searches configuration databases associated with a project as well as


included projects (if that option is selected).
l Graphics: Performs an "express search" for graphics pages only (the graphics
page does not have to be currently open). This search will not find text in symbols,
Genies, or templates if they have not been used on a page. If you don't find the text you
want, try the more comprehensive graphics search by opening a page, Genie, sym-
bol, or template and selecting Current Graphic as the Look in option (see below).
l Code Files: Searches Cicode/CitectVBA files in the current project (and included
projects, if that option is selected).
l Reports: Searches report files within the project folder and included projects (if
that option is selected).
l Selecting Current Graphic makes available the options described below. (This search
is a more extensive search than that performed by the Current Project:Graphics
search described above, and will search graphics documents that are currently open.)
l Inside Genies and Symbols includes graphics objects contained within a Genie
or symbol.
l Inside Templates includes objects contained within a page template.
l Selecting Current Form: Searches the current form.

Using the results list


As matches are found they are listed the results list. The results list shows an overview
of items that match the string entered in the search.
The results list can display a maximum of 200 results per page, sorted by project and
then item (you cannot change the sort order). The results list contains the following col-
umns:

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:

Database - User-friendly name of the database.

Page - Name of the page.

Cicode/VBA - Name and path of the Cicode/VBA file.

Report - Name of the report.

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:

Database - a search result of BIT* might have a context of BIT_!.

Page - BIT* might have a context of Toggle(BIT_!)

Cicode/VBA - UserName might have a context of FUNCTION GetUserName()

Report - PUMP* might have a context of @(Pump 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

<Project> <Item> <Field> <Location> <Context>

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.

Jumping to a result (Go To)


You can jump to an individual result to see where the result occurs. Depending on the
type of document that contains the search result, the following occurs:
l Database: The form opens in the Project Editor and the text string is highlighted.
l Cicode/VBA: The document opens within the Cicode Editor and the text string is
highlighted.
l Graphic: The page opens in the Graphics Builder and the Properties dialog box
appears for the object that contains the text string. The property containing the text
string is displayed. If the string occurs on or inside a Genie, the Genie form also
appears.
l Report: The configured report editor opens and displays the report file, but the text
string is not highlighted.
To jump to a result:

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.

Find and Replace alert messages


Find and Replace will display one of the following errors if it cannot replace a text
string:
l File in use
l Replaced text truncated
l Original text not found
l Replaced text out of range
l Replacement text not numeric
l Field is read-only
l Undetermined error

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

Replaced text truncated


This alert message appears if performing the text replacement in a DBF field exceeds the
field width limits. For example, if an Engineering Units field containing % is replaced
with "%LONGTEXTSTRING", a "replaced text truncated" alert message appears because
this field has a max width of 8. The replacement text would therefore be "%LONGTEX".
This alert message does not occur if searching the current graphics page.
Do one of the following:
l Click Yes to commit the truncated text to the database. Usually this will generate a
compilation alert message when the project is compiled.
l Click Yes to All to commit every change to fields regardless if truncation exists with-
out displaying the alert again.
l Click No (default) to leave the text as is.
l Click No to All button to leave truncated fields as is.

Original text not found


This alert message appears when attempting to replace an item on the current graphics
page when the animation could not be found or the text could not be found. This would
occur if the animation was deleted, or if the text found in an animation's field was
changed after the find but before replacing the item.
In the example below, the Fill Level Maximum contained a value of 23, and the search
text was 23. Before replacing the record, it was changed to 66.
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 not found
errors that occur during this replacement.
l Click Stop to stop the replacement at the current record.

Replaced text out of range


This alert message appears when carrying out a replacement on the current graphics
page in two different circumstances:
1. The field is text and is too long for the allowable field width.
2. The field is a numeric field, and would be out of the allowable range for a replace-
ment value.

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.

Replacement text not numeric


This alert message will appear when carrying out a replacement on the current graphics
page when the field being replaced is a numeric field, and the replacement text contains
a non-numeric value.
In the example below, the Fill Level Maximum contained a value of `23', and the replace-
ment text was `fred'.
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 non-numeric
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.

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 read-only
errors that occur during this replacement.
l Click Stop to stop the replacement at the current record.

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

Task Read-only Read-write

View existing files in project x x

Create new files in project x

Delete existing files in project x

Modify existing files in project x

Delete project x

Rename project directly 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:

l CitectSCADA user accounts govern runtime security to project elements.


l Windows user accounts govern the security of configuration project elements.

Securing a Top-level Project


This section describes a "real-world" situation that might require read-only privileges to
be applied to a top-level project.

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

Securing an Include Project


This section describes a "real-world" situation that might require read-only privileges to
be applied to 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:

To set up this scenario the administrator does the following:


1. For ease of administration, assigns the site engineers to the user group AcmeT-
opEngineers.

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

Making a Project Read-Only


This section describes how to make a project folder read-only by modifying the file secu-
rity settings for selected users and/or user groups. The read-only project configuration is
identical whether you are using Windows 2003 Server, Windows XP, or Windows 2000.
Notes
l This procedure assumes that you have already configured your users and user
groups (optional), and added them to the User groups for the project folder list for the
project you want to secure. For details on creating users and user groups, refer to your
Windows documentation.
l Before making your project read-only, verify that read, write, delete, and execute priv-
ileges have been applied appropriately to allow the CitectSCADA configuration and
runtime environments to operate correctly. For details, see Using CitectSCADA with
Windows Security.
l If you are using Windows XP or Windows 2000 and your file system is FAT32, you
need to convert the file system to NTFS in order to be able to specify the correct user
privileges on that workstation. For details, refer to your Windows documentation.
l To avoid unexpected results, read Read-Only Privileges on Projects before making
your project read-only.

183
Chapter: 10 Securing Projects

To make a project read-only:

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

Read-Only Privileges on Projects


This section describes the operational constraints of making a project read-only. This sec-
tion also describes issues specific to securing top-level and include projects.

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.

Graphics and pages


You cannot update graphics documents or pages in read-only projects. (You can, how-
ever, update pages in a read-write project if that top-level project includes one or more
read-only projects.)
Opening an updated graphics page in a read-only project in Graphics Builder will
attempt to show the upgraded symbol, but only at the presentation (not disk) level.

Note: Updating graphics documents and/or pages in mid-level include projects is


not recommended because it will not update pages in the top-level project. However,
issuing an update pages at the top level iterates through included projects recur-
sively. (If these need to be updated, make the relevant projects read-write first).

Backup and restore


Read-only projects can be backed up by any user, regardless of their privileges. However,
the backup functionality does not archive the current security permissions. Con-
sequently, if the project is restored on another machine, the security settings need to be
reapplied.
Projects cannot be restored into an existing read-only project; attempting to do so will dis-
play an alert message advising that the project is read-only and cannot be restored.

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.

UNINTENDED EQUIPMENT OPERATION

• Do not leave non-upgraded projects in your project environment.

• If security privileges prevent a successful upgrade of projects related to your system,


restore the system to its prior state before resuming operations.

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.

Read-only on top-level projects


Before applying read-only to top-level projects, note the following:
l Before applying read-only to a top-level project, perform a full compile and then
apply the relevant security attributes. Once you apply read-only privilege, you cannot
compile a top-level project (see following bullet). For projects that needs to manip-
ulate files in the top-level project, you can modify the security of individual files to
read-write; the project will be regarded as read-only as long as the project folder is
denied write privileges.

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

Read-only on include projects


Note the following before applying read-only to include projects:
l When compiling a top-level project with a read-only include project, the object IDs of
the included projects are skipped and not changed.
l Updating graphics documents and/or pages in mid-level include projects is not rec-
ommended because it will not update pages in the top-level project. However, issuing
an update pages at the top level iterates through included projects recursively. (If
these need to be updated, make the relevant projects read-write first).

188
Chapter: 10 Securing Projects

See Also
Making a Project Read-Only
Securing an Include Project

Securing Runtime Computers


The CitectSCADA runtime system is a Windows-based application that runs in the
standard Windows environment. Typically, Windows allows you to run several appli-
cations at the same time, however, this may impact performance or obscure runtime mes-
sages and information if you require a computer to be dedicated to Runtime.
For example, an operator display panel may be used to present alarm notifications. You
don't want the Runtime screen minimized or hidden behind another window.
There are several different ways can limit access to software other than CitectSCADA.
See Also
Client Start up Restrictions
Running a client as a shell
Disabling Windows keyboard commands
Disabling control menu commands
Removing the Cancel button

Client Start up Restrictions


On start up CitectSCADA will establish initial communication with the server using a
view-only login. By default this communication between the client and the server is in
view-only mode. In this mode the user cannot write to any tag, acknowledge any alarm
or use Cicode functions.

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

Securing Runtime Computers

189
Chapter: 10 Securing Projects

Running a client as a shell


To limit certain operators from switching a client over to a different application during
runtime, you can configure Windows to launch with CitectSCADA running as the shell.
This will deploy CitectSCADA Runtime as the only available interface for a computer,
limiting access to within the context of the current project.
For information on how to set up a client as a shell, contact your local support office.
See Also
Disabling Windows keyboard commands

Disabling Windows keyboard commands


The Windows environment provides commands to switch between applications running
on the computer at the same time. When using CitectSCADA, these commands might
not be desirable - they allow an operator access to other Windows facilities without your
direct control. You might be able to disable some of these commands with the Computer
Setup Wizard. consult the Citect Knowledge Base for the latest information on disabling
Windows keyboard commands.
See Also
Disabling control menu commands

Disabling control menu commands


The Control Menu (in the top left corner of an application window) provides commands
to position and size the application window, and in some applications to control the
application. The runtime system's Control Menu can be tailored to give access to several
commands specific to CitectSCADA, such as Shutdown (to shut down the runtime sys-
tem), or Kernel (to display the Kernel).
You can enable and disable these commands with the Computer Setup Wizard.
See Also
Removing the Cancel button

Removing the Cancel button


When the CitectSCADA runtime system starts, a message box displays the status of the
system startup. This message box normally contains a Cancel button that allows you to
cancel the startup. This button is useful when you are debugging or testing the system.
When you have completed testing, you can remove the Cancel button from the message

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

Comment This command belongs to 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.

Note: Global privileges apply to every area.

You can allocate different privileges to different types of operation, as in the following
example:

195
Chapter: 11 Using CitectSCADA Security

Privilege Command

1 Operate the conveyors

2 Operate the mixers

3 Operate the ovens

4 Acknowledge alarms

5 Print reports

6 Operate box machine

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,4

Privilege classifications needs to be separated by commas (,).


To allow a user access to every command in your system, allocate every privilege in the
role associated to that user, for example

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

Comment An Operator with Privilege classification 1 can operate the conveyor

196
Chapter: 11 Using CitectSCADA Security

Com- Report("Shift");
mand

Privilege 5

Comment An Operator with Privilege classification 5 can print the report

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.

Role Description Viewable Areas assigned Privileges

Receiver controller Needed to monitor the receiver area, 1,2,3 1,4,5


print out reports and track progress
of supplies. Also will need to control
system elements that have a priv-
ilege level of 1,4,5.

Operations Manager Needed to monitor the Processing area 1,2,3,4,5,6,7,8,9 2,3,4,5


of the plant. Needs to be also able to
control elements within processing. At
times will need to be able to check on
the Receivals area.

197
Chapter: 11 Using CitectSCADA Security

Role Description Viewable Areas assigned Privileges

Despatch Handler Needs to be able to organize the pack- 8,10,11,12 1,2,5,6


ing and distribution of final product.
Will need to track product production to
schedule dispatch tasks for packer.

Engineer Engineer is necessary to have access to 1,2,3,4,5,6,7,8,9,10,11,12 1,2,3,4,5,6


every area of the plant, and will be able
to operate any system element.

Conveyor Operator Needs to be able to operate the con- 8 1


veyor.

Mixer Operator Needs to have access to each type of 4,5,6,7 2


mixer operation. Will have access to
areas 4 to 7 and will be able to operate
any system element with a privilege of
2.

Packer Needed to be able to package goods 12 6

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

John Smith Despatch Handler

Jack Smith Mixer operator

Tom Smith Engineer

Jerry Smith Conveyor Operator

Joan Smith Conveyor operator, Mixer operator

See Also
Configuring CitectSCADA Security
Adding Roles

198
Chapter: 11 Using CitectSCADA Security

Configuring CitectSCADA Security


To configure CitectSCADA security, you need to do the following:
l Configuring Areas
l Adding Roles
l Configuring Privileges
l Adding Users

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

Using labels to name areas


It might be easier to remember an area by a meaningful label (name) rather than a
number. For example:

Label Name DespatchAccum

Expression 10

Comment Label Area 10 as "DespatchAccum"

In this case, "DespatchAccum" could be used whenever area 10 is referred to, for exam-
ple:

Command CONVEYOR = 1;

Area DespatchAccum

Comment This command belongs to Area 10 (DespatchAccum)

Note: If you leave the Area field blank on a form, the command does not belong to

199
Chapter: 11 Using CitectSCADA Security

any particular area - it is assigned to every area of the plant.

To label an area:

1. Choose System | Labels.


2. Enter a Name for the label.
3. Enter an expression to be substituted for the label.
4. Click Add to append a new record, or Replace to modify an existing record.
See Also
Using groups of areas

Using groups of areas


You can group several areas and define a name for the group.

Group Name Despatch

Association 1 DespatchAccum

Association 2 11

Association 3 12

Comment Areas 10, 11, 12 = "Despatch"

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

Comment This command belongs to Areas 10, 11 and 12

You can also define a group that includes other groups.

Group Name Plantwide

Association 1 Receivals

Association 2 Process

200

You might also like