Citect for Windows

Release Notification


Version 5.31 Rev. 0


Fixed Problems and Enhancements

This is a detailed listing of the resolved problems and minor enhancements in this release. (See the What's New in the online help system for details of new features for this version.)

* NCR 5576 - DspRubSetClip() Function.

DspRubSetClip() seems to always return an error code of 274, although the function works correctly.

* NCR 5727 - DspChart() function.

Parameters Value1 to Value8 for this function are not optional as explained in programmer's reference.

* 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 13394 - Steeplechase Tag Import.

Citect now supports importing and linking of Steeplechase tags. The Steeplechase VLC software is required to be installed in order for the importing and linking of Steeplechase tags to function.

* NCR 13434 - Long File Names problem.

When long file name support is enabled, pages that its name is longer than 8 characters from project created in v5.21 and earlier cannot be accessed by Cicode.

* NCR 13586 - CTAPI problem.

1) Multiple "CTAPITrend()" query run on the same Citect server simultaneously could result in the client receiving the wrong data;

2) ctFindFirst() could get junk records from the Citect server for the ctFindFirst()/ctFindNext() query that should get no records;

3) CTAPI may cause a crash in the following two situations:

a. Repeatedly run the same trend query using CTAPI.

b. Citect shuts down and starts up again with a different project while the CTAPI client is still connected.

4) ctPointToStr() and ctListData() will return REALs in exponent format rather than fixed point;

5) The new open mode CT_OPEN_BATCH has been added for ctOpen() which disables the message box from displaying in CTAPI;

6) The parameter [api.debug]apilog has been set default to off.

* NCR 14077 - Error Deleting Projects.

If you delete a project using the Windows Explorer and then start Citect, Citect Explorer is unable to delete the project from its list. The "Show deleted rows" option of the Citect_Dbf DSN should be turned off.

* NCR 14382 - Accessing alarm properties may cause Citect to crash.

When Accessing alarm properties dynamically, for example via the TagRead() or TagWrite() Cicode functions or CTAPI, and there is not an alarm device defined then Citect may crash.

* NCR 14383 - Graphics Builder crash when saving a genie.

Graphics Builder may crash when saving a page containing the maximum number of characters (254) in the Genie Substitution string.

* NCR 14561 - ABTCP driver crash.

The ABTCP driver may cause Citect runtime to crash under certain timeout conditions.

* NCR 14751 - Projects Fail To Upgrade.

Upgrading projects from versions earlier then version 5.00 will cause a crash, and the upgrade to fail, if the following field names are contained in any of the projects files: "TEXT", "FONT", "VISIBLE", "MVX", "MVY", "ROT", "SZX", "SZY", "FIL", "CMD", "DOWN_CMD", "DBLCLK_CMD", "REPEAT_CMD", "MSG_LOG", "MVXSL", "MVYSL", "ROTSL", "PRIV", "AREA", "DEVICE", "DESC", "COMMENT", "DISABLED", "SET_ARR".

* NCR 14782 - TrnSetScale() crash.

TrnSetScale() may cause a crash if passed invalid parameters.

* NCR 14964 - Viewing large rich text files in Citect on Windows 2000.

When viewing large rich text files using the Cicode function DspRichText(), only the first 64k characters of the file may be viewable. This only affects Citect when running on Windows 2000.

* NCR 14969 - Memory Leak.

Citect runtime leaks memory when accessing the Page Menu.

* NCR 15065 - KSEQ driver.

KSEQ driver returns error message 0x00000013 "Driver is not responding" when a standby I/O device is configured.

* NCR 15080 - New INI parameters.


Determines whether Citect will connect to I/O Servers asynchronously to allow faster start-up time when I/O Servers are known to be unavailable.

New Section [DISABLEIO]

[DISABLEIO]<I/O Server name> and [DISABLEIO]<I/O Device name>

Define a list of I/O Servers and I/O Devices to permanently disable during this session.

* NCR 15168 - MODNET and MODBUS drivers.

The MODNET and MODBUS drivers have been enhanced to optionally use only function codes 15 and 16 for writes. To use function code 15 rather than 15 and 5 for coil writes set ForceMultiCoilsOnly = 1 in the Citect.ini file. To use Function code 16 rather than 16 and 6 for coil writes set PresetMultiRegistersOnly = 1 in the Citect.ini file.

* NCR 15188 - TWINCAT driver.

TWINCAT driver cannot initialise more than one I/O Device defined in a project.

* NCR 15195 - Ascii1 and Ascii2 Drivers.

The dbf files for both of these drivers do not exist (ascii1.dbf and ascii2.dbf) and neither of them are fully integrated into Citect.

* NCR 15227 - COMX driver.

Special options can't be space separated as documented in the help.

* NCR 15348 - New drivers added.

These drivers have been added to Citect: Datatakr, ICMP, Jami, KSEQ, PCMP, RAMP, RTP, Schlage, Stargate, SxDirect, TWINCAT.

* NCR 15390 - History files may not rollover at the expected time or too frequently.

History files may not rollover at the appointed time or may rollover too often. A history file will not be produced if no alarms occurred during the last history period.

To have Citect create a history file for each history period even if no alarms occurred set [Device]AlwaysCreateHistory=1 in Citect.ini. This feature is OFF by default.

* NCR 15505 - StrToTime() function.

StrToTime() does not correctly check for invalid time strings.

* NCR 15521 - CTAPI ctFindFirst() query to tag database.

CTAPI has been enhanced so that the COMMENT field is now returned via CTAPI ctFindFirst()/ctFindNext() and may be accessed using ctGetProperty().

* NCR 15524 - New [CTAPI] parameters for performance tuning.

[CTAPI]CpuLoadCount and [CTAPI]CpuLoadSleepMS have been added to control the peak CPU usage of the Cicode functions that process CTAPI ctFindFirst(), Trend and Alarm requests.

Please refer to the readme for details.

* NCR 15526 - CTAPI ctFindFirst() query to Alarm and AlarmSummary database.

Queries to the Alarm or Alarm Summary databases now return a 'type' field via CTAPI ctFindFirst()/ctFindNext() that may be accessed using ctGetProperty() or the OLE-DB provider.

* NCR 15534 - "Save Compiled" option.

The "Save Compiled" option doesn't work, and attempting to run a recently restored project that was backed up with the Save Compiled option set will result in the project being re-compiled.

* NCR 15553 - Additional drivers.

The following drivers have been added to Citect: Kv, Sx, TinecNT, TineWIN, Yokgrn, Openbsi.

* NCR 15594 - IODeviceInfo() Function doesn't work.

When using the IODeviceInfo() function with an I/O Device Number, it returns an empty string.

* NCR 15595 - The DevPrev() function incorrectly returns a success.

The DevPrev() function does not return error code 294 when the start of an ASCII file is reached.

* NCR 15596 - Alarm summary list problem.

If the alarm summary length is less than the number of active alarms when the alarms are turned off, the acknowledgments don't work correctly.

* NCR 15597 - DevOpen() function with mode 8 incorrectly returns a success.

DevOpen() function with mode 8 does not return -1 when the device cannot be opened.

Only the first call to DevOpen() with mode 8 will return -1, after that calling DevOpen() again with any mode will return a valid handle.

* NCR 15604 - Project Editor crashes.

Project Editor crashes when trying to set the link field in the IO Devices form from FALSE to TRUE or vice versa. This only happens after the link field is changed and then scrolled. A dialogue box will appear and if the replace button is clicked Project Editor will crash.

* NCR 15605 - Citect crash when acting as a DDEServer.

Under heavy I/O Server load, Citect may crash after a few hours if acting as a DDEServer.


* NCR 15606 - "Too many Cicode Functions" error.

The maximum number of Cicode functions in a project has been increased from 2700 to 4500.

* NCR 15608 - TrnExportDDE() and TrnExportClip() truncate Tags.

The TrnExportDDE() and TrnExportClip() functions incorrectly truncate trend tag names to 10 characters when exporting to a file or program. The TrnExportDBF() function correctly truncates trend tags to 10 characters as required by dBase format restrictions.

* NCR 15610 - Alarm Property Disabled malfunction.

The Alarm Property.Disabled always disables the alarm regardless of whether you write 1 or 0. This has been fixed so that if AlarmTagName.Disabled = 1, the alarm is disabled and if AlarmTagName.Disabled = 0, the alarm is enabled.

* NCR 15611 - TCP/IP Network disconnection on Windows 2000.

Citect may hang when the network cable is disconnected, go to 100% CPU usage and never recover.


* NCR 15612 - Citect cursor fails to move.

The Citect cursor will fail to move from one object to the next object when [AnmCursor] MouseSnapToCursor is set to 1, and the cursor is between two objects that are placed very close to each other.

* NCR 15614 - Citect DDK VdbOpen() function enhanced.

The Citect Driver Developers Kit API function VdbOpen() function has been enhanced such that when the full path to the selected dBase file is not provided, the VdbOpen() function will generate a filtered memory image including all matching dBase files in the include path.

* NCR 15619 - Shutdown() mode 4 does not reboot Windows NT.

When Citect is running under Windows NT, Shutdown() mode 4 fails to reboot the computer.

Citect must be in your Startup folder if it is to start automatically after a reboot.

In Windows NT the user must have SE_SHUTDOWN_NAME privilege in order to shutdown the PC.

* NCR 15620 - SSEVEN Driver.

The SSEVEN driver counts a tag defined as Unsigned Int as two points. This is incorrect, as it should have count only point per tag.

* NCR 15622 - Periodic Event Trend data does not export.

The Copy to Clipboard, Copy to File, and Print Trend buttons on the trend templates do not work for Periodic Event type trends.

* NCR 15623 - Memory leak in Trend, SPC charts.

When moving the cursor with the mouse or buttons on the Trend and SPC charts of the Example project a small memory leak may occur.

* NCR 15624 - StrToTime() returns incorrect value.

StrToTime() does not return the correct value for 12:00 am unless you put a space before the am or include the seconds.

* NCR 15626 - Periodic saving of cached I/O Device data may cause a crash on an I/O Server.

When I/O Devices have caches enabled and periodic saving of the caches is also enabled, Citect may crash at runtime. This problem only affects Citect 5.30 Revision 0. Typically caches are enabled for remote devices but not for non-remote devices unless for performance considerations. An I/O Device cache is enabled by setting the "Cache" field to True in the extended I/O Device form. By default, periodic cache saving is enabled for cached devices.

* NCR 15629 - CTAPI time out period is not long enough for query command.

The current CTAPI query timeout period of 5 minutes is insufficient for large or complex alarm or trend history queries. The time out period can now be controlled by the parameter [CTAPI] QueryTimeout, which specifies the timeout in seconds.

* NCR 15634 - CTAPI trend history query returns incorrect data.

If no valid trend tags are specified in a trend history query CTAPI incorrectly returns data for the previous query.

* NCR 15645 - Goto button on compile error form may not work.

Pressing the Goto button on Project Editor's "Compile Errors" form where the Page containing the error has been saved with a name longer than 8 characters will not open the page as expected within Graphics Builder.

* NCR 15646 - I/O Server stops dialing remote I/O Devices.

The I/O Server will sometimes stop using modems in the modem pool after Windows reports a DISCONNECTED UNAVAILABLE error. Over time this could cause the I/O Server to find all modems are in use (when none actually are) and stop dialing devices.

* NCR 15647 - Remote I/O and Windows 2000.

A project using remote I/O functionality may crash at startup on Windows 2000.

* NCR 15657 - ActiveX control cannot get focus.

If an ActiveX control which has the 'Enabled' property set is inserted through Graphics Builder, then at runtime this ActiveX control may not get the input focus completely.

* NCR 15659 - AlarmSumGet() problem.

AlarmSumGet(index,"Desc") and AlarmSumGet(index,"State") returns the current value of the alarm and not the summary value. In order to get the summary value use "SumDesc" and "SumState" instead of "Desc" and "State".

* NCR 15660 - Citect may crash on startup.

Citect may crash on startup after it is automatically started as part of the startup group.

* NCR 15661 - The Memory PLC doesn't work with large addresses.

When a Citect Memory PLC is used with tags with very high addresses for some protocols, the tags may not work at runtime. For example the Memory PLC will not correctly read or write to Modbus address 465000 at runtime. The problem occurs at runtime with tags that are compiled to large address values.

* NCR 15662 - [Intl]sDecimal and [Intl]bDecimal Parameters don't give expected results.

If you set [Intl]sDecimal=, and [Intl]bDecimal=0, you get a '.' as decimal separator instead of the ',' as expected. This has been fixed so that when the [Intl]bDecimal is set to 1 or is left blank, Citect will use the Windows default for the Number Format Decimal Separator, regardless of what [Intl]sDecimal is set to. When [Intl]bDecimal is set to 0, Citect will use the value stored in [Intl]sDecimal as the Number Format Decimal Separator. This is in line with the descriptions given for [Intl]sDecimal and [Intl]bDecimal in the Citect Help.

* NCR 15665 - FormListBox() sets incorrect values.

If you don't select anything in a listbox on a Cicode form, the buffer value from the previously selected listbox will be returned.

* NCR 15666 - Cicode Editor re-compile problems.

The Cicode Editor doesn't re-compile after a compile has been cancelled.

* NCR 15669 - Device and history file problem.

A device will still create history files even if the time and period are not specified.

The following parameter has been added


CreateHistoryFiles = 1 will work as in previous versions, i.e history file will be created.

CreateHistoryFiles = 0 History files will not be created if both time and period are not specified in the device.

The default value will be 1.

* NCR 15670 - Input cursor does not always appear when a popup window is displayed.

A popup window under some circumstances may not have a visible cursor. This means that if the user does not have a mouse the controls within the window cannot be accessed.

* NCR 15671 - Objects in disabled dynamic group not hidden correctly.

Objects within a dynamic group with a Disable Style Of Hidden will be visible even if disabled when the graphics page is first displayed.

* NCR 15673 - Graphics Builder may crash when saving a page.

Graphics Builder may crash while saving a page after adding several characters to a genie form.