CitectSCADA and CitectHMI

Release Notification

(last updated 12 Nov 2004)

Version 6.00 Release

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

* 6385 - Multi-state alarm description missing characters at runtime

Despite being able to enter eight characters for a multi-state digital alarm description, only seven characters were visible during runtime. The problem was due to dynamic fields overwriting static fields, and has been resolved.

* 13188 - Citect Explorer now locked when updating pages

Users are now restricted from changing projects within Citect Explorer when Graphics Builder is in the process of updating pages. If a user tries changing projects when an update is occurring, a warning dialog will appear.

* 15156 -Graphics Builder memory leak when saving a page

Graphics Builder suffered a memory leak when saving a page with large numbers of objects. This resulted in Graphics Builder requiring a restart periodically.

* 16559 - Summary alarms did not retain their state when transitioning to OFF

The SumState and SumDesc fields on an alarm summary page did not retain the correct state of an alarm when it returned to the OFF state. The state was shown as OFF instead of the state at the time it went on. This was previously fixed by setting [Alarm]SumStateFix=1 in the Citect.ini file, however, this parameter now defaults to 1 allowing summary alarms to correctly log their state.

* 18290 -Long genie substitution names not fully displayed when editing

If you used substitution names of more than 16 characters (less if using block capitals) in the default genie substitution entry dialog, the last few characters of the static substitution text were hidden by the edit box.

* 19000- Errors compiling projects using Melsec protocol

Melsec protocol released with Citect v5.50 generated errors on all tags that used X data type in the Address field.

* 19071 - OPC driver "Too many I/O Devices Per Channel" error

A bug existed where units were disabled and some units were also offline. This may have triggered error 24 "Too many I/O Devices Per Channel".

* 19073 - OPC driver "Data Not Yet Valid" error suppression

During communication failures, a large number of "Data not yet valid" errors may have been generated by the OPC driver. In these circumstances, the Kernel window and Syslog were flooded with this error. A new parameter has been added "SuppressDataNotYetValidError" to avoid this problem. Zero (0) disables the fix and 1 enables the fix. The default is 0.

* 19235 - Cicode Editor Debugger Does Not Line Up with Breakpoint

Cicode Editor Debugger was not lining up with the breakpoint if the Cicode had a label that corresponded to Cicode spanning multiple lines.

* 19347 - Control blocks sent to a driver may have incorrect data

Driver control blocks were not being cleared before reuse, which could have meant the data sent to a driver may have appeared valid when it was not.

* 19578 - Kingfish driver modified to check for event data more often

The Kingfish driver has been modified to check for event data more often and several ini parameters have been added to control the priority and timeouts of data retrieval requests. These are the new INI Parameters and their default values:


EventCheckPeriod=2000 (Milliseconds)

IntegrityPeriod=10000 (Milliseconds)

UpdateCounterPeriod=1000 (Milliseconds)

DriverScanPause=100 (Milliseconds)

* 19883 - CitectHMI/SCADA FTP Server connection may fail

The connection warning sent from the FTP Server to the connection client (for example CitectHMI/SCADA Internet Display Client) may have caused some firewalls to block and close the connection.

* 19922 - Reconnect thread hammers remote port until connection is made

When attempting a reconnect after failing, there was no time between each attempt creating a very large volume of connection attempts on the socket. This caused issues with some TCPIP devices. This has been resolved so that only a single reconnect attempt is made in quick succession and any consequent reconnects must wait until the next InitChannel call, called every Watchtime, is made to the driver.

* 20173 - Unable to pack projects after upgrade

During an upgrade, some optional DBF files may not have been created. If you then tried to pack a project, an error message would appear stating certain DBFs could not be found.

* 20249 - Can't write to ASCII System devices previously opened as read only

If you attempted to open an ASCII system device for writing while it was open in another application, it would open it as read only every time you attempted to open it from then on. An ASCII system device can now be written to when opened with write permission even if it was previously opened as read only.

* 20267 - Writing OPC tag causes unit to go offline

Version 1.05.000+ of the OPC driver suffered a problem where a unit could potentially go offline when writing OPC tags. The driver has been changed so that an error code is now set for the server, thereby not placing the unit offline.

* 20568 - Implicit cast from VOID to another type disallowed in Cicode

The compiler used to allow an item of type VOID to change to another type, causing crashes in runtime. The compiler now raises an error as expected.

* 20763 - Shutdown Cicode function incorrectly reboots PC

Using the ShutdownWindows() Cicode function with mode 3 caused CitectSCADA to reboot the PC as if this function was called with mode 4. This has been resolved.

* 20846 - S7NT problems with multiple units per port

Softnet, the Siemens API software used by the S7NT driver, only allows you to configure up to 10 ports. However, the S7NT driver can be configured to have multiple units per port. This created a circumstance where if one unit went offline, all units on that port were taken offline.

* 20870 - Cicode compiler failed to flag missing function arguments

The Cicode compiler was not flagging missing non-optional Cicode arguments.

* 20892 - NT4 crash logs now include crashed thread ID and module list

Previously, NT4 crash logs were missing this information. Also, the "write Modules" command in the Kernel did not work on NT4.

* 21084 - ABLOGIX driver displays wrong values for tags

In some circumstance, such as heavy PLC or network loading, it was possible to intermittently get the incorrect values back from the ABLOGIX driver for some points on the PLC.

* 22089 - #COM, not zero, when cannot read data

Previously, the OPC driver default for the FailOnBadData parameter was 0. This meant that if a tag in a blocked read was in bad quality then this tag would return a false value of 0 and the blocked read would succeed. This parameter is now defaulted to 1 for safety reasons meaning that in the above scenario the entire blocked read will fail and cause #COM but a false 0 would not be returned.

* 22194 - Long shutdown time for CitectSCADA due to trend data

During normal operation, the trend server sleeps between writing blocks of data to file while Citect is running. Under certain circumstances, the trend server was still sleeping during shutdown. This has been corrected, allowing for significant improvements in the time taken for trend data to be flushed to disk on shutdown.

* 22208 - The New project dialog does not contain XP_Style library

In both v5.50 German and French, the CSV_Include project did not work due to localisation issues.

* 22293 - Various functions intermittently returning the same incorrect string

When using the OPC driver, the IODevice control and information Cicode functions would sometimes not function properly, with incorrect string values returned or the wrong device control occurring.

* 22408 - Graphical issues with use of mouse scroll button

The scroll button, when used on graphics pages, could show various random graphic objects when the Citect.ini [Page]DynamicSizing was off. It now calculates the correct scaling factors for the graphics.

* 22444 - Graphics Builder takes a long time to open a page with genies

Page opening times became very slow when a large number of genies were on a page. This problem was introduced as a result of object upgrade checking. The problem can be resolved by setting the Citect.ini parameter:


ComparePropertyLists=0 (default)

Setting the Citect.ini to 1 can be useful if the base genie property removal is not propagating to nested genies.

* 22449 - CTAPITrend does not work correctly for Event Trends

Using CTAPITrend to retrieve Event Trend data did not work reliably. The range of samples returned was often incomplete.

* 22466 - Graphics Builder does not use the correct page defaults

In Graphics Builder, when a user changed from one project to another, the default values for Template Style, Template Resolution, and Template Titlebar for the first project were being used in the second project.

* 22477 - Citect.ini parameters required for page defaults

Citect.ini parameters have been added that specify default page resolution, style, and title bar. The parameters are:





* 22528 - Page data stops updating after 49.7 days of operation

The CitectSCADA request system was suffering a request delay due to a rollover issue with internal counters.

* 22589 - Hardware alarm queue required

The Alarm Server now writes hardware alarm information into a hardware alarm queue as each alarm occurs. To read events from this queue, use the QueRead() or QuePeek() functions. The data written into the queue is in the hardware alarm format and is stored in the Str field.

* 22599 - Display issue with Citect.ini [Animator]FastDisplay setting

When the [Animator]FastDisplay setting was set to 0, array-based animations would not work correctly..

* 22701 - CitectSCADA crash during persistence of the I/O server cache

CitectSCADA would sometimes crash while saving the cached I/O server data to disk.

* 22838 - Calling VBA function to modify ActiveX TextBox does not work

VBA ActiveX variables can now be accessed globally if the object currently exists. If it does not exist, that object will be NULL. Also, the Cicode function ObjectByName has been extended to ObjectByNameEx. This function takes a page handle so Cicode can gain access to an object on another page.

* 22873 - MelsecQ driver Express Wizard form does not support Q series PLC

The Express Wizard form for the MelsecQ driver did not say it supports Mitsubishi Q Series PLCs even though it can do both Q and QNA PLCs.

* 22965 - Trend server sometimes freezes

Sometimes a trend server would freeze, with CPU usage dropping to 0%. This problem was due to the function KerAsyncCall() being called from the main thread.

* 22969 - MelsecQ unit stays offline after a cable disconnection / reconnection

The MelsecQ driver would not recover the communication channel when an Ethernet disconnection/reconnection cycle has occurred.

* 22973 - Improvements made to reduce the size of Kernel.dat

Entry queues and repetitions of unknown objects will no longer be printed in order to reduce the size of the Kernel dump file Kernel.dat.

* 22980 - MelsecQ driver parameter PollTime fails to bring a device online

If the MelsecQ driver was operated in polling mode (PollTime parameter other than 0), it failed to bring devices online.

* 23006 - CSV_Include project back and forward buttons function incorrectly

The back and forward buttons in the CSV_Include project now traverse the project's last page queue correctly.

* 23021 - The S7NT driver generates requests using bigger block size

The S7 driver has been enhanced with increased READ requests size. This will result in larger requests being sent to the Siemens S7 API, thus increasing throughput in Citect.

* 23053 - PageSelectObject does not work correctly

The automation function PageSelectObject can now be used to locate an object at

the top position (Z-order) of a page.

* 23055 - PageSelectObject doesn't work with a group

The automation function PageSelectObject can now be used to select an object

within a group.

* 23090 - CTAPI may crash on shutdown

A CTAPI client connected at shutdown with an outstanding read request may have caused CitectSCADA to crash. This issue has been resolved.

* 23097 - Object selection functions not working

The automation functions PageObjectSelectFirst and PageObjectSelectNext were failing to return the first object in the layer (Z-order) when all objects on a page were selected.

* 23159 – Page resizing and aspect ratio

An enhancement has been made to allow page resizing without maintaining the aspect ratio. The default behaviour is that the aspect ratio of the page is maintained. The properties for resizing are [Page]MaintainAspectRatio and [Page]ScaleTextToMax.

* 23172 - OPC Tag Browsing will not detect all OPC Servers on the machine

After a fresh install of CitectSCADA v5.50, Citect OPC Tag Browsing did not detect all OPC Servers on the machine. The reason for this was the incorrect installation and registration of OPC Foundation Core components. This has now been fixed so that during installation, OPC Core component redistributables are installed and properly registered to the target machine.

* 23226 - Calling PageClose() may cause crash

Calling PageClose() from the Input property of a grouped object may have caused CitectSCADA to crash.

* 23244 - AlarmGetDsp() does not return the correct result

When using the Cicode function AlarmGetDsp() with the argument sFieldName set to "Area", the function would return a random number as a string for Multi-Digital alarms.

* 23248 - Base/nested genie substitution problems

When modifying base genies, some genie substitutions may not have been propagated correctly. This issue can be corrected by setting the Citect.ini parameter [CTDRAW.Library]ExtendedPack, and then running Pack Libraries from the tools menu in Graphics Builder.

* 23316 - New Graphics Builder automation functions

The new PageKeyboardCommandGet and PageKeyboardCommandsPut functions allow an automation client to write and read properties to and from the keyboard commands for a Graphics Builder page.

* 23329 - PlotOpen() mode 65 does not allow transparent plots

The Cicode function PlotOpen() with mode 65 for drawing transparent plots was not working.

* 23332 - The address ranges for the MelsecQ driver expanded

The MelsecQ driver's address template didn't reflect the actual address range of the Q/QNA PLC.

* 23356 - Keyboard commands operate differently from v5.41

Right-clicking on a button which is enabled for right-clicking did not work if the window which had the button was not the window in focus. This has been resolved and right-clicking now works as expected.

* 23391 - CitectSCADA crashes on events

If the Cicode associated with an event closed the current page, CitectSCADA may have crashed.

* 23435 - The CTICMP driver has a corrupt DBF file installed

The CTICMP driver had a corrupt DBF file installed with CitectSCADA v5.50 such that creating a CTICMP variable on a Citect project resulted in a compilation error.

* 23459 - New Graphics Builder automation function: PageSelect

This function allows an automation client to directly select an opened page in Graphics Builder.

* 23479 - New Graphics Builder automation functions

PropertiesTransCentreOffsetExpressGet and PropertiesTransCentreOffsetExpressPut have been added to allow read/write access to the field express center axis offset in the MovementRotational, ScalingHorizontal, ScalingVertical and SliderRotational properties.

* 23495 - SQLConnect may crash when called with an empty string

If the Cicode function 'SQLConnect(sConnect)' was called with sConnect as an empty string, CitectSCADA may have crashed. SQLConnect("") will now return a BAD_HANDLE value instead.

* 23505 - OPC driver standby device activating immediately when brought online

When the OPC driver brought a standby device online, it immediately activated all the items even if the standby device was not currently the active device. This has been resolved so that only when the standby device receives requests does it activate its items.

* 23516 - CitectSCADA hangs on shutdown on Windows 2003

A CitectSCADA crash at shutdown may have occurred when [Kernel]Watchdog=1 was set. Also when using the [Kernel]Watchdog=1 setting, if Citect32 locks up, a new message will now be placed in the Syslog.dat:

"*** Kernel Watchdog has stopped Citect32 ***"

This is to allow users to determine why Citect32 stopped.

* 23543 - Memory leaks using _ObjectXXX() calls in Cicode

Memory leaks were occurring when objects were re-used within Cicode. The Cicode codetrace level field now has a 256 level which will trace object references.

* 23553 - The TreeView object crashes when clicked on

Occasionally, the TreeView object in CSV_Include generated a "Runtime Error '6' Overflow" error when clicking randomly in the list view.

* 23572 - International numeric decimal delimiter now supported

Previously, CSV projects running under a non-English locale and using strings representing real numbers would have the number truncated to the integer component.

* 23595 - Alarms are not saved in the alarm save file

If there was a large number of alarms when the alarm server was shutting down, some were not being saved.

* 23715 - Switching pages using Window menu command fails

When pages in Citect Graphics Builder were maximised as MDI child pages, switching pages using the Window menu command would fail.

* 23725 - InitUnit in ABLOGIX Driver does not read the status tag

ABLOGIX driver did not check the status tag before going on line. This has now been fixed and the driver will not come on line if a status tag has been specified and the tag is not readable.

* 23731 - TCPIP support added to Courier driver

The Courier driver can now be used via a TCP/IP terminal server. Also when the last unit goes offline, a CHANNEL_OFFLINE will happen and disconnect the IP or serial connection. This will allow for redundancy to the device if another IOServer is in use.

* 23736 - Tools | Import Tags fails

If the system folder was not in the User folder, the Citect Explorer function "Tools - Import Tags" would fail with a message indicating that the Include.dbf has wrong entries.

* 23787 - Multi-state digital alarm state descriptions can become corrupted

When using dynamic alarm descriptions for multi-state digital alarms, if the description grew in length then the state description strings could become corrupted.

* 23834 - CTOPC32.REG does not register the Citect OPC server

The registry settings have been updated to allow connection of a remote OPC client to the Citect OPC server.

* 23865 - Memory leak when using an ActiveX object on a graphics page

A memory leak occurred when using the Microsoft Form 2 Combo Box control on a graphics page.

* 23884 - Graphics Builder doesn't shut down as automation server

When Graphics Builder operated as an automation server, it wouldn't shutdown when a client forced it to do so.

* 23892 - Key Failure message recorded in Syslog.dat on display client

Key Failure messages were logged to the Syslog.dat file for a display client if the client did not have its own licence key. This incorrect message is no longer generated.

* 23908 - Alarm Sort parameter causes problems with alarm summary

Setting the alarm 'Sort' parameter caused the OFF time of analog alarms in the alarm summary to be the same as the ON time.

* 23969 - Error indicating problem copying string

If monitoring STRING tags via DDE while a tag was being emptied, CitectSCADA would report a “StrLengthCopy: invalid parameters or copy truncated” error in the Syslog.dat file. This is not an error condition, so reporting of the error has been removed.

* 24022 - Graphics Builder Window menu issue

Selecting a page from the Graphics Builder "Window" menu would not bring that window to the front.

* 24044 - Clients of alarm servers are now informed of a loss of the active server

Clients of redundant alarm servers now have a background task to monitor the health of the active server. Detection of loss of the active server triggers a change over to the alternate server. This task supplements the manner in which clients have always detected server loss during routine transactions.

* 24076 - "Scroll to real time" button on event trends

The "Scroll to real time" button did not display the current time span for event trends.

* 24158 - STATUS_UNIT command is called after a unit has gone offline

After a unit has gone offline, the STATUS_UNIT command is no longer called on that unit.

* 24149 - Sounds not heard on Example Project "Groups" page

Audio files played via Cicode were not being loaded correctly if their path contained a space.

* 24194 - New Graphics Builder automation function: DisplayInStatusBar

This function has been added to display input strings from an automation client.

* 24219 - Using PageDeleteObject() leaves part of the "+" sign

When deleting a symbol set object with PageDeleteObject(), the plus sign associated with the symbol set would still be visible on the page if it was outside the object.

* 24231 - Manager Client is able to acknowledge alarms

It was possible for Manager Clients to acknowledge general alarms using the command AlarmAck(). Manager Clients are now restricted to only acknowledging hardware alarms.

* 24241 - Memory leak in CitectSCADA versioning system

A memory leak of around 16Kb was observed with each call to CtVersion.dll.

* 24245 - S7NT driver variations have been consolidated

Several versions of S7NT driver with different fixes were being used by various customers. These fixes have been consolidated into one driver labelled v2.06.00.000 RA.

* 24264 - Citect Compiler keeps failing even after setting [OID]reset=1

The Citect Compiler kept failing due to OID overflow, even if the suggested setting of [OID]reset=1 was used to regenerate OIDs. This problem typically occurred when a tag was deleted after it was replicated in the same tag list. The Citect Compiler is now able to compile a project successfully in this scenario.

* 24273 - IDC is operating slowly when Cicode function DspInfoField() is used

The DspInfoField() is a function that may be called within a customer's project. It is also called within the Include project and may be called as part of loading a form. The function does not check for configuration errors that may cause this.

* 24278 - AlarmSetInfo() function may not work for time-stamped alarms

The AlarmSetInfo() Cicode function can be used to sort a given alarm list in a particular order. However, after executing this function, new "Hres" style time-stamped Digital Alarms failed to be displayed on the alarm list. AlarmSetInfo() now correctly displays and sorts this alarm type.

* 24285 - WinNewAt behaving incorrectly

The Cicode function WinNewAt(Page, X, Y, Mode) displayed the page at coordinates 0,0 if Mode=1024 (disable dynamic resizing) was used and either X or Y was zero. The page is now displayed at the specified origin point.

* 24291 - User-defined number format may be incorrectly changed to a pre-defined value

In Citect Graphics Builder, on the "Text Properties" page of a "Number" object, if the user defined their own format instead of selecting from the pre-defined list, the next time the property was displayed, the "Format" field may have changed to one of the pre-defined values. The user defined format of a number text now stays as it was configured.

* 24298 - Problems closing connections to dial-up I/O devices

Closing a connection to a dial-up I/O device when the device is online but not currently connected may have caused CitectSCADA to behave unexpectedly.

* 24323 - New parameter to prevent Window always appearing in front

A new Citect.ini parameter, [debug]DisableWinTop=1 (default value 0) has been created to prevent windows or popups always appearing in front. This parameter is intended for commissioning assistance.

* 24325 - New TRAN session logging parameter

A parameter [debug]DebugAllTrans=1 has been added to enable logging of all server-client transaction sessions to Syslog.dat.

* 24340 - Duplicate variable tags allowed

It was possible to create duplicate variable tag names directly in the variable tag database and have the project compile successfully. This was potentially unsafe at runtime. The Citect compiler has been modified to generate an error when this occurs.

* 24354 - Graphics Builder automation interface issues

Methods on the GraphicsBuilder automation interface provided functionality that was inconsistent with its documentation. Updates have been made to the implementation of each method to resolve these issues.

* 24367 - A new dump option

A new driver trace option has been created. "Drivertrace dump" is only available in the Kernel and will list outstanding driver DCBs in the I/O server. This can be used as a driver diagnostic tool.

* 24370 - New Graphics Builder automation functions

New Graphics Builder automation functions PageEnvironmentFirst, PageEnvironmentNext, PageEnvironmentAdd and PageEnvironmentRemove have been created. These functions allow reading, adding and removing entries on the page properties environment page respectively.

* 24383 - Alarm server may crash if certain alarm categories are in use

Alarm server may crash if certain alarm categories are in use. Categories 1340 to 1369 caused the problem.

* 24395 - Setting Zero Scale on CSV Example Trend Page Fails

Setting the Zero Scale of a trend on either the CSV Example Trend or Double Trend page would previously set the "Full Scale" value instead. The project has been updated to set the Zero Scale value correctly.

* 24398 - CitectSCADA may crash if SPC Trends are in the system

CitectSCADA may have crashed when a dialog is displayed if SPC Trends are in the system.

* 24404 - Closing an ActiveX component can crash CitectSCADA

Closing a CitectSCADA page containing the Microsoft hhCtrl.ocx ActiveX component sometimes caused a crash.

* 24427 - Multi-state expressions may not evaluate fully

If an out-of-range condition was experienced while running one of the expressions in a multi-state expression, it was possible that not all expressions were evaluated even if range checking was disabled. This behaviour has now been corrected, and all expressions will run unless range checking is enabled by the [Page]RangeCheck parameter.

* 24507 - Optimisation of custom filter queries for alarms now the default

Using custom filters for alarms could cause high CPU usage when running a custom Cicode over each record. Additionally, when the alarm list changed, the custom query is re-run over all records. Custom filter optimisation is now possible by setting the Citect.ini [alarm]EnableSmartCustomFilters parameter. The default is setting is 1 (on).

* 24531 - Disabling the Alarm Server on a stand-alone setup causes a crash

Setting the Citect.ini parameter [Alarm] AlarmDisable = 1 on a stand-alone setup was causing CitectSCADA to crash.

* 24599 - "Out of buffers" report

Under peak loading on some networks, CitectSCADA may have reported "Out of buffers" or "Out of buffers lan.write.pool" even though the maximum value of 8096 was used. This may have caused network connections to be reset. The maximum value for the parameters [LAN]ReadPool and [LAN]WritePool has been increased to 32760 and their defaults have been increased to 1024.

* 24606 -Export buttons on the EventTrend template working incorrectly

A problem with the export buttons on the EventTrend template that resulted in incorrect data being exported has now been resolved.

* 24615 - If an OPC device cannot be contacted, Citect may hang on shut down

If there was no OPC server at the IP address that Citect is configured to use, Citect could possibly hang on shut down.

* 24646 - #RANGE error displays for legacy string objects

When using a tag that contained a value outside its range, runtime would display #RANGE even if the user had not set [page]RangeCheck=1. This occurred on version 4.xx legacy string objects.

* 24675 - Foreign characters in alarm Description field

If foreign characters were entered into the description field of digital or time stamped alarms, nothing would be displayed for the description field on the Active Alarms page.

* 24740 - Cicode Function could only be called while on an SPC page

The SPCSpecLimitSet Cicode function was limited to being called on an SPC Page. This limitation has now been removed.

* 24776 - Graphics Builder's horizontal scroll bar visibility incorrect

Adjusting the page window size in Graphics Builder to less than full-size and toggling the 'Show Scroll Bars' would cause the horizontal scroll bar to disappear.

* 24854 - Installation paths with spaces

CitectSCADA installations that used directory paths containing spaces would not read their Cicode breakpoints correctly at startup.

* 24875 - Invalid OID generated under certain circumstances

A zero OID value was generated for OID based tags added to a graphics page of an existing compiled project and compiled with incremental compile, resulting in #COMS for that tag. A valid OID is now generated under similar circumstances, and there are no #COMS at runtime for the use of that tag.

* 24908 - Trend export function inconsistencies

All Trend export functions, by default, now return the strings ‘gated’ or ‘n/a’ where the trend data was gated or invalid respectively. The default export display mode for all functions has also been changed to 3 from 258. This is consistent with the default mode used to display Trend data.

* 25069 - Logging OPC ini parameters now supported

It is now possible to record the .ini parameters that the OPC driver is using. When logging is operational ([OPC]Log=1), the OPC ini parameters in use will be logged to %system root%\opc.log.

* 25093 - Fonts form in Citect Project Editor

Citect Project Editor would crash on a machine with 1600 installed fonts, upon dropping down the font type combo in the Fonts dialog. Now the number of fonts the list retrieves is limited to the maximum number of items it can handle, resulting in no crash.

* 25102 - New Graphics Builder Automation functions added

The following Graphics Builder Automation functions have been added: AttributeXEx, AttributeYEx. These functions are to get X(Y) coordinate of extent of the active object.

* 25103 - Cicode Editor crashes due to a non-existent file as a parameter

The Cicode Editor allows files to be opened by passing the name of the file that you want to open as a parameter at either the command-line or run-time via the Cicode function "Exec." However, the Editor was crashing when the file specified did not exist. This case is now handled by generating a message box pop-up with an error warning that the file could not be opened.

* 25130 - Goto button on 'Compile Errors' form does nothing

If duplicate variable tags were found during compilation, the compile errors window showed the error but gave no context, and the goto button did not function.

* 25143 - Kingfish driver calls incorrect function names in associated dll

The Cicode file '' had some calls to the function 'DLLOpen' where the parameter corresponding to the desired function name was incorrect. This has been rectified in Kingfish driver v1.00.04.000 RA.

* 25204 - Unsupported CSV_Include project functionality removed

The CSV_Include project had some references to Screen Notes, however this functionality was not supported. All evidence of Screen Notes has been removed.

* 25207 - ActiveX memory leaks when an interface fires events

ActiveX would leak memory if an event was fired by the ActiveX control that contained arguments that were interface pointers. These interface pointers were not reference counted correctly, which meant that the object could never be freed.

*25220 - Linked Symbols in Graphics Builder moved off the page if resized

If a symbol was pasted on a Graphics page, then resized, performing a Cut Link would move the object off the page. The object should stay in the same position now.

* 25226 - CitectInfo() returns negative numbers for disk space and memory

CitectInfo Cicode function would overflow when asked for disk space or memory space in bytes, and return a large negative number. Citect will now return the maximum positive value that can be stored.

* 25232 - Keyboard input does not follow focus rectangle

If the mouse was over an animation point and the focus was moved by the keyboard, focus would jump back to the animation point under the mouse when the user typed input. This has now been corrected and unless the mouse is moved, the focus is kept where it was placed by the keyboard.

* 25261 - Truncation of port name in Kernel or Syslog.dat trace

A port name was truncated at 12 characters in the Kernel or Syslog.dat file. Now the full name is printed.

* 25278 - CtCicode CTAPI call could not call Cicode functions

Calling a Cicode function via the CTAPI CtCicode function would fail if the function name was 32 characters or greater.

* 25289 - White Focus Box displaying incorrectly in Genies

A Genie containing a Text object with text containing spaces (e.g. " A ") would create a white focus box around only the visible characters (e.g. A). It will now focus the Genie object by moving the mouse over a space character.

* 25294 - New security INIs for Cicode calling external DLLs

If an external DLL was called that had a software fault, Citect would crash. It is now possible to protect Citect from this by setting the [code]DllCallProtect=1 value in Citect.ini.

* 25329 - TRNQUERY CTAPI function does not fail on invalid input

The TrnQuery CTAPI function did not validate parameters. This has now been corrected, and the function will fail with an error if invalid parameters are passed.

* 25337 - Tooltips in CitectSCADA Runtime may leak memory

Tooltips on animations may have leaked memory which was not freed until CitectSCADA Runtime was shutdown.

* 25352 - MXChange Tag Import and Browse updated for FastLinx

The Mitsubishi MXChange Tag Import and Browse drivers have been replaced by the Mitsubishi FastLinx Tag Import/Export and Browse drivers. Use of FastLinx functionality now requires a Sentinel key with an appropriate CitectSCADA license.

* 25398 - OPC driver may hang when shutting down

OPCGroup objects were not being released properly, resulting in the OPC Server hanging. This has been rectified in the OPC driver v1.11.06.000 RB.

* 25400 - Genie substitution lost on nested genies with Text objects

Genie substitutions in the Text field of Text objects would not work correctly if the genie was nested inside another genie.

* 25440 - Viewing buffer pool table in Citect Kernel may cause crash

Viewing a buffer pool table in Citect Kernel via 'page table bufferpool' may have caused a crash if the buffer pool was out of buffers.

* 25449 - ClusterSetName may break trend redundancy

The Cicode function ClusterSetName is used to switch clusters in run-time. If this was invoked on a trend server, it may have caused trend redundancy to fail for the original cluster.

* 25458 - Graphics Builder ActiveX combo box cannot be internationalized

The Graphics Builder ActiveX combo box in Tools | Options was not internationalized. The relevant strings are no longer hard coded.

* 25492 - Reserved words under a TCPIP setup cause comms failures

Using the reserved words "TREND", "ALARM" or "REPORT" as part of the [Server] Name or [Time] Name Citect.ini parameters caused TCP/IP communication failures. To stop this problem from occurring, an abort message now appears at startup if either of these Citect.ini parameters contain any of the reserved words.

* 25519 - Keyboard shortcuts associated with wrong objects

Keyboard shortcut sequences were being added using the AN instead of the Handle to the AN. This was causing a corruption of the object lists and a subsequent crash.

* 25527 - DspDel does not clear text off the screen

DspDel would not clear text off the screen, causing odd display problems when an AN was reused later. DspDel should now clear the area of the screen used for text display.

* 25560 - Floating menu appears on pages using non-XP style templates

Switching to a page based on a non XP_Style template at runtime caused the XP menu to 'float' over a page. This problem has been resolved with changes to the XP 'normal' base template and the CiMenuBar ActiveX control.

* 25578 - New INI to control memory usage for smart custom alarm queries

The parameter [alarm]MaxOptimisedQueries has been added with a default of 100 and a range of 1 to 32001.

* 25627 - Diagnostic tracing in the OPC driver

The [OPC]Log parameter is now read at regular intervals, so diagnostic tracing in the OPC driver can be started and stopped while the driver is running.

*25641 - Ini parameter to control OPC log messages

The [OPC]Log ini parameter now allows the user to select which diagnostic messages are logged.

* 25712 - Citect runtime may crash if [Kernel]BufpoolProtect is set to 1

If [Kernel]BufpoolProtect was set to 1 to enable the buffer pool protection for debugging purposes, Citect runtime may have crashed.

* 25733 - Problems with array items for tag-based drivers

When configuring array items for tag based drivers (such as OPC or ABLOGIX), some of the array items (or individually indexed array items) accessed through the Cicode TagRead and TagWrite functions would cause an error. The user would be informed that an "Array Overrun" had occurred.

* 25858 - Option to control SetTrendTable() requests to the standby trend server

The parameter [Trend]MaxSetTableStnbyPending=x has been added with a default of 100, and a range of 1 to 32000. It can be used to control the maximum number of pending SetTrendTable requests to the standby trend server. It is the primary trend server which uses this INI parameter. This has been done to ensure the standby trend server does not get swamped with requests.

* 25933 - FastLinx now flags errors during a tag synchronization

When synchronizing tags between Citect and MXChange server, any errors that are detected by the MXChange API will now be displayed in the error message dialog box.

* 25958 - Compiler can incorrectly compile Cicode tag assignments

If the total number of tag assignments in the Cicode of your project and its included projects is more than 32000, the compiler would generate incorrect assignments when the same assignment is used over a 32000 boundary.