Citect SCADA 2018 Release Notes
- Last UpdatedFeb 09, 2026
- 15 minute read
New features and enhancements
-
Situational Awareness Starter Project
The Situational Awareness Starter Project can be used to create a Plant SCADA project that is designed to support abnormal situation management for operators. This provides accurate information to an operator in a way that can be perceived and acted upon quickly, without overwhelming their cognitive abilities. A consistent look and feel is applied to all graphical content, and standardized colors settings are used to emphasize important process data and alarms.
Situational Awareness projects differ to other pure template-based projects as they use "Workspace" technology to manage the content of a Master Page that appears on each configured client screen. Each pane in a Master Page displays a page that can be updated independently at runtime based on navigational or contextual changes. The Workspace is responsible for managing contextual updates to those panes by using the association between the hierarchical location of a detected change, and the type of content each pane is configured to display.
A set of library objects are also available via an included library project (named "SA_Library"). The included objects support the Workspace autofill functionality at runtime and maintain a consistent look and feel across a project's display pages.
You can also use the workspace without equipment to build a project that does not utilize the new context features. This is achieved using a Pane Genie on a customized master page.
For more information, see Situational Awareness Projects.
-
Additional Example Project
Citect SCADA now includes an additional example project, ExampleSA. ExampleSA is a project created using the Situational Awareness Starter Project. It features the default layout used, including elements such as a header bar, content area, and a dashboard that displays contextual information and navigational tools.
It also demonstrates the autofill functionality of the workspace, which enables contextual updates managed via a project's equipment hierarchy. This is driven by an association between the hierarchical location of the current context, and the type of content each pane is configured to display.
The project pages are built using objects that are available in an included library project (named "SA_Library"). These objects (and associated faceplates) support the autofill functionality of the workspace and maintain a consistent look and feel across a project's display pages.
For more information, see Situational Awareness Projects.
-
Alarm Management
Alarm Cause and Response
Citect SCADA 2018 allows you to associate cause and response information with an alarm tag. This means you can describes the circumstances that are likely to cause the alarm, and the appropriate course of action required to address the alarm. This information can then be presented to an operator at runtime. See Provide Cause and Response Information to Operators.
To specify cause and response information for an alarm tag, you need to use the new Alarming > Cause and Response view in the Setup activity. See Add Cause and Response Information to Alarms.
Alarm Shelving
When you shelve an alarm, it is disabled for a specified period of time, or until a specified time is reached. This allows an operator to temporarily disable alarms that are causing an unnecessary distraction.
Shelving is available via the Workspace's new Alarm tab in the Information zone. If your project uses the SxW or Tab Style templates (accessible via a starter project), you can shelve alarms during runtime from the Active Alarms and Alarm Summary page.
You can also shelve alarms by setting the EndTime argument for the following Cicode functions:
-
For more information, see Shelve Alarms.
Alarm Indicators
Citect SCADA 2018 allows you to use alarm indicators. Consisting of an alarm border and flag that appear around the extent of an object group or Genie, an alarm indicator provides a prominent visual indication of alarm occurrences at runtime.

See Use Alarm Indicators.
Alarm Priority Display Properties
You can configure optional display properties for an alarm priority that allow you to:
-
Specify a name for a priority value to provide a meaningful representation of its purpose.
-
Define background and foreground colors that support a visual representation of priority on a graphics page.
-
Define a Large and Small genie to visually represent the priority on the Alarm Indicator and Alarm Lists.
These additional properties are configured in the Setup activity (see Configure Display Properties for an Alarm Priority).
For more information, see Prioritize Alarms.
-
Graphics Improvements
Citect SCADA 2018 includes the following enhancements to graphics and Graphics Builder.
Name a Graphics Object
In Citect SCADA 2018 you can now name graphics objects (for example, a polyline, rectangle or text). Use this name to reference a graphics object via expressions and Cicode at runtime.
Configure the animation name when defining the general access properties of a graphics object. See the following topics for more information.
-
Animated Polygon Vertices
Plant SCADA now allows you to associate a tag or Cicode expression with the vertices in a polygon. This means the shape of a polygon can be manipulated at runtime in response to values generated by a production system.
This is achieved by applying offset values to each vertex that define a path along which the vertex can move. As the return value for an expression changes, a vertex will move along the path defined for it, altering the shape of the polygon.
For more information see Animate a Polygon at Runtime.
Pinned Windows
Windows can now be "pinned" at specified locations within a main window or within other pinned windows. A new Cicode function WinNewPinAt() has been added that when configured opens a new display window at a specified location, relative to the current active window, with a selected page displayed. The window can later be removed with the WinFree() function.
For more information see WinNewPinAt.
Activate/Deactivate
You can now configure events to run when a window is activated or deactivated. This is useful when using pinned windows on a page. For example, the activate event can be used to run an event if the user clicks on the pinned window.
Dynamically Display Symbols
In Plant SCADA 2018 you can use the DspSym Cicode function with a Genie to dynamically display content that is only generated at runtime.
You can also use bitmap and non-bitmap images as part of a symbol set in Graphics Builder. See Dynamically Instantiate a Genie at Runtime for more information.
Runtime Cursor
The runtime input focus cursors’ color can now be set to transparent. Also, a new function DspSetCurColor() has been added to allow simpler dynamic setting of the cursor color.
-
Screen Profiles
A screen profile specifies the physical characteristics of one or more workstation screens and how these screens are arranged with respect to each other. Each screen icon that appears in a screen profile represents a physical screen.
You can create, manage and configure screen profiles with the Screen Profile Editor, which is displayed below the Screen Profile table in the Setup activity. You can create as many screen profiles as you want.
A screen profile can also be set up for your project through the Setup Wizard.
-
Equipment References
Citect SCADA 2018 allows you to link a piece of equipment to items, or tags belonging to another piece of equipment in your Citect SCADA project. This means you can establish a relationship with equipment or equipment.items outside the equipment hierarchy. With equipment reference browse functions you can then track, group and display all information for the equipment and referenced equipment in one interface at runtime.
Add equipment references within the System Model > Equipment References view. Refer to Equipment References for more information.
-
Composite Genies
Citect SCADA provides several Composite Genies for use in graphics pages. A Composite Genie is a collection of individual Genies assembled to form a single object based on parameters/options chosen by the Engineer. The individual objects and their parameters/options are defined in an XML template file along with layouts for the collection, that is, the Composite Genie. You can insert multiple instances of the composite object on to a graphics page, and specify different parameter settings including values, alignment and display options for each instance to tailor the Composite Genie to suit your requirements.
For example, you want to build a mirrorable compressor object that is capable of optionally displaying a label, a mode indicator and a meter alongside the symbol. Prior to Citect SCADA 2018, you could either create separate genies for each of the permutations, or you could build a single genie that used visibility to show/hide elements at runtime. With Composite Genies, you can simply select the XML template for a compressor, which presents a set of presentation options for you to configure label, orientation, etc. All you need to do is set values for these options and insert the object on to a page. You can change parameters/options at any time. For more information, see Composite Genies.
-
Refresh Super Genie Associations
A new Cicode function called AssWinReplace allows you to update the associations for a Super Genie without the need to reload the entire page. The function removes the associations on a specified Super Genie window, and applies any pending associations.
For more information, see AssWinReplace.
-
Grid Column Resizing in Plant SCADA Studio
You can now re-size the columns in the Plant SCADA Studio Grid Editor according to their content. To do this, select Size Columns to Content from the menu on the left side of the Grid Editor header. Alternatively, you can double-click the divider of a specific column to auto resize it.
For more information, see Customize Grid Editor Columns.
-
Display Name for Equipment
Equipment definitions now support a Display Name property. This allows you to specify a meaningful name that can identify a piece of equipment at runtime.
The Display Name can also be used to reference equipment in a Genie. For more information, see Define Equipment in Plant SCADA Studio.
-
Menu Configuration Enhancements
Plant SCADA's menu system has been enhanced. You can now associate equipment with a menu item, allowing you to align the equipment model with page navigation. In the case of a Situational Awareness project, this drives the functionality that enables a runtime system to respond to the current context of a display client (see Prepare the Navigation Menu).
Further enhancements include:
-
Support for two more menu levels
-
Support for up to eight Custom properties for each menu item
-
All properties can be queried at runtime.
For more information, see Menu Configuration.
-
-
Array Functions
Citect SCADA now includes a set of functions that allow you to create arrays that use up to three dimensions (x,y,z). This can offer performance benefits when handling large amounts of data, for example, when generating an alarms list.
For more information, see Array Functions.
-
Indirect Tag Value Lookups in Foreground Code.
A new function TagGetValue has been added that allows values of tags to be automatically looked up in foreground cicode expressions. This function automatically sets up and maintains the subscriptions for the referenced tag/equipment.item.
Citect.ini parameter updates
The following Citect.ini parameters have been introduced or modified in this release.
New Parameters
-
CtEdit Parameters
[CtEdit]IncrementalEquipmentUpdateAutoClose
Determines if the Update Equipment confirmation dialog appears when an incremental equipment update has completed.
-
Debug Parameters
[Debug]DebugLogHistoryFiles
Determines how many "debug.<process name>.log" files are kept when rolled over.
[Debug]DebugLogFileSize
Sets the maximum size of the "debug.<process name>.log" file.
-
MultiMonitors Parameters
[MultiMonitors]Context<n>
Allows you to share a single context with one or more screens.
[MultiMonitors]ScreenProfile
Sets the arrangement of monitors on a client workstation.
[MultiMonitors]StartupPage<Name>
Sets the pages that appear when using a particular screen profile.
[MultiMonitors]Workspaces
Indicates the number of workspace pages to be shown at startup.
-
SA_Library.Meter Parameters
[SA_Library.Meter]UseDefaultPLCLimits
Allows you to use PLC alarm limits for faceplates.
[SA_Library.Meter]PLCLimitNames
Names for PLC alarm limits. This is a comma-separated list of values.
[SA_Library.Meter]PLCLimitLabels
Display labels that correspond to each PLC alarm limit defined. This is a comma-separated list of values.
[SA_Library.Meter]DefaultPLCLimits
A number that determines the order in which to use the defined PLC alarm limits. 0 corresponds to the lowest PLC alarm limit defined, while the largest number corresponds to the highest limit defined.
-
Workspace Parameters
[Workspace]AlarmSortOrder
Defines a customized sort order for the default alarms pages in a Situational Awareness project.
[Workspace] EquipmentNavigationModelFilter
Filters the equipment model loaded by the workspace.
[Workspace]InfoZoneAlarms.IncludeReferences
Determines if alarms from referenced equipment are included in the Alarms page on the Information Zone.
[Workspace]InfoZoneTrends
Determines the pens that will be displayed in the Information Zone of the workspace based on the equipment items configured.
[Workspace]InfoZoneTrends.Type
Determines the pens that will be displayed in the Information Zone of the workspace based on the equipment types configured in the Equipment Editor.
Modified Parameters
-
Format Parameters
[Format]FormatName
Defines a display format for tabular data and identifies it with a specified name. This allows you to name a customized display format that you can then apply to an alarms list.
-
Code Parameters
[Code]Thread
Defines the number of Cicode threads (tasks) that can run concurrently. The default value has changed from 64 to 128.
Cicode function updates
The following Cicode functions have been introduced or modified in this release.
Some Cicode functions have been introduced or modified. The following sections detail these changes:
New Functions
-
Alarm Filter Functions
AlarmFilterEditAppendEquipment
Appends the provided expression that can include equipment names or category to the current filter session content without validation.
-
Alarm Functions
AlarmCommentRecID
Allows an operator to add a comment to a selected alarm summary or SOE entry during runtime.
AlarmHighestPriority
Returns the alarm priority and/or state of the current highest priority alarm for the given equipment in conjunction with the selected filter criteria.
AlarmListCreate
Creates an alarms list at a specified AN.
AlarmListDisplay
Displays an alarms list at a specified AN.
AlarmListDestroy
Destroys an alarms list at a specified AN.
AlarmListFill
Fills an alarms list at a specified AN to be used by another routine (e.g. the interlocks processing routine).
AlarmTagFromEquipment
Returns the first alarm tag associated with a piece of equipment.
-
Array Functions
ArrayCopy
Makes a copy of an array.
ArrayCreate
Creates an array.
ArrayCreateByAn
Creates an array at a specified AN.
ArrayDestroy
Destroys an array.
ArrayDestroyByAn
Destroys an array associated with the specified AN.
ArrayExists
Determines if an array with a specified handle exists.
ArrayExistsByAn
Determines if an array is associated with a specified AN.
ArrayFillFromAlarmDataByAn
This function is used to fill an array with information from internal alarm record caches.
ArrayGetArrayByAn
Retrieves an array associated with a specified AN.
ArrayGetInfo
Retrieves the size of the x–, y–, or z–dimension for an array.
ArrayGetInt
Retrieves an integer value from an array.
ArrayGetIntByAn
Retrieves an integer value from an array associated with a specified AN.
ArrayGetMapName
Retrieves the name of the map associated with an array.
ArrayGetMapNameByAn
Retrieves the name of the map associated with an array at a specified AN.
ArrayGetString
Retrieves a string from an array.
ArrayGetStringByAn
Retrieves a string from an array associated with a specified AN.
ArrayIsDirty
Determines if an array is ‘dirty’ (information in the array has changed).
ArraySetInt
Sets an integer value within an array.
ArraySetIntByAn
Sets an integer value in an array associated with a specified AN.
ArraySetIsDirty
Allows you to indicate that an array is dirty (meaning the information in the array has changed).
ArraySetString
Sets a string value in an array.
ArraySetStringByAn
Sets a string value in an array associated with a specified AN.
ArraySwap
Swaps the contents of two arrays.
DspArrayByAn
Displays an alarms list. The array that contains the alarm data is associated with the specified AN.
-
Display Functions
DspAnSetName
Using a valid AN set the name of an animation object.
DspClearClip
Clears the clipping rectangle surrounding the object or group of objects.
DspGetAnFromName
Name used to retrieve the AN of an object on the page.
DspGetAnFromNameRelative
Retrieves the animation number (AN) of an object on the page relative to a given Animation Number(AN).
DspGetAnRawExtent
Gets the extent of the object from the graphics page at the specified AN.
DspGetNameFromAN
Using a valid An the animation name of the object is returned.
DspGetMetadataFromName
Name used to retrieve the metadata of an object on the page.
DspGetMetadataFromNameRelative
Retrieves the metadata of an object on the page relative to a given Animation Number (AN).
DspSetCurColor
Sets the color of the focus rectangle.
DspSetMetadataFromName
Name used to set the metadata of an object on the page.
DspSetPopupMenuFont
Sets the font for popup menu text at runtime.
-
Equipment Database Functions
EquipGetParameter
Reads a runtime parameter of an equipment database record from the EQPARAM.RDB database file.
EquipRefBrowseClose
Terminates an active data browse session and cleans up resources associated with the session.
EquipRefBrowseFirst
Places the reference browse cursor at the first record.
EquipRefBrowseGetField
Retrieves the value of the specified field from the record the data browse cursor is currently referencing.
EquipRefBrowseNext
Moves the data browse cursor forward one record.
EquipRefBrowseNumRecords
Returns the number of records that match the filter criteria.
EquipRefBrowseOpen
Initiates a new browse session and returns a handle to the new session that can be used in subsequent equipment reference browse function calls.
EquipRefBrowsePrev
Moves the data browse cursor back one record.
-
Map Functions
MapClear
Clears all entries in a map and returns the error status.
MapClose
Deletes a previously created map.
MapExists
Check if the map exists using a returned error code.
MapKeyCount
Retrieves the number of keys in a map.
MapKeyDelete
Delete a key and its value from a map.
MapKeyExists
Check if a key exists in a map.
MapKeyFirst
Retrieves the first key in a maps so that all the keys in a map can be discovered.
MapKeyNext
Retrieves the next key after the supplied key in a map so that all the keys in a map can be discovered.
MapOpen
Creates a new map or to open an existing map.
MapValueGet
Retrieves the value from a key in a map.
MapValueSet
Sets a value of a map key.
MapValueSetQuality
Sets the quality of a property in a map.
-
Menu Functions
MenuGetNodeByPath
Returns a menu handle corresponding to a menu item expressed as a string path in the format <level>.<level>.<level>.<level>.
MenuNodeGetCurr
Allows you to get the handle of the menu node when this associated command is called.
MenuNodeGetDepth
Returns the depth of a specified menu node within a menu hierarchy.
MenuNodeGetExpanded
Returns the expansion state value of the specified menu node.
MenuNodeGetTargetPage
Returns the target page for a specified menu node.
MenuNodeSetExpanded
Sets the expansion state value of the specified menu node.
-
Page Functions
PageFileInfoEx
Returns the width, height, content type, parent or title of an unopened page.
-
Screen Profile Functions
ResetScreenProfile
Returns all top level windows back to their original screen starting position as defined by the screen profile in a multi-monitor setup.
-
String Functions
StrEndsWith
Verifies whether the given string ends with a specific string.
StrListContainsItem
Checks whether the string passed is an item contained in a delimited list of strings.
StrReplace
Replaces a substring in a string with replacement substring.
StrSplit
Splits a string into sub-strings based on the specified delimiter. Sub-strings are stored in a new array and a handle to this array is returned.
StrTruncFontToolkit
Returns a truncated string with ellipsis, and sets an AN with a tooltip containing the complete string if a truncation occurs.
-
Super Genie Functions
AssEquipParameters
Associates a set of equipment parameters defined in System Model | Equipment | Runtime Parameters with a page.
AssWinReplace
Removes the associations on a specified Super Genie window and applies any pending associations.
-
Tag Functions
TagGetValue
Reads the value, quality and timestamp of a tag based on the tag subscription.
-
Windows Functions
WinGetClicked
Gets the number of the Plant SCADA window that has most recently been clicked on using the left mouse button.
WinGetName
Gets the name previously associated with a particular window number using WinSetName.
WinNewPinAt
Opens a new display window at a specified location, relative to the current active window, with a selected page displayed.
WinFreeEx
Removes the active display window and allows you to pass a Windows handle to the function for closing the window.
WinGetFirstChild
Gets the window number of the first child of a parent window.
WinGetNextChild
Gets the window number of the next child in a child link.
WinGetParent
Retrieves the window number of the specified window's parent or root window.
WndMonitorInfoEx
Returns information about a particular monitor using the screen name of the screen profile.
Modified Functions
-
Alarm Functions
AlarmDisable
EndTime and Comment arguments have been added to support alarm shelving.
AlarmDisableRec
EndTime and Comment arguments have been added to support alarm shelving.
AlarmDisableTag
EndTime and Comment arguments have been added to support alarm shelving.
AlarmEnable
bAcknowledge argument has been added to force acknowledgment of an alarm after it is enabled.
AlarmEnableRec
bAcknowledge argument has been added to force acknowledgment of an alarm after it is enabled.
AlarmEnableTag
bAcknowledge argument has been added to force acknowledgment of an alarm after it is enabled.
AlarmGetDsp
Alarm response properties are now accessible via the Field argument.
AlarmGetFieldRec
Alarm response properties are now accessible via the Field argument.
AlmBrowseDisable
EndTime and Comment arguments have been added to support alarm shelving.
AlmBrowseEnable
bAcknowledge argument has been added to force acknowledgment of an alarm after it is enabled.
AlmBrowseGetField
Alarm response properties are now accessible via the Field argument.
AlmSummaryDisable
EndTime and Comment arguments have been added to support alarm shelving.
AlmSummaryEnable
bAcknowledge argument has been added to force acknowledgment of an alarm after it is enabled.
AlmTagDisable
EndTime and Comment arguments have been added to support alarm shelving.
AlmTagEnable
bAcknowledge argument has been added to force acknowledgment of an alarm after it is enabled.
-
Display Functions
DspAnInfo
Mode 3 added as an option for the nType argument.
DspText
bTooltip argument added.
DspStr
bTooltip argument added.
-
Form Functions
FormButton
"Disabled" has been added as an option for the Mode argument.
FormPrompt
Width and Height arguments have been added to create an area that the prompt string will wrap within.
Deprecated Functions
No functions have been deprecated for Citect SCADA 2018.
Removed Functions
No functions have been removed for Citect SCADA 2018.