Citect for Windows

Release Notification

Version 5.40 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 3347 - Pen Select Dialog Box For Trends.

When you check (or uncheck) the 'Select from comments" check box in the 'Pen Select' dialog box for trends, the corresponding combo box does not change from names to comments, or vice-versa, until you click on OK then reopen the dialog box.

* NCR 12330 - Mouse wheel in Graphics Builder and Project Editor doesn't work.

When mouse wheel driver support is disabled, you can't use the wheel to scroll up and down in Graphics Builder and Project Editor forms.

* NCR 12345 - Cursor keys do not work if the mouse is over a button or other input control.

If the mouse is over an input control, using the cursor keys to move the cursor results in the cursor snapping back to the mouse.

* NCR 14576 - ASEA Driver.

The ASEA Driver cannot write to the digital data type DATD.

* NCR 14766 - DDEDRV Driver.

DDEDRV 2.00.01 now supports Include projects.

NCR 14716 (v5.21 SpkG) enhanced the DDK VdbOpen routine to read dbf's in the include path. Code added to DDEDRV driver to use the enhancement if user sets [DDEDRV]UseIncludeProjects=1 (default=0).

* NCR 14996 - Citect Internet Display Client File Download Problem.

An Internet Display Client will unnecessarily download a file which has not changed if the file does not exist in the Citect project folder but does exist in the system temporary internet files folder.

* NCR 15019 - Example Project CiMeterX.

Some new properties have been added to the CiMeterX control.

Please refer to the CiMeterX's HELP file for details.

* NCR 15177 - ActiveX Controls pasting problem.

Pasting an instance of the control sometimes doesn't show up all the properties that the original instance of the control has.

* NCR 15278 - TrnSetTime() is off by 1 second on periodic SPC trends.

When you call TrnSetTime() on a periodic SPC trend, the end time will be set to one second less than the requested time.

* NCR 15287 - Accessing a trend without required privileges.

Attempting to access a trend that is out of your area or above your privilege level causes an undesired hardware alarm.

* NCR 15288 - The function TrnDelete() does not clear trend data off the screen.

When you call the function TrnDelete() it removes all pens from the required AN, but it leaves all trend data on the screen.

* NCR 15296 - CTAPI ctFindFirst() query to alarm database.

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

* NCR 15299 - %PAGE% and %AN% substitution problem.

When upgrading project from version 5.10 to 5.21 onwards, if the project has a genie and it has a substitution called %Page% or %An% then when it's upgraded there will be a problem.

The problem is that when you paste this genie to a page or it has been pasted previously, the name of the current page automatically gets substituted into the field and the property can not be modified, and as for the %An% the An number will automatically get substituted into the field.

* NCR 15332 - The function TrnDelHistory() can cause problems if used incorrectly.

Calling TrnDelHistory() on a current trend history file should fail, but it doesn't. The file is deleted from the list of history files for that trend. Any data that should be written to that file will be lost, and no data can be read from the file.

* NCR 15378 - Trend File Period equal to zero problem.

The trend files for a Tag with a File Period of zero will be very small initially, but as trend data is collected they will grow to a very large size. Citect shouldn't allow a trend Tag to have a file period equal to zero.

* NCR 15395 - Citect Display Client crash.

When displaying alarms by priority on a Display Client, disabling and then enabling an alarm may cause Citect to crash.

* NCR 15416 - Possible crash on trend Server shutdown.

Shutting down a trend server while you are viewing a trend page may result in a crash. It is more likely to crash if you have more then one trend page open by using the function WinNew.

* NCR 15449 - Archiving Initialisation Error.

During a trend redundancy transfer, an Archiving Initialisation Failure occurs if the trend data are located in the same network directory on the Primary and Standby Trend Server.

* NCR 15478 - The Parameter [Trend] RangeCheck Does Not Function Correctly.

When you set the [Trend] RangeCheck parameter to 1 (which is the default) it is supposed to replace any values out of the range with <NA>, but instead it always clamps the value to the maximum or minimum of the range.

* NCR 15483 - Variable Tags form enhancement.

Tag Name input field now displays all 32 characters.

* NCR 15525 - Connectivity Licence.

The Citect software no longer adds two free Connectivity licences to the number found in the hardware key.

* NCR 15569 - Printing or exporting trends does not follow the display modes on the screen.

For printing trend data, the display modes are always "Average" in the “Condense" mode and "Step" in the "Stretch" mode.

For exporting trend data, the display modes are always "Average" in the “Condense" mode and "Raw Samples" in the "Stretch" mode.

* NCR 15601 - The Cicode function AreaCheck() returns invalid values.

The Cicode function AreaCheck() returns invalid numbers while it is supposed to return 1 or 0.

* NCR 15633 - CTAPI query for event trend data using ctFindFirst().

The 'period' argument specified as part of the 'szTableName' argument for an event trend query using the CTAPI call ctFindFirst() is now ignored. This behaviour is by design and consistent with the treatment of "Number of events per sample" in the Event Trend template. Refer to article Q3172 for more information.

* NCR 15654 - TrendToolTip for the trend pen on a pop up trend page is missing.

The “Standard” template library of the Include project has been modified. TrendToolTip has been added to PopTrend templates for all resolutions (VGA, SVGA, XGA and SXGA) with / without title bars.

* NCR 15690 - TrnAddHistory()/TrnDelHistory() do not work for Floating Point trend storage.

TrnAddHistory() and TrnDelHistory() do not work for the "Floating Point (8-byte samples)" storage method.

* NCR 15700 - Long File Name trend files problem.

If the first 8 characters of a trend tag name that is longer than 8 characters are identical to another trend tag name that is exactly 8 characters long, both trends will use the same 8 character filename trend history files, causing trend data to be lost.

* NCR 15703 – SQLGetField() function truncates fields.

When using the SQLGetField() function, the fields of Decimal and Numeric data types are truncated to a string of length 6.

* NCR 15704 - EventNo argument of TrnEventGetTable().

The EventNo argument of the function TrnEventGetTable() is not working properly. When you set EventNo to zero the function will fail to work, but it will not return an error. It is supposed to use the latest event number as the end point for requesting the trend data. This is also a problem for the function TrnEventGetTableMS().

* NCR 15723 – Popup trends.

The timebase for popup trends does not display values in milliseconds. The value displayed for the timebase of a popup trend is always rounded to the nearest second.

* NCR 15725 - Citect does not fail over to a standby I/O Server.

If the active I/O Server has hung (by, for example, the display of an error dialog) clients do not fail over to an available standby I/O Server.

* NCR 15726 - Internet Display Client fails to display graphics pages.

If a download of a graphics page fails due to insufficient disk space on an Internet Display Client no subsequent attempts will be made to download the graphics page, even when sufficient disk space becomes available.

* NCR 15731 - Assertion Failure.

It is possible for the message "Assertion Failed", followed by other information, to appear in a released product. This is only supposed to happen in an alpha or beta product.

* NCR 15734 – Gap filling in trends.

A new parameter [Trend] GapFillSamples has been added. This parameter allows you to fill gaps in trend data based on number of samples missed. All gaps smaller than the value of this parameter will be filled with values calculated by Citect. Gaps larger than or equal to the value of this parameter will not be filled.

* NCR 15744 - Citect can hang when shutting down during Trend Redundancy transfers.

This problem only occurs if you shutdown before Trend Redundancy requests have stopped and one or more of the [TREND] CachesSize0..8 parameters are set to low values (below 50). Even then it may not occur consistently. The same situation may also cause a 'Pure Virtual Function Call' message box to appear.

* NCR 15746 - The Express Communications Wizard.

The Express Communications Wizard entry for the Colby Demag, Sortec Sort Controller, via TCP/IP does not fill in the appropriate forms in project editor.

* NCR 15749 - New driver.

Melscqna driver has been added to Citect.

* NCR 15769 - CTAPI ctFindFirst() queries to alarm and trend databases.

CTAPI has been enhanced so that queries to alarm and trend databases will now create their temporary files in the [DATA] path instead of the [RUN] path.

* NCR 15772 - Driver StatusUnit call for primary units.

Added parameter [IOServer]WatchDogPrimary = 1 will enable status checking for primary units every watch dog cycle. The default value for this parameter is 0.

* NCR 15781 - Driver Configuration Utilities.

Driver configuration utilities are now installed with Citect.

* NCR 15784 – TrnExportClip() Does Not Work For Event Trends.

The header is copied to the clipboard, but not any samples. A hardware alarm also occurs in version 5.31.

* NCR 15795 - %N driver operator.

This operator gets the wrong count in non-blocking situations and the use of it may repeat requests in a blocking situation.

* NCR 15796 - Citect compiler crash.

The Citect compiler crashes if Citect Runtime is shut down with either the Kernel TrendQueues or Kernel BuffPool pages left open.

* NCR 15797 - The Parameter [Trend] GapFillTime Is Not Working Correctly.

You can not set the parameter to a value lower than 5000.

* NCR 15829 - Problem creating monthly or yearly trend history files.

Selecting "1st" for the file period in the trend tag form in Project Editor causes Citect Runtime to attempt to create a 4GB file, possibly filling the hard disk.

* NCR 15832 - "Incompatible Server Version" hardware alarm.

An "Incompatible Server Version" hardware alarm sometimes occurs when the trend client and server are on separate machines. This can then cause the connection between the client and the server to be dropped.

* NCR 15833 - Display of ACQ_CB table in the kernel may cause Citect to crash.

If you go into the kernel at runtime and enter "page table" and then scroll through the tables until you get to ACQ_CB, Citect may crash. Citect may also crash if you enter "page table ACQ_CB".

* NCR 15834 - New Modes Have Been Added For the [Trend] RangeCheck parameter.

Modes 2 and 3 have been added. For 'Scaled (2-byte samples)' storage method trends, mode 2 works exactly the same as mode 0, and mode 3 works exactly the same as mode 1. For 'Floating Point (8-byte samples)' storage method trends, both mode 2 and 3 stop any range checking from occurring, allowing the actual out of range values to be stored.

* NCR 15838 - DspInfo*() functions and Cicode Objects.

The DspInfo*() and InfoForm() functions do not work on a Cicode Object.

* NCR 15839 - Multiple writes may occur with some drivers.

On a networked Citect project, a Citect Client may re-request writes if a configured connection to an IO Server is not available (e.g. the IO Server is shut down).

* NCR 15840 - Upgrade project problem.

This relates to Citect Knowledge Base article Q2962, please refer to this article for more details.

The problem is that when specifying a genie substitution as follow %PAGE%_%NUMBER% , it will fail to append NUMBER, as the result after the changes it will look something like %PAGESUBT%_% and the correct one should be %PAGESUBT%_%NUMBER%.

* NCR 15843 – ICMP.DLL naming conflict.

There is a naming conflict between the ICMP.DLL driver which was first released in Citect 5.31 and a Windows 2000 system file also named ICMP.DLL. The Citect ICMP.DLL driver has been renamed to CTICMP.DLL.

* NCR 15864 - FormNumPad() problem.

FormNumPad() will not return a default value if the function is accidently called twice from a touch command on a numeric display object.

* NCR 15871 - Unable to select edit field with keyboard cursor.

When using the cursor keys to navigate between the entry fields of a Form, the cursor may jump over some fields and it may not be possible to select them without using the mouse.

* NCR 15872 – TrnAddHistory() does not work with files that are read-only.

The function returns success but the data from the file cannot be displayed until the file is changed to read-write access.

* NCR 15873 - Genie "Disable on insufficient area or privilege" changes not updating on pages.

The problem lies in the ‘disable on insufficient area or privilege’ checkbox on the 'Disable' tab of an object's properties. If you first set this in your genie, paste the genie on a page, then take away this option, you will see that the old instances still have this option set.

* NCR 15878 - 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 15881 - Rounding of Long Data Types in CTAPI Functions.

Reading Long data types via the Citect OPC Server or using the CTAPI functions CtListData() or CtPointToStr() with dwMode FMT_NO_FORMAT will incorrectly round to 7 significant figures.

* NCR 15884 - The automatic starting of WinRT for use with Citect cause the problems for other PLC software.

Since WinRT is started automatically on boot rather than when Citect is launched, it will not allow another software to access to the same device.

Citect has been enhanced to stop the WinRT when Citect is shutdown, and re-start WinRT when Citect is launched.

* NCR 15899 - ActiveX object privilege feature is not working.

Citect runtime ignores the privilege setting of an ActiveX object that is configured in Graphics Builder.

* NCR 15901 - Page select dropdown list.

If [General] LongFileName is set to 0 in Citect.ini the Page Select drop down list displays duplicate entries for any page which has a name longer than 8 characters.

* NCR 15902 - WinNewAt() placing window at origin.

When attempting to place any part of a new window created with WinNewAt() off the bottom or right side of the display, the window will re-position itself back to the origin when [Page]DynamicSizing is set to 0 in the Citect INI.

* NCR 15903 - WinNewAt() or Maximizing a Window creates an invalid title bar.

With the following INI settings: [Page]DynamicSizing=0 and [Animator]FullScreen=1 a window can change to have an invalid title bar if

(a) Any part of a window without a Title bar is moved off the bottom or right of the display MINIMIZED then MAXIMIZED or

(b) A new window is created with WinNewAt() with a mode of 16 - "No Caption" initially placed with any part of the window off the bottom or right of the display.

* NCR 15905 - PagePrev() and PageNext() Cicode functions may not work.

The PageNext() or PagePrev() functions will fail to work if the names of the pages you are attempting to display are longer than 16 characters.

* NCR 15907 - Cached I/O devices.

Cache data should not be saved to disk if the cache timeout for an I/O device is less than the value of the [IOServer]IOSaveTime parameter.

* NCR 15921 - ActiveX control object visibility feature is not working properly.

When an ActiveX control is displaying a graphics page at runtime, using visibility control can bring the ActiveX control from "Hidden" to "Visible" but not from "Visible" to "Hidden".

* NCR 15922 - Citect as an ODBC server displays "Error Invalid Lock".

When Citect is being used as an ODBC server with ODBC clients this error may occur after many tag reads. The time taken for this error dialog to surface is directly related to how often the reads are done.

* NCR 15923 - Citect Internet server.

Shutting down Citect when running as an internet server causes a crash.

* NCR 15926 - Genie update problem.

When changing a genie property from either Multi-state Array Animated type symbol or Multi-state Array Numeric String type text to On/off type symbol or text, the page which has the genie stays the same.

* NCR 15927 - Compile error for a Japanese character.

Compiling a project with a Japanese character in the alarm description field will produce compile errors.

* NCR 15928 - [CTEDIT] RUN parameter may have trailing slash.

If compiling/running a project from Citect Explorer or Citect Graphic Builder, the [CTEDIT] run parameter will have a trailing slash added. This may cause problems during Citect runtime.

* NCR 15968 - Area checkbox does not work.

The Area checkboxes in the Graphics Builder property pages do not behave correctly and do not set the Area of the keyboard commands/objects appropriately.

* NCR 15971 - CTAPI returns error on the alarm/alarmsummary query.

When an alarm/alarmsummary query is made on a Citect server, you will get an error from CTAPI and no data is returned.

* NCR 15975 - New Alarm parameters added.

Two new alarm parameters have been added to control the order in which the alarms appear in the alarm list. The details are as follows:


Sort=0 (default) alarms appear in the order they are acknowledged as in previous versions

Sort=1 enable sorting of alarms by their ON time

SortMode=0 (default) descending, which shows the most recent alarm at the top

SortMode=1 ascending, which shows the oldest alarm at the top

* NCR 15999 - CiMeterX causes crash in Graphics Builder.

Graphics Builder may crash when closing an unsaved page containing the CiMeterX.TechMeter ActiveX object.

* NCR 16016 - TrendDspCursorComment().

A new function TrendDspCursorComment() has been added to the Include project. This function returns the trend comment for the current pen.

* NCR 16045 – Tab order of Express Wizard pages.

The tab order on the I/O Server and I/O Devices pages of the Express Wizard does not work correctly.

If a new I/O Server or I/O Device name is used, moving to the next button using the tab key makes the "Use an existing" button active, in which case a new I/O Server or I/O Device is not created.

* NCR 16018 - Periodic SPC trends can't scroll into historical mode.

Whenever you try to scroll to historical data on a periodic SPC trend, the display quickly jumps back into real-time mode. This stops you from viewing any data on a periodic SPC trend other than the most recent page of data.

* NCR 16019 - Periodic Trends may scroll into the future.

When scrolling to real-time, a periodic trend may go a few samples or seconds into the future. This problem will correct itself the next time the display is refreshed.

* NCR 16020 - TrnAddHistory() and TrnDelHistory() may return an invalid error.

This will occur when you try to add or delete current history files of a trend. Error number 348 is returned, which is not valid.

* NCR 16021 - TrnDelHistory() is case sensitive.

TrnDelHistory() with fail if you do not use the same case in the file path as you did in TrnAddHistory().

* NCR 16024 - TrnGetTable() can return incorrect values.

If the display period is greater than the sample period, TrnGetTable() can return the wrong values. The requested time gets rounded down to the nearest display period, which may cause samples to be ignored, depending on the requested time. This would cause all the values to be at incorrect offsets in the returned array.

* NCR 16025 - TrnPrint() function error.

TrnPrint() truncates the beginning of a trend plot.

* NCR 16059 – RTF File incompatibility.

The Citect compiler may incorrectly compile RTF report format files created by some word processors.

Some tag variables may be printed incorrectly or not at all. The report format files created by Microsoft WordPad in Windows 98 and Windows 2000 are known to cause this problem.

* NCR 16068 - [v531] The ? n? super genie substitutions may lose precision for large numbers.

When ? n? super genie substitutions are used for Input commands on Super Genie pages, they will lose precision for large numbers (16777217 and above) if the data type is not specified.

* NCR 16111 – SQLGetField() may truncate LONG values.

When using SQLGetField() function, the values in 'LONG' data type fields are truncated to a string of length 10 if the values are -1,000,000,000 or below.

* NCR 16116 – SQLGetField() may truncate FLOAT or REAL values.

When using the SQLGetField() function, the data in a field of 'FLOAT' or 'REAL' data type is truncated to maximum length of 10.

* NCR 16145 - Citect may run out of Kernel queues.

The current default number of Kernel Queues is 1000, which may be insufficient in some circumstances. The default number has been increased to 5000.

* NCR 16146 - Network sessions over 1024 will not work.

If setting the [LAN] Sessions parameter in Citect.ini to a number over 1024, there are still only 1024 sessions that can be used.

* NCR 16195 - "Cicode Stack Overflow".

A "Cicode Stack Overflow" will result if using a global variable as a loop control counter.

* NCR 16197 - LanguageFileTranslate() fails with large files.

When translating a file larger than approximately 32Kb in size, the LanguageFileTranslate() function will truncate the output file size to less than 32Kb.

* NCR 16218 - Trend data is not flushed to monthly trend history files.

If a trend has more than 10 monthly history files the trend data is not flushed to the files.

* NCR 16222 - LanguageFileTranslate() returns invalid values.

The Cicode function LanguageFileTranslate() returns values outside of the valid range of 1..0.

* NCR 16247 – SPCSpecLimitSet() fails if redundant trend server is down.

If either redundant trend server goes off-line, the Cicode function SPCSpecLimitSet() will not set the limit on any servers or clients until the off-line trend server comes back on-line.

* NCR 16251 – SPCSpecLimitSet() memory leak.

The Cicode function SPCSpecLimitSet() will create a new sleeping thread after every time it is executed, and that thread will not be activated again. This may result in a memory leak.