All projects MUST be upgraded and recompiled after the installation of this Service Pack.

Failure to do will result in conflicting database size messages. To force an upgrade, edit the Citect.ini file and set [CTEDIT] UPGRADE=1. Ensure that the Incremental Compile menu option is not checked, or set [CTEDIT] INCREMENTALCOMPILE=0.


The following files have been updated by this Service Pack.






















This Service Pack fixes the following problems:

* NCR 17044 - Client-server connection across slow networks can be lost.

If the client requests a large amount of data from the server (such as scrolling back and forth a long way into historical data several times) across a slow network, the client-server connection may be lost.

* NCR 17426 - Trend Clients will not switch to the Standby Trend Server when the Primary Trend Server is shutdown.

Once the Primary Trend Server has been shutdown, no Trends are displayed on Trend Clients even though the Standby Trend Server is still running.

This Service Pack also contains the fixes for previous Version 5.40r0 Service Packs. These were:

Service Pack A:

* NCR 15381 - Citect layout saved.

Citect Editor, Explorer and Graphics Builder now save their window layout upon exit and restore it upon the next startup.

* NCR 15554 - A client/server connection is not re-established on Win2000.

A client/server connection is not re-established after a network failure when using NetBios over TCP/IP on Win2000 machines.

* NCR 15877 - Alarm Page may not display all requested alarm categories.

If there is a large number of comma separated alarm categories set to the alarm by using Cicode function AlarmSetInfo(), the alarm page may not display all of them.

* NCR 16110 - SQLGetField() does not display 'Text' data type fields.

When using the Cicode function SQLGetField(), fields of 'Text' data type will not be displayed.

* NCR 16482 - Maximise Citect Window.

Maximise doesn't work correctly when there is a taskbar on top.

* NCR 16532 - Scrolling to realtime on Windows 98 with a timezone negative of GMT.

Hitting the scroll to realtime button calls TrnSetTime with a value of zero for its time argument. This should cause the time to be set to the current time. Instead it is always set to "12:00:00 AM 31/12/1999". This problem only occurs if you are on Windows 98 and if your timezone is negative from the GMT, such as USA.

* NCR 16549 - ExportFileButton() and ExportClipButton() functions return incorrect data.

Values do not match up correctly to timestamps, and are not in the right order.

* NCR 16550 - When exporting millisecond trends, some timestamps and values are duplicated.

TrnExportCsv, TrnExportdbf, TrnExportClip, TrnExportDDE and _TrnExport all have this problem when using periodic trends.

* NCR 16551 - Yearly trend files do not work.

They cannot be written to, and newly created files cannot be read from.

* NCR 16552 - Trend History Files from versions earlier than 5.00

Trend History Files from versions earlier than 5.00 do not work. Trend data from these files will not get displayed on the screen.

* NCR 16563 - Cicode tasks may sleep indefinitely.

After the startup of Citect when Windows (OS) has run more than 49.7 days some Cicode tasks may not wake up for at least another 49.7 days.

* NCR 16566 - Wrong compile error generated when CiVBA inserted in expression fields.

The compile error "Operand expected" generated when the CiVBA keyword is found in an expression field such as the movement or scaling expressions of a dynamic object is not sufficiently specific.

* NCR 16572 - Trend Raw and Engineering scales are rounded down to the nearest integer.

The Zero and Full scales of Raw and Engineering values that contain decimal values will be rounded down to the nearest integer, which will cause the Trend values to lose precision.

* NCR 16578 - Mouse event not handled when window gains focus.

If the Citect runtime window has just come back into focus then left mouse events are not handled until the mouse has been moved.

* NCR 16582 - Citect Communication Express Wizard may fail.

On Windows 2000 with Service Pack 2 installations the Express Wizard will fail when attempting to edit an IO Device. The Express Wizard responds with "Unable to open 'units.dbf'" and exits after OK button is pressed.

* NCR 16638 - Editing and removing properties of nested genies.

When editing the properties of a base genie (i.e. a genie that does not contain another genie) the changes may not be reflected in any genies in which the base genie is nested.

* NCR 16724 - Potential Periodic Trend Historical Data overwrite.

When you Shutdown Citect and restart some time later, data corruption may occur in the Trend history files.

* NCR 16740 - The Decimal Separator in CTAPI output data is not localised.

The CTAPI uses hard coded symbol (.) for the separator of decimal number rather than using the decimal separator in Windows Regional Numbers setting.

Service Pack B:

* NCR 12508 - TrnSetTable() does not work correctly on redundant servers.

When TrnSetTable() is called, the data is only written to the server that the client is connected to. The redundant server does not receive the data.

* NCR 16136 - Debug arrow in the Cicode Editor is not cleared after debugging is stopped.

The yellow Debug arrow in the Cicode Editor isn't cleared when debugging is stopped, and sometimes you can get more than one arrow visible at a time.

* NCR 16144 - Changing the Storage Method of a Trend causes startup problems.

Changing the Storage Method of a Trend without deleting the trend's history files is not supported and should give a clear error message. Instead an assert or a non descriptive error occurs.

* NCR 16365 - Multi-Line comments in the Cicode Editor are only coloured to 1024 characters.

Multi-Line comments in the Cicode Editor are only coloured to 1024 characters. Comments longer than this aren’t coloured correctly.

You can change this value using the following parameter.


The maximum number of characters in a multiline comment that will be syntax coloured in the cicode editor. If the number of characters in a multi-line comment is greater than this value the whole comment will not be coloured as a comment.The higher this number is, the longer multiline comments will take to format when the multiline comment start and end strings are modified.


Default value: 1024

* NCR 16479 – Cicode Editor Save As dialog : Changing the directory causes a crash.


When the directory is changed in the Save As dialog in the Cicode Editor, and left for up to 5 seconds, the Cicode Editor will crash.

* NCR 16616 - TrnDelHistory() may fail.

If a file with a completely different base name is added to a Trend using TrnAddHistory() and Citect is restarted, the history files are corrupted and TrnDelHistory() fails.

* NCR 16632 - Compilation of CiVBA functions fails when the project directory isn't under the User directory.

If a Citect project is in a directory not under the User directory where Citect was installed, any CiVBA functions called will give the following compile error:

Unresolved function <FunctionName> is used in CiVBA.

* NCR 16645 - TrnSetTable() does not work when its time argument is zero.

Although it is not documented in the help, TrnSetTable() should set the given values starting from the current time and working backwards when its time argument is zero. Instead it fails to set any values.

* NCR 16738 - Scrolling by Event number on pages with the Eventspcxrs template does not work.

The Mean is scrolled to the correct Event number, but the Standard Deviation and Range are not. For this fix to take affect, you will need to use "Tools | Update Pages" menu item from Graphics Builder for each project.

* NCR 16739 - Trend data for Event SPC Trends does not appear on the screen.

The event number stays at zero, and no Events are shown.

* NCR 16768 - Creating very long tag comments may cause GPF.

If TagInfo() is used to retrieve the comment field of a tag and the comment is longer than 63 characters a GPF may occur.

* NCR 16770 - Nested Genie Movement and Slider properties may not be propagated.

If an item within a base genie contains both Movement and Slider properties, and these are removed from the genie at the same time, then the removal may not be reflected in any genies based on the genie.

* NCR 16803 - Alarm Summary timeout enhancement.

The Alarm Summary timeout may now be disabled. With the [Alarm] SummaryTimeout parameter set to -1 alarms will not be removed from the Alarm Summary based on a timeout period. Alarms will still be removed when the alarm summary grows beyond the number of alarms specified in the [Alarm]SummaryLength parameter.

* NCR 16840 - The handling of embedded calculations has changed.

Default argument expressions now require surrounding braces, otherwise a compile error is generated.

* NCR 16847 - Phantom Alarms on Standby Alarm Server.

If some I/O Devices are offline when the Primary Alarm Server starts up, the alarms which are related to the offline devices will show up as On and Acknowledged on the Standby Alarm Server. The Primary Alarm Server and its clients cannot see those alarms.

* NCR 16848 - SPC Trends are not displayed correctly on non SPC Trend Templates.

The display updates by a factor of the subgroup size of the SPC Trend when it should just update every display period for Periodic Trends or every event for Event Trends. When your display period is less than the sample period on a Periodic Trend, gaps are shown in the Trend, or no Trend is shown at all.

* NCR 16858 - Calling the Cicode function TrnEventSetTable() may cause memory corruption within Citect.

This can cause crashes to occur in some situations, like when changing pages or shutting down.

* NCR 16898 - The Cicode function DevPrint() may cause Citect to crash.

Memory corruption may occur if using this Cicode function with an SQL Device.

* NCR 16910 - Alarm Sorting by Priority does not work.

When you set the alarm list to display by priority the alarms in the list still are displayed by category.

* NCR 16934 - Temporary files remaining after Pack Libraries.

After executing Pack Libraries from the Graphics Builder Menu, some temporary files (*.TMP) may remain in the project directory. These files will be of a similar size to the corresponding genie library file (*.CTM). This causes unnecessary hard disk usage.

* NCR 16935 - Genie Substitution Corruption.

In complex genie nesting situations, some genie substitutions may be replaced by empty strings. This can result in a project no longer compiling.

* NCR 16969 - TrnGetBufValue() may generate hardware alarms.

When TrnGetBufValue() encounters an invalid or gated value, incorrect hardware alarms can be generated.

* NCR 16972 - Text objects will only display ANSI character fonts.

On an English locale system, the text objects in Citect Graphics Builder do not provide non-ANSI character fonts like Terminal, even though these fonts appear available from the Text | Font... menu.

* NCR 17033 - Nested Genie Fill properties may not be propagated.

If an item within a base genie has a Fill/Colour property that is not of the type On/Off then using the Clear Property button results in the property remaining in any genies based on the genie.

* NCR 17048 - Unable to create window outside viewable area.

When using the function WinNewAt() with negative coordinates, while the INI parameter [Page] DynamicSizing=0 is set, the window will appear at 0,0.

* NCR 17137 - Graphics Builder crash on ungrouping, saving or updating page.

If you have a group of objects on the page and you replace, in the symbol library, one of the symbols in the group, then some of the objects grouped with the symbol may no longer be displayed when the page is opened. You will also experience a crash if you try to ungroup, save or update the page.

* NCR 17282 - I/O Server status problem.

If Standby I/O Devices are turned offline, the status change will not be discovered.

* NCR 17294 - A blank file is opened in the Cicode Editor when a compile error in an included project is accessed from Citect Editor.

The Cicode Editor correctly opens the offending file and incorrectly opens another file with the same name but in the current project directory when an error from an included project is gone to from the compile errors dialog in the Citect Editor.