Citect for Windows

Release Notification

Version 5.21 Rev. 0

General Description For This Release

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.)

Fixed Problems and Enhancements

NCR 4225 - [Trend]CopyFilesMessage parameter added.

A new parameter, [Trend] CopyFilesMessage, has been added to control copying of trend data between redundant Trend Servers. If the projects being run by both Trends Servers are not identical, the redundant copy may fail, displaying a warning message. Setting the parameter to 0 will disable the warning messages, and allow the copy to continue regardless.

NCR 6924 - Manager ACK Hardware Alarm

Manager Nodes cannot ACK hardware alarms.

NCR 7569 - Super Genie Syntax in Comments

Super Genies syntax is being converted to tags in comments and keyboard logs.

NCR 7701 - Mentor Stats Special Counters.

Stats Special counters have been added to allow debugging / information gathering.

NCR 8048 - Database device reindexing

An index should be created for database devices which are configured with an index if the index file does not exist.

NCR 8179 - PLC-2 Drivers

PLC-2 drivers now treats BCD as 3 digits and LONGBCD as 6 digits.

NCR 9863 - GrpOpen function has a Mode 2

The UsrGrpOpen function has a new option to create a new group automatically if the group to be opened doesn't exist.

NCR 9942 - Alarm Formatting

There is no format field for the alarm priority.

NCR 9988 - Microd driver

Microd driver doesn't support MC1100 model due to the 1100 model having a maximum request size of 10 bytes, whereas all other models have a maximum request size of 32 bytes.

NCR 10056 - PROFIBD driver

The PROFIBD driver does not handle 1.5Mbps.

NCR 10117 - Setup Wizard malfunction

The 'Standby Server Name' option is always empty in a Display or Manager Client setup.

NCR 10276 - Fill level is calculated incorrectly

Fill level on dynamic objects do not take into account the line thickness of the object when  determining the fill level.

NCR 10342 - Printing Event trends malfunction

Printing Trend Event page will now have a correct event number along the X-axis.

NCR 10728 - Default printer

If multiple printers are setup to use the same port, and the port is used in the Devices form, then the default printer may not be correctly selected.

NCR 10743 - Debug information from ComX

It is now possible to log data sent from and received by the ComX driver.

NCR 10748 - Modbus initialisation address

The PLC address that the modbus driver uses at initialisation can now be set in the citect.ini file.

NCR 10781 - Trend history files

The number of trend history files is limited to 135 but should be 270.

NCR 10786 - Message logging to a group

When message logging to a group, consisting of multiple devices, the failure of one device to write may affect the other devices.

NCR 10792 - Modbus CRC ( A communications error test)

The CRC can now be disabled via a Citect.ini setting.

NCR 10888 - AlarmSetThreshold()

AlarmSetThreshold() cannot set a blank threshold value. When using a blank value to set an alarm threshold, Citect will now make the corresponding field for the tag in the Alarms form blank.

NCR 10905 - PSC Driver

If the PSC driver does not have a TCP/IP Port Number specified, the driver won't initiate properly.

NCR 11043 - Problem with ICN background variables

Some of the data types cannot be read from or written to.


The MELSCNET driver does not support more than 32 ports.

NCR 11207 - SBUS

An illegal command is reported by Citect, and the system crashes.

NCR 11550 - TimeSet() and StrtoDate()

TimeSet() Cicode function lets users set invalid time resulting in the time being set to 1970. To fix this TimeSet() will not accept any time before 1980 or after 2037 and will return 274 (invalid argument).  StrtoDate() will also return 274 (Invalid argument) when you try call it with a year after 2037.

NCR 11709 - WinPrint

Values other than 0,0 for the xScale(), yScale() parameters in WinPrint are inconsistent in their effect.

NCR 11763 - Accumulator values and UpdateTime

Accumulator values are incorrect when [Accumulator]UpdateTime is greater than [Accumulator]WatchTime. Accumulator values might be overwritten if a PLC read occurred before the UpdateTime had expired.

NCR 11798 - Genie forms may stop working

After saving a symbol or genie into a library all genie forms of genies from that library will stop working. The form may display incorrect information or may not be displayed when the genie is double clicked.

NCR 11818 - Compile error with alarm properties

When using alarm properties, eg. <alarm tag>.On, a compile error occurs if the alarm tag is the full 16 characters.

NCR 11828 - Invalid times and periods do not cause compile error

Compile errors may not occur if the time is incorrectly specified in the Time, Period or Sample Period field of a Reports, Events, Trend Tags, SPC Trend Tags, or Devices form causing undesirable behaviour in Citect.

NCR 11848 - TrnExportXXX

New mode, mode 4 has been added to the TrnExportXXX functions to ignore invalid or gated values.

NCR 11862 - Hardware Requirements

Minimum and recommended hardware requirements have been increased. See the Upgrade Information topic in the online help for details.

NCR 11878 - Unusually high CPU usage when using dynamic groups

The CPU usage on a page can be very high under some circumstances where dynamic groups are used.

NCR 11880 - Incorrect Filling with groups

Groups with Fill Level with background colour of transparent gives the same results as Fill Level with background colour of white. (i.e. the transparent fills as white).

NCR 11882 - FileFind() behaves inconsistently

The FileFind() function occasionally found no files in a directory when files were actually  there. This happened when FileFind() was called to find the next file. Eg. FileFind("",0).

NCR 11887 - OPC Client driver

Boards form special options must be blank when running a standalone system.

NCR 11993 - Blank parameters in Citect.ini

Citect Explorer will generate an error if Citect.ini path parameters are there, but blank.

NCR 12016 - DspGetAnFromPoint() enhancement

DspGetAnFromPoint() can now return all AN’s at a given point, and is no longer limitted by the Z order of the AN’s.

NCR 12023 - Update Pages in Graphics Builder

A new option on the options dialog now exists in graphics builder to update all pages when doing an  update pages.

NCR 12069 - Internet Client help button

When you press the Internet Client help button you get the error, 'Windows help: Cannot find the \Internet Client.HLP file. Do you want to find this file for yourself?'

NCR 12120 - Trend Print

Trend Printing does not work if there are gated values in the plot.

NCR 12170 - Training project symbols

The "brewery" project symbols and Super Genies used in the Citect training course have been added to the include project.

NCR 12173 - TrendSelectPen combo box width

Combo box field width has been extended to show all available characters.

NCR 12211 - IODevice Offline

You may get an incorrect hardware alarm saying IODevice offline on startup of Standalone

I/O Server.

NCR 12219 - Graphics Editor

The Menu item Edit\Properties is embossed when a group is selected.

NCR 12225 - Bitmap editor not displayed

If a bitmap is placed on the far right side or bottom of the screen, when you hit F9 to edit it, the bitmap editor will not appear.

NCR 12239 - SquareD Driver

SquareD Driver gives an incorrect error when in polled mode.

NCR 12269 - Security on groups

If you have a few different security levels (with disable on insufficient area or privilege enabled ) on the same page, and you switch user between users with different security levels, the old objects are still visible (although they cannot be accessed).


TITCPIP driver does not support status words.

NCR 12311 - New [GENERAL] ShowDriverError INI parameter

A new INI parameter has been added that controls whether driver error message dialogs are displayed.

[GENERAL] ShowDriverError

Allowable Values

  1. Do not display error dialog. This is the default.
  2. Display error dialog.

NCR 12350 - Disabled Alarms

AlarmAck() or AlarmClear() functions won’t work on a disabled alarm. AlarmAck() and  AlarmClear() Cicode functions now return an error code when used on disabled alarms.

NCR 12351 - Disabled Alarms

Cannot set a threshold on a disabled alarm. The AlarmSetThreshold() function will now permit setting a threshold on a disabled alarm.

NCR 12355 - Remote Debugging

Remote debugging is now supported on both Windows NT and Windows 95/98 via TCP/IP

NCR 12356 - Shared Files

The OPC dlls are being installed as shared components. Only OPCPROXY should be shared.

NCR 12359 - [INTERNET]Refresh parameter

When set to 1 and Citect is shutdown, the cache files are not refreshed on the next startup, but they are refreshed on the 2nd startup.

NCR 12367 - ActiveX control crashes

ActiveX controls may cause a stack overflow in Citect.

NCR 12381 - AlarmSumCommit()

Sometimes calling AlarmSumCommit() will give strange return values or generate an Invalid argument passed hardware alarm, even though the alarm entries were succesfully committed to the summary log device.

NCR 12389 - MailRead

MailRead may cause a GPF if you read two mail messages greater than 256 characters.

NCR 12398 - FormNumPad()

The FormNumPad() function should not combine the decimal point mode with the AM/PM


NCR 12409 - Tag Import

Tag Import bases the number of columns on the first row found in the external data source, instead of the maximum of any row in the data source.

NCR 12420 - Tag Import/Export

Linked tags are not being deleted in Citect even though they have been deleted in the external data source.

NCR 12421 - Tag Import/Export Token Parsing

The Tag Import/Export/Link filtering grammar now supports token parsing. Any text within a set of curly braces {} is treated as a token, and can be referenced by $n, where n is the number of the token within that filter.

NCR 12426 - Modbus driver

The Modbus driver over TCPIP does not re-establish comms after a cable disconnection.

NCR 12438 - Internet Display Client

The client setup menu item of Internet Display Client (IDC) does not work properly. When typing in a new IP address when the client setup command is selected, IDC will restart but remain connected to the previously connected Internet Server, instead of the new one.

NCR 12454 - IODeviceControl() and Remote I/O Devices

Remote I/O Devices told to dial using IODeviceControl() with a priority of 'Connect Now' will not always behave as expected. Under certain conditions, the device will not dial before other devices

with lower priorities.

NCR 12457 - Graphics Builder crash

Graphics Builder crashes when opening pages which contain String Objects where the expression field contains 64 characters or more.

NCR 12462 - Disabling Remote I/O Device dialing

A Remote I/O Device removed from the dial schedule with the IODeviceControl() function is put back on the schedule if IODeviceControl() is used to dial the device. The device should not go back on the schedule until it is explicitly done with IODeviceControl().

NCR 12467 - FTP Server

A web browser cannot connect to the FTP server if the browser is using a proxy. This is because proxy servers only support passive FTP, which was not implemented in our FTP server. Passive support has been added.

NCR 12473 - Genie Forms

An auto tag refresh does not occur for genie forms which source from variable DBF.

NCR 12479 - Updating keys in Windows 98

Unable to update keys under some circumstances in Windows 98.

NCR 12480 - Page Loading

New parameter to control behaviour of page loading. When a new page is opened,   and Fast Runtime Display is enabled, Citect checks to see whether the CTF file is

newer than the CTG file. This behaviour can now be controlled by the   [Animator]UseCTGIfNewer parameter.

NCR 12481 - MENTOR driver

The MENTOR driver reports 'device not responding' when a tag address is out of range.

NCR 12482 - Tag Linking

When Tag Linking, the Automatic refresh button has no effect i.e. behaviour is always TRUE no matter how the button is set, and recompiles are often done needlessly, particularly if the external data source was not a file.

NCR 12484 - Goto Object dialog

If you attempt to open the properties of a page, template or super genie through the goto object dialog you get the following error 'Citect Graphics Builder - Cannot find object An'.

NCR 12493 - Tag Import/Export driver list

All drivers in the tagdriv.ini file should appear in the dropdown box, even if no format file exists for them.

NCR 12497 - Dynamic Group input error in Graphics Builder

A dynamic group that has an input\touch or input\keyboard command that is part of a template,  symbol, or Genie, will lose its properties. Instead an old page keyboard command will be created within the group when the template\symbol\Genie is put on a page.

NCR 12498 - Trend command field

The Trend command field can now be manually turned on to allow modification for older projects.

NCR 12503 - _ObjectCallMethod() Fails

_ObjectCallMethod() fails if the method is passed parameters by reference.

NCR 12504 - Message Box doesn't fit certain strings

The Message function occasionally wraps text strings to a new line in the Message Box. It doesn’t handle upper case text properly and therefore the box doesn’t resize accordingly.

NCR 12507 - Internet Server Setup

Computer Setup Wizard has been enhanced to include Internet Server setup options.

NCR 12513 - Incremental Compile

Incremental compile does not work for SPC tags. If you add SPC tags or modify an existing tag, the incremental compile will not compile the database correctly

NCR 12529 - Corrupted Genies

Genies corrupted on update pages. Unwanted information can be left in objects during an upgrade which can cause tag not found errors.

NCR 12532 - Trend display future times

TrendSetTime() and TrendSetDate() Cicode functions allow the user to enter a time in the future which  stops trend displays from updating.

NCR 12543 - Digital arrays read incorrectly

Digital arrays which span a multiple of the protocol blocking constant will not read correctly.

NCR 12545 - General Stack Overflow error message

When using AlarmAck(), AlarmClear(), AlarmEnable(), and AlarmDisable() Cicode functions with modes 2 or 3 (category and priority modes) you will get an error message after calling these functions a number of times.

NCR 12548 - CtApi and OPC ignore UnitType when blocking

When you use CtApi list or point blocking functions or are using Citect as an OPC server, incorrect results will occur. Problems will occur when points have the same Citect raw type and address but have different unit types. Points like this are incorrectly blocked with both points reading the same as the first one.

NCR 12552 - ENTER key may stop working for buttons

When using a button to display a new page, the ENTER key may not work on buttons on the new page.

NCR 12554 - ServerInfo()

ServerInfo("Client",3) now returns the fullpath of the file Citect.ini regardless of where it is, including the Windows directory.

NCR 12555 - Project crash on Startup

Citect runtime crashes on startup when the project contains more than 55 units.

NCR 12559 - InfoForm()

New mode added for InfoForm() function. InfoForm() now has a mode parameter which disables the write button if set to 1.

NCR 12560 - TrendSetTime()

Problem with TrendSetTime when using 12 hour time and the time is set to 12 am.

NCR 12563 - Mitsubishi MXChange CDE server

Importing or linking tags from a Mitsubishi MXChange CDE server causes the type to be INTEGER instead of INT.

NCR 12564 - Tag Import/Export format files

Tag Import/Export format files with tabs in them don't work in Windows 95 or 98. Tabs must be removed from all format files.

NCR 12583 - 'Group not found' compile error

You will get a 'Group not found' compile error for groups in the groups database which are after a group record with an association of 0..255.

NCR 12584 - Graphics Builder upgrade error

An incorrect error, 'Cannot write to <filename>. Version mismatch [4 instead of 6]', may occur when upgrading projects from earlier versions. The number 4 may differ depending on which version you are upgrading from.

NCR 12593 - ActiveX methods

ActiveX controls have a problem where only the top-level methods can be called.

NCR 12594 - IODeviceStats() returns incorrect Client status

The IODeviceStats() Cicode function returns the Client status as 'Not Found' for Remote I/O Devices.

NCR 12617 - ActiveX activation problems

Some ActiveX controls will not allow focus, and may crash when changing pages.

NCR 12619 - ActiveX compilation problems

ActiveX return values cause a crash if a format is used (e.g. in a numeric text item on a page).

NCR 12620 - Runtime Cicode Form error

When a Cicode form is used which has more then 10 fields on it, e.g. InfoForm(), then corruption will happen and a crash or weird results will occur.

NCR 12626 - Steeplechase driver

If Citect runtime is started before the VLC project is running, then Citect will return the error "error: VLC project Runtime Error Code: 0xfffffec0 'PORT1' " and then continue starting up. All tags go into #COM's ( as expected). If VLC is started at this stage then Citect will never connect to it.

NCR 12641 - Express wizard

The Express Communications Wizard does not add a port record for each dial up I/O Device.

NCR 12642 - Sentinel drivers

The Sentinel drivers have been upgraded to version 537.

NCR 12643 - TrnPrint()

TrnPrint() doesn't work properly with "," as the decimal point.

NCR 12644 - ObjectSetProperty() problems

The ObjectSetProperty() Cicode function does not allow return values from functions to be passed into it.

NCR 12646 - New Drivers

STEEPLE, PROFIDB, SSEVEN and KOYONET drivers have been added.

NCR 12653 - The Trend Status Window update

If a trend pen is added or deleted it takes a long time to update because the update is based on the period or the span-time. Thus, the changes are not shown in the Trend Stats Window  immediately.

NCR 12659 - OMFINS driver cannot write to digitals above word 2047

Digital addresses above word 2047 (e.g. digital address 204700) cannot be written to.

NCR 12660 - HWELL does not resynchronise incoming data

Following a communications failure (for example disconnecting the serial cable), it is sometimes found that communications cannot be re-established because of a failure to   re-synchronise the incoming data.

NCR 12661 - TITCPIP Driver

TITCPIP driver cannot write strings greater than 27 characters.

NCR 12664 - ActiveX compilation problems

HOBJECTS defined as global in one file and used in another do not work.

NCR 12672 - Group Symbols lose information on editing

Changing of a symbol inside a group causes loss of information.

NCR 12705 - Passing Cicode INT variables to ActiveX Controls

Attempting to pass Cicode variables of type INT to an ActiveX control will result in an "OLE Automation Exception" or will pass an incorrect value.

NCR 12714 - ctTagRead()

ctTagRead() function returns incorrect error when tag unit is in #COM state.

NCR 12715 - ctFindFirst()

A filter string parameter has been added to ctFindFirst().

NCR 12717 - License Checking

Added OEM licensing support for Staefa and Stein Sohn.

NCR 12733 - Steeplechase driver

Steeplechase driver doesn't shut down correctly if VLC isn't running.

NCR 12734 - ctFindFirst()

Memory corruption occurs when running ctFindFirst()with an alarm query

NCR 12738 - PlotOpen fails on existing Plot

PlotOpen fails if a plot already exists on the An.

NCR 12739 - Tag Exporting

Exporting to an empty database file using the Concept Ver 2.1 ASCII driver doesn’t work.

NCR 12756 - Steeplechase driver

Reading strings with the Steeplechase driver can cause a GPF.

NCR 12759 - Tag Export

Tag export to a Concept Ver2.1 ASCII database needs an N at the first column.

NCR 12764 - CtApi TCPIP timeout too long

The timeout when sockets is used with ctApi (now the default mode) is too long.

NCR 12774 - Tag attach

Tag Attach to Mitsubishi CDE Server is not including the first tag.

NCR 12775 - CtApi and Citect OPC server may return incorrect digital data

Incorrect results may occur when using the CtApi function ctListData to read digital tags from a list.  The problems will also happen for OPC clients as the Citect OPC server uses the same functions to read data from Citect.

NCR 12779 - OPC Access Paths

The OPC Client Driver now supports Access Paths on a per-device basis.

NCR 12782 - Groups of 1 object

It is possible to trick Graphics Builder into creating a group with only 1 object within it.

NCR 12787 - Slow startup of remote projects

Remote projects can be slow to startup due to an unnecessary refresh.

NCR 12789 - The incremental compiler works for variable tags and labels added

The compiler will fully compile whenever a variable tag or a label is added.

NCR 12791 - Metafile objects may crash the Graphics Builder

Metafile objects will cause a crash in the Graphics Builder when they are copied or   grouped. Saving a new genie or opening an existing genie with a metafile in it will also

cause a crash.

NCR 12797 - KOYONET Driver

The KOYONET Express Wizard entries are incorrect.

NCR 12800 - Express Wizard

The OPC driver does not have an Express Wizard entry.

NCR 12806 - APPLIC driver

The APPLIC driver has been added.

NCR 12807 - Internet Display Client

The IDC.EXE is now shipped uncompressed in an Internet directory.

NCR 12812 - TrnExportXXX functions

New mode 8 is added to the TrnExportXXX functions to allow millisecond accuracy for exported trend data.

NCR 12817 - IDC performance enhancements

The IDC Client may transfer files when they already exist in the local cache.

NCR 12818 - DspInfo()

DspInfo() function is not working correctly when the type parameter is set to 3.

NCR 12823 - Internet Server

If the Citect project is not in the same directory as the bin directory the Citect Ftp Server will  not start and the Internet Client can not connect.

NCR 12828 - False IODevice Offline Error

You may get an incorrect hardware alarm saying IODevice offline on startup of a Networked I/O Server.

NCR 12831 - Internet Display Client

When the Internet Server runs a different project, the Internet Display Client fails to transfer the new files and runs the previous project.

NCR 12834 - Internet Display Client Installation

Internet Display Client installation. The dialogs of the installation program can be hidden by the program folder.

NCR 12840 - Internet Display Client

The Internet Display Client Installation program does not check if sufficient hard disk space is available.

NCR 12846 - Internet Display Client

Error "Project Not Selected" with the Internet Display Client is produced on startup.

NCR 12855 - DebugMesssage

The documentation for [Code]DebugMesssage has been changed so the default is correctly listed as "0".

NCR 12859 - Citect Licensing

When installing on top of an existing version of Citect, if required the installation should specifically ask the user if they have recently updated their license agreement.

NCR 12867 - Tag Export

A Backslash right at the end of the output pattern in Tag Import/Export filtering now generates a space character.

NCR 12885 - ODBC

Citect Internet Display Client setup no longer installs ODBC drivers and control panel manager.

NCR 12890 - OPC Client

A workaround has been provided for our OPC Client to work with RS Linx OPC Server.

NCR 12898 - Keyboard Commands

Keyboard commands may not execute on the first press after a new page has been displayed. If they fail on the first press they will operate on subsequent presses.

NCR 12904 - OPC Driver

The OPC driver is listed under 'Microsoft' in the express wizard. It should be listed under 'OPC Foundation'.

NCR 12955 - Page statistics errors

The page statistics in the Kernel shows page animation times, not page scan times as it should.

NCR 12965 - Internet Display Client

The Internet Display Client installation now installs CTL files from the include project in order to expedite initial project startup.

NCR 12966 - Citect crashes when changing pages

Citect may crash when pages are changed if a Cicode task made with TaskNew() and Mode 1 is being blocked by a blocking function.

NCR 12978 - Restore minimised runtime window

After maximising and then minimising a runtime window with dynamic sizing on, the window will either restore to a non-maximised state or not at all when you click on the taskbar or choose the window with ALT+TAB. The only way to get the window to restore is to choose Restore from the System Command menu for the window by right clicking on its taskbar icon.

NCR 12981 - FileSetTime(hFile, iTime)

Passing an invalid time to the FileSetTime() function can cause the time on a file to be set to a date that is out of range.

NCR 12990 - Title of Installation Program

The title of the Installation program has been changed to "Citect for Windows" regardless of the operating system being installed to.

NCR 13028 - Changes to DBF Indexing

The way Citect indexes DBF files has changed slightly. We no longer store the Index record as Upper case in the Index. Instead we store it as the case the record was saved as. When the Index is checked a case insensitive compare is done. For the language translation files this is case sensitive when

[Language]CaseSensitive=1. This change was done to bring the indexes in line with the ODBC Jet engine so that the Express Communications Wizard will work correctly.

NCR 13053 - Rectangles Leak GDI resources in Runtime

If a rectangle has a Border (Border checkbox ticked in graphics Builder) and has a 3D effect then it may leak GDI resources in runtime. It will leak resources when it needs to be updated. A rectangle will be updated when it changes dynamically or when another dynamic object near it changes requiring a redraw of the rectangle.

NCR 13059 - Colour floods

Information regarding colour floods has been corrected in the Upgrading Information topic of the

on-line help.

NCR 13060 - Citect Database Drivers

To improve compatibility with advanced database technology, such as Office 2000, the Citect setup program now installs MDAC (Microsoft Database Access Components) and BDE (Borland Database Engine).

NCR 13089 - STEEPLE driver

The Steeple driver will not communicate with VLC 4.12 although it does communicate with VLC 4.10.

NCR 13092 - SIXNET driver

The SIXNET Express Wizard does not specify a board address.