Restrictions and Fixed Problems

CitectSCADA 7.10 On-Process Beta 1

Release Notification

(Updated 21 July 2008)

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

See the Readme for information about restrictions and limitations with this release.


Fixed problems

22645 If '-i' is used to specify a custom INI location, some parameters may not be read correctly

Certain INI parameters will only be read correctly if the INI file is in the %systemroot% directory, and named 'citect.ini'. Affected parameters include but are not limited to: [IPC] and [CTAPI]EventLogging. Affected drivers include BURRB, DATATAKR, ICN, MEWTOCOL, PYMAX, SINEC, SNP, UNITL and YOK_UXLS. This problem has now been resolved.

23933 The DumpKernel() Cicode function is missing some lines from the page general kernel window

When the DumpKernel() Cicode function is invoked and general statistics is specified, the outputted general statistics have lines missing at the bottom when compared with the page general statistics in the kernel. This problem is now resolved.

24150 [CTEdit]Upgrade=1 parameter missing from Help documentation

Documentation explaining the [CTEdit]Upgrade parameter has been added to the Computer Setup Editor Help.

24868 Overflow of BufferPool data fields fixed

Change the type of all BufferPool internal variables from 16-bit to 32-bit so values over 32767 can be processed correctly.

26566 New hardware alarm and syslog

When timeout of loading data from the primary Alarms Server, there are message" Timeout from RND alarm server" in both hardware alarm and syslog to indicate the fail.

28796 Cicode Command DumpKernel for Verbose mode does not dump any information to Kernel.dat

Mode 0x4000 (verbose) only works when other bits are set or the global 0x8000 is used. For example, to dump netstat and I/O device data in verbose mode, set iMode to 0x4014 (0x0004 + 0x0010 + 0x4000). Using 0x4000 on its own will dump no data, it must be combined with another mode.

30087 New time stamped alarms are NOT supported in CTAPI

Configured Time Stamped Digital Alarms and Time Stamped Analog Alarms were not accessible through CTAPI. This problem has now been resolved.

30926 A new "Inherit Security Settings" checkbox in Process Analyst Properties

The "Inherit Security Settings" checkbox (enabled in design time only) defines how to apply the security settings when the new PAV is loaded. If "Inherit Security Settings" is checked the system use the security settings from the design time. Otherwise, the security settings are overwrited each time the new PAV is loaded.

31144 DspPopupMenu Cicode function in does not release Semaphore.

Cicode Error in DspPopupMenu opens a Semaphore and stores the handle to the Semaphore in a module variable. When the task ends due to the windows refresh, there is no mechanism to reset the Semaphore, and CitectSCADA needs to be restarted. This problem has now been rectified.

31710 New modes in WinNewAt(), additional INI parameters, and new function WinStyle() for scrollbar removed

To provide support for scrollbar removal and to be able to disable scrolling, new modes are available in WinNewAt(). Global settings for these options can be applied through citect.ini parameters [Page]Allow[H|V]Scroll[Bar], and can be changed after window creation through cicode function WinStyle(). Consult Citect Help for more information.

32938 Citect OCX controls had invalid toolbox bitmaps

The toolbox bitmaps of the following Citect ocx controls were not displayed

33628 Minor memory allocation errors.

Fixed memory allocation to work properly.

33778 When using [Shutdown]Phase set in the Citect.ini file there is no documentation as to how the Shutdown() function interacts with this parameter

Documentation added to the "Restarting a networked system online", "[Shutdown] Phase" and "Shutdown Cicode Command" topics to describe how to phase shutdowns.

34153 Enhancement: "trendqueues" data added to kernel dump

A table is created for storing the property infomation from the "trendqueues", so generic table functions can be used with, and it is automatically included as just a new entry of the master-table in all places where master-table is used. For example, "trendqueues" is now part of the kernel dump inside the "tables" section.

34642 Documentation deficient for AlmSummaryGetField supported fields

Added documentation of supported fields to TrnBrowseGetField, TrnBrowseOpen, AccumBrowsGetField, AccumBrowsOpen, AlmSummaryGetField, AlmSummarySetFieldValue, AlmSummaryOpen, AlmTagsGetField, AlmTagsOpen, ctFindFirst and ctFindFirstEx topics.

34831 Trend Server crashes and automatically restarts due to memory corruption

There is the potential for a buffer overrun and memory corruption when CitectSCADA gathers an array of interpolated event trend samples to service requests from the Process Analyst. This problem has now been fixed.

34939 TagWriteEventQue not documented

Added documentation for the [General]TagWriteEventQue and [General]TagWriteEventFmt parameters, and added a new topic entitled "Using the TagWriteEventQue".

34984 Default startup page for non-xp_style projects contained "Example Project"

The default page for non-xp_style projects contained a label "Example Project". The problem has now been resolved.

35008 ActiveX objects in templates don't work when Fast Runtime Display is disabled.

Disabling Fast Runtime Display using INI setting [ANIMATOR]FastRuntimeDisplay=0 causes ActiveX objects (including Process Analyst and menubar) embedded in templates to stop working. This issue has been resolved.

35207 Span changes on an unbound pen in the Process Analyst clears the display

When using pens in the Process Analyst not bound to a tag, the sample added via the AddSample method would automatically be cleared on scale changes. This behaviour can now be controlled via the ClearOnResolutionChange property.

35241 Dialog fonts are hard to read in oriental languages

The Font type being used for dialog's throughout the user interface at design-time was inconsistent. This would lead to slightly different font sizes that impact highly detailed characters such as those found in oriental languages.

35269 Runtime manager provides feedback when exception reports are generated

If a full-user dump is selected via the Minidump registry setting, this may take 5 minute or more to write to disk. During this time, there was no user feedback to explain what the system is doing. The Runtime Manager now changes the state of a process to 'Exception' whilst an exception report is being generated and a balloon tip appears to indicate when the report has been completed.

35302 After restarting an Alarm Server, disabled alarms become re-enabled

This was because the Alarm Server was not retaining a list of disabled alarms, nor was it retrieving them from the redundant server. This problem has now been resolved.

35477 Alarm property display will follow the alarm format.

Number of decimal places displayed for alarm properties of real type will follow the specification of the alarm format.

35519 AssInfo new type (19)

AssInfo type 19 returns associated tag full name even when the tag is not resolved Also AssGetProperty new property "AssFullName" returns the same thing Type 18 for AssInfo and "FullName" for AssGetProperty would return empty string if tag is not resolved

35520 Check for all error conditions in the IsValidBufferPointer() function.

The function IsValidBufferPointer() was changed to check for the error condition when the Id != BufferMagicNum.

35573 Trend Archiving Functionality removed

Trend Archiving Functionality was a bad example of how to use Citect utilities for special purpose. Therefore Citect decided to remove this functionality completely form the Example and CSV_Example projects.

35600 Closing the kernel window with the Cicode window open does not force a re-login into the Cicode window

When a user closes the Kernel window, and the Kernel Cicode window is still open, the Cicode Window is hidden but the session wasn’t logged out. So when the Kernel was reopened, the Cicode window was displayed with access to enter commands. This problem has now been resolved.

35744 Logging device delayed/buffered when writing to a DBF file.

When logging using a DBF file, data is not flushed to the file correctly. This issue has been resolved.

35752 Incorrect tracking of opened DLLs after calls to DLLOpen() cicode function

Tracking of opened DLLs has being performed by dropping the .DLL suffix from the sLib parameter passed into OpenDLL() cicode function. This prevented reuse of DLL entries in Citect kernel, and eventually caused overflow of table, requiring restart of the Citect.

35847 File size limitation for DspRichTextLoad

There is a file size limitation of 512kb that can be loaded by DspRichTextLoad. This has been documented.

35878 File path variables improved for supporting all path names supported by the OS

Coding improved so long file names can now processed correctly when compiling.

35903 Displaying a message box allowing to save a newly created page when Replace All command is called.

When calling Replace All command the user is offered to save a newly created page.

36037 .NET 2.0 installation for Web Client on German OS is not working

German version Web Client cannot download and install .NET 2.0 framework.

36135 CSV Menubar does not correctly display Eastern characters

The menu bar was using an incorrect font to display the menu items. This problem has now been fixed.

36136 .NET 2.0 installation from Web Client is not working on Windows XP Pro x64 machine

Web Client on Windows XP x64 machine cannot download and install .NET 2.0 framework.

36137 Citect.INI: [WIN] CtrlEsc parameter is removed

All references to the [WIN]CtrlEsc parameter, which was deprecated in the last release, is now removed.

36164 Fix of WinFile() function crash in the kernel.

CitectSCADA crash when calling WinFile() function in the kernel was fixed.

36206 Compiler check for the maximum length of an array tag.

The compiler checks for the maximum length of an array tag and if it exceeds 256 bytes, an error is generated.

36294 Protocol specific licence fails under v7.

Protocol specific licence check fails incorrectly, with a message "This licence will only support the 'x' protocol". This issue has been resolved.

36365 Compile errors are produced with some Period field options in Project Editor forms

For a French Citect installation, compile errors are produced when certain Period field options are selected from the drop down list in Project Editor forms. Such forms include Trend Tags and Events. This problem has now been resolved.

36415 Runtime Manager hanging in "Initializing Alarm System"

During startup of a project with a space in its name, the Alarm Server will stop responding with the Runtime Manager displaying the message "Initializing Alarm System". This has now been fixed.

36441 DspSymAnmEx is failing to compile due to an incorrect label

This function failed to compile due to a naming change of a cicode function from _DspSymAnm to DspSymAnm (no underscore). The label has been updated. This problem is now rectified.

36446 AlarmComment() function does not work in v7.

The AlarmComment CiCode function was broken in v7, resulting in comments not being saved. This has now been fixed.

36472 Help for [General]TagDB out of date

Documentation for parameters has been updated to reflect correct v7.0 use of the parameter.

36482 WinNewAt function with mode 128 allows to open several windows.

By using the WinNewAt function with parameter "128 - Open a unique window. This mode prevents the same window from being opened more then once", or it is still possible to open the popup windows several times.

36594 Point count increases when a variable tag is read using the CtAPI client.

When tags are read, the I/O server treats <tagname> as different to <clustername>.<tagname> even if <tagname> exists in <clustername>. This results in the project point count increasing because the same tag is counted twice. This problem has now been rectified.

36610 Online help for built-in functions improved

Documentation of two more Cicode functions is added to the online help, and the mechanism for locating Cicode functions is slightly improved by so the optional spaces between function name and the bracket after the function name will not stop the Cicode editor locating the online help topic correctly.

36614 IIS version for Web Server

The documentation stated Web Server has to be installed on IIS 5.0 or above.

36617 The maximum size of arrays of local variables is incorrect in the online help

Online help has been corrected to state that the total size of an array is limited to 32766 elements, not 32766 elements per dimension.

36641 CitectSCADA Display Client will not run if the path specified in the [CtEdit]Copy parameter is unavailable

When CitectSCADA starts up and the [CtEdit]Copy is specified but not accessible CitectSCADA will now startup successfully and log an entry into the syslog.dat file indicating access failure. This problem has now been fixed.

36645 Ctrl+ hotkeys not working for graphics builder on German Installations

The graphics builder would perform hotkey actions without pressing the Ctrl+ accelerator. This has now been fixed.

36647 An I/O device going offline will cause heavy network traffic

When a device goes offline, the I/O Server would repeatedly broadcast its offline state to all display clients resulting in excessive network traffic. This problem has now been fixed.

36648 Getting the raw value using DspInfo|DspInfoField is no longer supported

To get the raw value of a tag, use the TagSubscribe function, specifying a value of “Raw” for the sScaleMode parameter. When using TagSubscribe, you can either call SubscriptionGetAttribute to obtain the value whenever required or register callback cicode function to run when the value changes.

36655 Messages written to a log device on a input command on a super genie may be truncated after any super genie substitution

Log messages that include a tag substitution for super genies that are not associated with array tags were being truncated if there was any text after the tag name. For example, "?1? is ok" was being logged as just "?1?".

36672 No shortcut to online help

After installation there was no shortcut to the online help. This problem has been fixed.

36683 Modifying the cluster context when opening a trend page using PageTrendEx() function.

When opening a trend page using PageTrendEx() function, the cluster context is updated. So the trend tags select dialog displays tags for the correct cluster after calling PageTrendEx() multiple times with different cluster names.

36684 Modifying the cluster context when opening a trend page using PageDisplay() function.

When opening a trend page using PageDisplay() function, the cluster context is updated. So the trend tags select dialog displays tags for the correct cluster after calling PageDisplay() multiple times with different cluster names.

36716 IDC downloads 2 copies of RDB files

Version 7.00 of the Internet Display Client would download 2 copies of many of the RDB files at startup. This issue has now been resolved.

36723 Security hole in Process Analyst exposes ability to execute files

The "Copy To File" dialog allows an operator to browse the file system and then right click and execute an application. This problem has now been fixed.

36725 Color picker missing from the "Edit Favorite Colors" window in Graphics Builder

For a German Citect installation, when editing "Favorite Colors" in Graphics Builder, the color picker is missing. This problem has now been resolved.

36740 No documentation for network redundancy

The use of dual NICs to facilitate network redundancy was not documented. The "Network Addresses", "IO server Definitions", "Trend Server Definitions", "Alarm Server Definitions", "Report Server Definitions", and "Building Redundancy Into Your System" topics were updated. A new topic was created called "Configuring Network Redundancy".

36743 Asswin function doesnt work properly with modes set to Unique window.

Asswin function does not work if we set the mode to 128 to open a unique window. Multiple windows are still opened and the message "Too many windows" displayed.

36767 Error "Alarm Cache Width Exceeded" and system crashed when having analog alarm with long tag name (79 chars) and long page name for Alarm Help Page (64 chars

Having long tag names and long page names for the Alarm Help page of Analog Alarms was exposing a limitation of the Alarm Cache Size. This problem has now been fixed.

36802 SleepMS() can block other tasks SleepMS()ing for shorter periods

Passing the right sleep value in at the right time relative to the system clock can result in an internal code monitoring task to lock for a finite period resulting in other sleeping tasks not to wake. This problem has now been rectified.

36820 ctListRead does not work for tag Arrays

This functionality has now been added. This problem has now been rectified.

36822 Memory leak appears for a working PLC with a non-working tag

If a tag is supported by a driver template, but not supported by the device (i.e. it causes #COM to be displayed on the page), a memory leak will result. This problem has now been resolved.

36846 SubscriptionGetAttribute always returns engineering values, regardless of scalemode set.

The function SubscriptionGetAttribute with the sAttribute parameter set to "Value" always retrieves the engineering value, regardless of what was specified in the sScaleMode parameter passed to TagSubscribe.

36857 Log message functionality doesn't work properly when used in v7 objects

CitectSCADA was incorrectly truncating the log message for genies associated with an item in an an array tag (e.g. tagA[2]) at the closing ']' character. This issue has been resolved.

36917 Restarting the Alarm and I/O Servers results in analog and advanced alarms being retriggered.

During startup of the runtime environment if tag subscriptions are not available then a timing scenario can exist where alarms acknowledged can be lost after a restart. This issue has been resolved.

36939 The "Address" property is missing from the help of the TagGetProperty function

The following property was added to the TagGetProperty function: Address - Returns the configured address of the tag (as specified in the variable tags form).

36952 Alarm sounds reset after all the alarms are acknowledged

When alarms comes on, the sound of the highest priority alarm will start. As soon as an alarm is acknowledged, or the user pushes the mute button, no more sounds will be heard until all the alarms are acknowledged. Once all the alarms are acknowledged, and another alarm turns on, an alarm sound will be heard again.

36958 Using the same tag with and without a cluster causes incorrect point count

The same tag defined with and without a cluster name will be counted twice in the point count. Now, when running in a single-cluster system, CitectSCADA ignores the cluster name when resolving tags, so that tags that are resolved with and without the cluster prefix will not be treated as two different tags, and thus will not be point counted twice.

36962 Protection added to stop user starting multiple instance of the compiler

When the user starts multiple compile session, only one compile session can success when it gets exclusive access to a resource file, and the remaining sessions will fail with error message. This problem is fixed by allowing only one running instance of the compile per machine.

36987 CSV_AlarmSummary Page does not display the full History of Alarms processed.

When a user views the CSV_AlarmSummary page only a maximum of 17 pages of alarm history is viewable when there should be more. This problem is now resolved.

37046 The cluster name should be specified when using the kernel to connect to a server in a multi-cluster system

In multi-cluster systems when connecting to a server, the following syntax needs to be specified:
E.g. to connect to the alarm server on Cluster1, use:
cicode Cluster1.Alarm

37056 Graphics builder was displaying “Can’t open file” error after extensive usage.

Fixed Graphics Builder handle release mechanism so it will always have free handles to use as a result the error message “Can’t open file” will not appear.

37068 Probe command help confusing

Probe was marked as obsolete, but instructions on how to use the command still appeared in the online help. Alternative methods of investigating #com issues have been added to the help.

37081 Citect error codes 422 to 435 are not documented in Help

Error codes now documented.

37083 EIBKNX driver replaced

Citect decided to replace the old EIBKNX with the new KONNEX driver. The new driver is compatible with the old one and offers a bit more functionality. If you had a license for EIBKNX driver CiUSAFE is going to report is as KONNEX from now on.

37134 Hundreds of calls to DspFont() can result in a Citect crash

A large number of calls to cicode function DspFont(), typically in the hundreds, can result in a Citect crash. This problem has now been resolved.

37146 MailSend() with attachments failing with MAPI error 12

This issue has been resolved.

37163 Migration tool failed to run on 64-bit operating system

On 64-bit operating system, an error message popped up saying "An attempt was made to load a program with an incorrect format (Exception from HRESULT: 0x8007000B)". This problem now has been resolved.

37171 "Probe" button removed

The "Probe" button is removed from Example and CSV_Example projects since it was invoking a command that is no longer supported.

37172 Citect.hlp replaced

The Citect documentation format has been changed from .hlp to .chm and reorganized at the same time. The "Citect Help" button of the Utilities Page in the Example project now opens up the new document as expected.

37182 Cleaner error report

Citect displayed a confusing error report before termination when started with an unsupported configuration - i.e. started in Demo mode and was configured to use networking. The new error report, "No networking is allowed in Demo mode. Please disable networking.", hopefully will help users to easier identify and fix the problem.

37190 Some of the checkbox are disabled in the Computer Setup Editor.

Some checkbox are disabled because they are no longer in use in the Computer Setup Editor.

37196 The cluster information could not be saved properly in the Computer Setup Wizard.

The addition cluster configured in the Computer Setup Wizard could not be saved.

37201 Crash when trying to import variable tags database type Steeplechase Design Database Driver

The tag import / export driver crashes when the external database path is invalid. This problem has been resolved.

37216 Using local variables as alarms triggers causes the standby alarm server to crash

An internal error occurs when sending data to the redundant Alarm server. This problem has now been fixed.

37228 Deleting a genie while the page it is being used on is open causes Graphics Builder to crash.

When genies are deleted references to them still existed inside the pages that used them. This problem has now been fixed.

37205 Alarm server does not detect duplicate ids or tags in ALMINDEXSAVE.DAT

Alarm index file corruption was not detected at startup, potentially leading to lost alarm save information. Now, CitectSCADA checks the index file at startup, and will report the following error message if corruption is detected: "Failed to load the Alarm Save file. The file 'ALMINDEXSAVE.DAT' was corrupt or invalid. Citect could not be started."

37217 Dr. Watson Log button removed

Since Citect is not using Dr. Watson log files any more the button that used to open the corresponding log file is removed from the Tools page of the CSV_Example project.

37221 [Debug]menu =0 does not disable the kernel menu item in the runtime manager.

Now the [Debug]menu enables and disables kernel menu item in the runtime manager menu.

37237 Cannot login to Citect when AnsiToOem parameter is 1

The project must be compiled and run with the same setting of the [CtEdit]ANSIToOEM parameter, otherwise string conversions and logins that rely on ANSI to OEM conversions will not work. For example, you cannot compile with the value of 0 and then run with a value of 1.

37245 Incorrect list of fields in the CitectSCADA help file for AlarmGetDsp() and AlarmGetFieldRec()

Updated AlarmGetDsp and AlarmGetFieldRec with correct tables of fields.

37247 Alarm Properties/ Alarm Device Configuration

Documentation stated that an Alarm device must be configured to use Alarm properties as tags even though Alarm devices are no longer supported in V7. The "Setting up Alarms" page was updated

37265 Some kernel windows and DumpKernel() generate repeated rows when verbose mode is in use

Rows may be repeated in kernel windows or DumpKernel() output when verbose mode is in use. Verbose mode support has been removed from DumpKernel() and 'page queue' to avoid this issue.

37274 Fixed incorrect labels in kernal tasks and DCB for IODrivers

Some names generated for IODrivers do not have the expected portname part because the lack of explicit data type conversion. They are fixed now.

37287 Using string tags on pages or in Cicode leads to a memory leak

A change in the way string tags are handled in v7 caused a substantial memory leak when they are used in Cicode expressions (including page display). This issue has now been resolved.

37291 AlarmSumDelete() function not deleting alarm from summary page.

A problem that caused this Cicode function to fail when deleting alarm summary entries was introduced in v7.00. This problem has now been fixed.

37397 Backing up a Read-Only project with ‘Save ini files’ option produces an error.

Backup process has been changed to allow read-only projects to be backed up correctly. This problem has been resolved.

37614 When the Scheduled field of I/O device is True, CitectSCADA Runtime Manager will on startup.

This problem has now been resolved.

37681 Alarm Property Write Failed on second attempt.

In the Alarm Server, when there is no state change, the operation status was not set to successful, thus the interpretation is that the write operation is failed. This problem has now been resolved.

37305 Using the AlarmSetInfo() Cicode function to sort two pages of alarms by state then by priority causes incorrect results

When the user sorts a list of alarms that spans across two pages via the AlarmSetInfo Cicode function, using the sort keys state and priority the sorting of the alarms is incorrect. This problem is now resolved.

37346 The protocol name in ProtErr.dbf was limited to 8 characters.

Increased the protocol name size in ProtErr.dbf from 8 characters to 31.

37379 CSV_MessageBox function Help is incomplete

The return codes for this parameter were missing and have been added.

37390 Help for Alarm Summary Browse is confusing

The syntax for the sFilter argument for the AlmSummaryOpen command was incorrect and has been corrected.

37391 Tag Subscription initially returns stale cache value with Quality set to Good.

On a Tag Subcribe a new subscription is created with a Tag Value Quality corresponding to the cached value from a previous subscription of the tag. Thus any client is initially given the stale cache value with Quality set to Good. This has now been fixed.

37484 Cannot write to read only variable compile error with Bailey driver on v7.

Compiler support for the remapping functionality that the Bailey driver relies on was inadvertantly removed from the CitectSCADA compiler. This functionality has now been restored.

37525 In CSV_Example, incorrect HW alarms generated in some use cases fixed

One HW alarm was caused by a tag property which is an empty string, the other HW alarm was caused by using an obsolete INI parameter. The former is fixed by allowing empty tag property, and the later is fixed by removing the obsolete INI parameter.

37583 Legacy commands "debug to" and "debug from" removed

The documentation of kernel commands "debug to/from" is now removed because they are not supported since V7.

37606 Pocket Server (aka. Web Service) Always installs into default directory if run from the CitectSCADA Package installer

When the user Installs the Pocket Server through the CitectSCADA Package Installer and selects a different destination directory, the Pocket Server is installed into the default directory: %ProgramFiles%\Citect\CitectSCADA\PocketServer. Now the Pocket Server is installed into the user's selected directory. Please note that for v7.10, Pocket Server has been renamed to Web Service.

37616 New cicode function - AlmSummaryLast

The AlmSummaryLast function places the data browse cursor at the most recent summary record from the last cluster of the available browsing cluster list. This is a replacement for AlarmSumLast cicode function that was deprecated in CitectSCADA V7.0

37674 Adding/removing a local variable in a Cicode function no longer increments the Cicode library minor version.

The minor version of the Cicode library should be incremented after adding/removing/modifying a Cicode function signature but not after modifying the body of a Cicode function. For the RUN/COPY feature, this avoids a page/library mismatch hardware alarm after a local variable is added/removed in a Cicode function.

37715 Supergenie substitution type conversion

When passing value to a typed parameter of superginie (e.g. ?INT 1?) the value will be converted to that type (e.g. '123' will be interpreted as number, not string) If no value is available for a supergenie association at runtime, its value would be empty string.

37717 CtapiAlarmSummary does not work with Alarms that have long tag name

AlmSummaryNext function was returning error 416 (Databrowse no next cluster) instead of 412 (EOF). This was causing CTAPIAlarmSummary function to fail. This problem has now been fixed.

37812 Write to an array tag that is failed by a driver displays the wrong value on the page.

If you attempt to write a value to an array tag that is failed by a driver, the value you attempted to write is displayed as the tag value on the page until you navigate off and back to that page. The expected behaviour is that the value on the page should revert to the correct value after the I/O server is notified of that the write failed. This problem has now been fixed (the value displayed should revert to the previous value as long as the driver returned an error). This problem has been rectified.

37736 Zero tag online IO Devices may leak memory

If an IO Device has no tags configured, it will cause memory leak in some cases. It is fixed now.

37747 Shutdown function not working properly

Added a note to the documentation for Shutdown that states "With one exception, the Shutdown command will succeed only if there is an Alarm Server in your system. The exception to this is if you specify an empty string for the sDest parameter (shutdown this computer only). In this case the shutdown will succeed even if there is no Alarm Server."

37835 MsgBrdcst() cicode function does not support clustering.

The MsgBrdcst function was not updated to support clustering in v7. This function has now been modified to accept an optional 4th parameter for cluster name. If no cluster is specified, MsgBrdcst will lookup the currently active cluster as per the logic for MsgOpen.

37870 InfoForm() function fixed after extending TagInfo() function

A V7 specific bug is fixed which returns an empty string when called with the "ADDR" parrameter. It is fixed by restoring the V6 code and extending the TagInfo() function which is the backend for InfoForm().

37908 A crash may occur if an ActiveX control on a graphics page has associated tags and is not activated

If the underlying OLE control of an ActiveX control is not activated before tags that are associated with the control's properties are read, then a crash may occur when the runtime attempts to update those associated properties with the corresponding tag values.

37911 Incorrect translation of "Cluster" into French.

There has been some places where "Cluster" was translated to "Grappe". These have been reverted back to "Cluster" now.

37913 DspInfoValid() shows an example of DspInfoField(hInfo,sTag,"Raw_Value"), but this is no longer supported

Changed example in DspInfoValid to read:
IF DspInfoValid(hInfo) THEN

37915 Using the AlarmSetInfo() Cicode function alarms by state causes incorrect results

When the user sorts a list of alarms using the AlarmSetInfo Cicode function, using the sort key state the sorting of the alarms are incorrect. This problem is now resolved.

37953 Using the AlarmSetInfo Cicode function to filter by Category does not filter correctly.

When the user configures the AlarmSetInfo Cicode function to filter by category the incorrect alarms are displayed. This problem is now resolved.

37960 Long tag names can be historized

The maximum size of a historized tag is now 96 characters; 16 characters for the cluster name, 1 for the separator, and 79 for the tag name.

37965 CTAPIAlarm and CTAPIAlarmLogV2 now work with long tag names

CTAPIAlarm and CTAPIAlarmLogV2 now work with tag names up to 79 characters long.

37969 AlarmSumDelete Cicode does not delete an alarm from summary page as expected.

When the user invokes the AlarmSumDelete Cicode function to delete an alarm from an alarm summary page it is not removed as expected. This problem is now resolved.

37984 Percentage type conversion for strings at compile-time

Compiler will not assume REAL type for percentage expressions (such as movement property with range) if the variables are of type digital or string (e.g. strTag1 = "0" is valid for percentage expressions, whereas before it would raise error at compile-time)

38060 / 36482 WinNewAt function with mode 128 (unique) allows opening multiple windows

In Version 7.0 a change was made to allow a window opened with mode 128 (unique) to be opened multiple times if the cluster assigned to the page is different in each case. It was still possible to open multiple windows with mode 128 with no cluster declared. This problem has now been resolved.

38075 CitectSCADA runtime crashes while shutting down, if alarm]summaryshutdownmode = 1 is set

When [alarm]summaryshutdownmode is enabled ( =1), the alarm server will log alarm summary entries (both complete and incomplete) at shutdown. When this mode was enabled, the alarm server was crashing while trying to write alarm summary entry at shutdown. This problem has now been resolved.

38169 Local variable Tag Quality is never set to Good.

Local variable Tag Quality is never set to Good. This affects the display of all tag on a page with a local variable Tag. This has now been fixed.

38226 IODeviceStats() function doesn't work properly in a multi-process environment

The function does not work if the IOserver is not the calling process. Added a note to IODeviceStats to read: "Note: In a multi-process environment this function must be called from the IOServer process or redirected there using MsgRPC. If this isn't done, some of the information on the IODeviceStats form will not be displayed correctly."

38377 FTPOpen and all FTP functions can only be used on the Internet Display

Added notes to all FTP functions to state that the command can only be used on the Internet Display Client.

38913 Alarm Threshold write at runtime were saved in dbf file when [Alarm]USeConfigLimits=0

When [Alarm]UseConfigLimits is disabled (=0), the alarm server will not update the DBF/RDB files with new values of alarm properties written at runtime. In case of Alarm threshold properties it was updating DBF/RDB with new values. This problem has been resolved.

39136 PageSelectNextObject() not iterating through the objects on a page correctly

In the Graphics Builder Automation Interface the PageSelectNextObject() method does not correctly detect the end of the collection of objects on a page. This manifests itself as a call to PageSelectNextObject() returning S_OK, but no object being selected. Subsequent calls to methods that attempt to manipulate the currently selected object will then fail, returning E_HANDLE.