The following files have been updated by this Service Pack.



















This Service Pack fixes the following problems:

*NCR 7963 – DspInfo() with datatype of ‘3’

DspInfo(hInfo,3,nOffsetTag) returns the tag name without the array index of the variable.

*NCR 8994 - PageInfo() enhancements

PageInfo() now accepts types 21 and 22 to return the width and height of the current page.

*NCR 11557 – "Cancel" button added to broken link dialog box.

A "Cancel" button has been added to the broken library link dialog box which may come up during the updating of pages in the graphics builder. Pressing the button will cancel the entire process.

*NCR 11683 - Clear and Backspace buttons in FormNumPad() mode 32 don't work.

When a value is entered into the combobox in FormNumPad() mode 32, and the 'Clr' (Clear) button is pressed, the combobox text field does not clear. Also the '<-' (backspace) button will not clear the last character.

*NCR 11698 – Update Pages does not update the modified template properties.

Template properties, like size, colour, and keyboard commands, do not get modified on linked pages during update pages. This has now been fixed. To enable the fix set the ini parameter:



Once set you will no longer be able to modify these properties on linked pages.

*NCR 11784 – Enhancement to broken library link dialog.

"Yes To All" and "No To All" buttons have been added to the broken library link dialog in the graphics builder.

*NCR 11929 - A tick on the Access Tab(General Tab) is missing in Graphics Builder.

A tick should be displayed when the description field, tooltip field or log device field is filled, or when the area box or privilege is not checked.

*NCR 12301 – Internet Display Client crashes.

The Internet Display Client crashes when the Cancel button of the file transfer dialog is selected.


*NCR 12475 – File extension "v52" for symbol and genie library files.

If CtDraw32 crashes during a pack libraries it leaves the name of the libraries with an extension "V52" regardless of whether it was a Symbol or Genie being packed at the time of the crash. Attempting to repack the libraries again can not differentiate between a symbol and genie library files. This has been changed to "l52" for libraries and "g52" for genies.

Note: "v52" will be "v51" in Citect version 5.1

*NCR 12533 – AssInfo() function.

The AssInfo() function does not return the array index with the tag name.

*NCR 12631 - RTF report files will not roll over.

If you have a report device which outputs data in RTF file format, and configure history files, then they will not roll over correctly. Citect will simply keep writing to the same RTF file the whole time and will not create any history files when they are due.

*NCR 12652 - Backup Path Failure may cause Citect to shut down.

If a RUN and BACKUP path are both set, but the BACKUP path fails, and an attempt is made to display a non-existent page (eg. using PageDisplay() ), Citect displays the message "Cannot display page" and then shuts down.

*NCR 12770 - SPC Subgroup size of 1.

Citect SPC now supports a subgroup size of 1 - Contact Citect Support for more information.

*NCR 12827 – Centering of Startup Page

Citect can now be configured to open the startup page in the center of the screen. This is done by setting the ini parameter:



*NCR 12829 - Scrollbars for page in Graphics Builder.

If you adjust the page size in the graphics builder to be larger than the screen, then scrollbars do not automatically appear.

*NCR 12913 - Character sequences not recognised.

Character sequences CTRL+0 (0x2030) to CTRL+9 (0x2039) and CTRL+SHIFT+0 (0x3030) to CTRL+SHIFT+9 (0x3039) are not recognised. Also character sequences CTRL+ALT+0 (0x6031) and CTRL+ALT+1 (0x6032) are incorrectly recognised as CTRL+ALT+P (0x6050) and CTRL+ALT+Q (0x6051). PRINT SCREEN will now be recognised as KEY_SNAPSHOT (0x012C) when it is released.

*NCR 12942 - STRING substitution error on genie.

Associating a STRING variable to an untyped super genie substitution, eg. ?1? causes an error dialog to pop up. The dialog cannot be dismissed. Changing pages while the dialog is up causes a GP in Citect runtime.

The Error dialog popped up as follows:

File (E:\v521\source\display\CT_EXEC.C) Line (2243)

Error Invalid Load Variable Type.

*NCR 12970 – New TimeInfo() and DateInfo() functions

Two new Cicode functions TimeInfo(INT nInfo) and DateInfo(INT nInfo, INT nExtra) have been added to Citect. These two functions return the Time and Date formats in effect on the Citect Server. Contact Citect Support for more information.

*NCR 12971 – Deleting a project causes an incorrect error message.

Deleting a project that has a file open in another application causes an incorrect error message with a line number in the code to appear.

*NCR 13030 – Data Path not suitable for trend files

Running Citect when the data/history directory is a sub directory of the project directory results in the error "Path : '[data]:cpu' not suitable for trend files". Citect can now be configured to ignore this restriction on data directory location by setting the ini parameter:



*NCR 13046 - RTF report files don't display correctly after being removed.

When RTF report files are created and written to many times, the RTF file is readable and all writes to the file are visible. However, when the RTF file is deleted or removed, or even if a DevZap() function is performed on the report device, then subsequent writes to the RTF file are not be readable in RTF format.

*NCR 13073 – Incorrect text on the windows menu.

The text for closing the window on the system menu for child windows should be "Close" instead of "Shutdown".

*NCR 13113 - Cicode function IODeviceInfo() crashes Citect.

Calling IODeviceInfo("<any valid I/O device>", 22 or 23) will crash a Citect workstation if it is not an I/O server. This has been fixed so that calling IODeviceInfo() with 22 or 23 will only return valid values on I/O servers, otherwise it will raise a hardware alarm of "Cicode Invalid argument passed".

*NCR 13114 - SELECT CASE compile error.

Compiling a function using the SELECT CASE statements may not work correctly.

*NCR 13152 - Incorrect bitmap object size at runtime.

Citect may display bitmap objects at an incorrect size at runtime.

*NCR 13162 - Wrong IODevice Hardware alarm.

When you have more than 512 IODevices in a Citect database then a hardware alarm for an IODevice may be reported as being for another IODevice. Also ErrSetHw()/ErrGetHw() will not work correctly when there are more than 511 IODevices in the database. To correct this the mask for IODevices passed into this function (ie. the number added to the IODevice number) has been changed from 512 to 8192. The old mask of 512 can still be used by setting [Code]BackwardCompatibleErrHw=1 in your configuration file. However with backward compatible mode you will only be able to have ErrSetHw()/ErrGetHw() work correctly with 511 IODevices or less in your database.

*NCR 13185 - Enumeration of DESIGO INSIGHT tags within the OPC server

The OEM tag extension for Staefa now supports enumeration functions for tags. An OPC client displaying a list of tags will now show Citect and DESIGO INSIGHT tags.

*NCR 13186 - Write to devices fails.

Citect is unable to write to a database file if a previous write attempt was made while the file was locked by another application.


*NCR 13192 – Parent Page Activation

When a child page is closed at runtime, the parent page should be activated (not the top parent page).

*NCR 13196 – Staefa Tag Support

Staefa ODC tags are now supported by CTAPI. Both the Citect Server and Client must be have Version 5.21 Service Pack A installed.

*NCR 13217 - WinCopy() and WinFile() enhancements

WinCopy() and WinFile() have been enhanced to take the specified x/y scales and palette. These functions now have arguments as follows - WinCopy(xScale, yScale, sPalette) and WinFile(Filename, xScale, yScale, sPalette).

Note: When using both scaling and a different palette you may not get desired results. This is because a pixel averaging algortihm is used when scaling down. This may choose colours near the colour you are mapping and thus will not be mapped by a single colour map. You can adjust the palette to include these colours or turn pixel averaging off by setting [Animator]UsePixelAveraging=0.

*NCR 13265 - DspInfo() problem on Super Genies.

When you use an association without a type on a Super Genie (eg. ?1?) then DspInfo() will not be able to give any information for the substituted tag if that tag is a DIGITAL.