See the Readme for information about restrictions and limitations with this release.
The documentation stated Web Server has to be installed on IIS 5.0 or above. However the installer actually checked whether IIS 4.0 or above was installed. The Web Server requires IIS 5.0 or above. This problem has now been resolved.
Protocol specific licence check fails incorrectly, with a message "This licence will only support the 'x' protocol". This issue has been resolved.
Documentation of two more Cicode functions have been added to the online help, and the mechanism for locating Cicode functions is slightly improved so that 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.
This project will now only be visible in the project tree in Citect Explorer if the 'Show Include Project' option (View menu) is checked.
ActiveX property dialog now dynamically adjusts its size to ActiveX property page size. It allows displaying the entire ActiveX property page in case it is bigger then the default size.
For a German Citect installation, when editing "Favorite Colors" in Graphics Builder, the color picker is missing. This problem has now been resolved.
Hotkeys such as "Ctrl + G" (Goto object in Graphics Builder) do not operate correctly for German installations. This problem has now been resolved.
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.
Trend Archiving Functionality was a bad example of how to use Citect utilities for special purpose. Therefore Citect decided to remove this functionality completely from the Example and CSV_Example projects.
This has been fixed in the MenuBar OCX
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.
This has been fixed.
This issue is resolved. When large Cicode fragments are detected, an error is reported by the compiler: 'Compound statement too large; refactor code' The Cicode will need to be modified so that large fragments of Cicode are avoided.
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.
Correctly configured projects, typically employing the Add Project Link feature or [CtEdit]Copy/Run, could receive this error at startup due to a fault in path reconstruction logic. This problem has now been resolved.
Timestamped Analog and Timestamped Digital Alarms did not have table entries for CTAPI. There are now two new ctFindFirst table entries TsDigAlm and TsAnaAlm for browsing these types alarms through CTAPI.
CTAPIAlarm and CTAPIAlarmLogV2 now work with tag names up to 79 characters long.
The array support for ctListRead tags was accidentally removed in v7 when the interface was re-written to fit the new IO model. This issue has now been resolved.
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.
DspPopupMenu opens a Semaphore and stores the handle to the Semaphore in a module variable. When a task dies due to the windows refresh, there is no mechanism to reset the Semaphore, and Citect needs to be restarted. In this correction, we use SemWait to re-claim the semaphore handle, if the task died. We close the semaphore if the task is dead; otherwise the semaphore is re-used.
If the new parameter "[Code]HaltOnInvalidTagData" is set to 1, cicode execution is halted when a tag in a cicode expression, has a read or write error. By default this parameter is 0.
A typo was found in internal ID table which stops both DspSymAnmEx() and DspSymAnm() from compiling. Problem found and fixed.
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.
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.
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.
This function worked correctly in v6.10 but fails to delete alarms in v7.00. Correct operation of this function has been restored in v7.10.
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()
Changed MsgOpen to use default cluster when it is not specified to be similar to other functions that have cluster parameter
Cicode function SleepMS() provided no protection for invalid, or negative, sleep periods. It was also possible, given precisely the right sleep time relative to the system clock, to cause a finite lock in the internal sleep mechanism. This could result in cicode threads waking after their intended time. These problems have now been resolved.
Certain Cicode functions were not correctly handling locale-specific data correctly. This issue has been resolved.
The AlarmComment CiCode function was broken in v7, resulting in comments not being saved. This has now been fixed.
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.
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.
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.
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.
This mode prevents this window from being opened more then once", it incorrectly allows further windows of that type to be opened. This problem has now been resolved.
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.
This issue has been resolved.
The Cicode function PageInfo(int) with argument 14 used in the web client can return incorrect values when either of the following two scenarios are satisfied. 1. When launching the web client window and not yet having manually resized it. 2. Manually resizing the base window so that scroll bars appear. This has been resolved.
Adding an analogue pen to the process analyst via the graphics builder causes that pens scale to default to -55 to 55 when the process analyst is run. The expected default scale for an analogue pen is the eng zero to eng full values. This issue has now been resolved.
1. If the user's privilege is not high enough, the context menu for the Load/Save/CopyTo dialog boxes is disabled. 2. Modify the CopyTo dialog box to allow only *.xls and *.txt suffix
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.
If the citect.ini parameter [alarm]summaryshutdownmode = 1 has been set, the alarm server was crashing on shutdown.
During startup of a project with a space in its name, the alarm server stops responding, with the Runtime manager displaying the message "Initializing Alarm System". This has now been fixed.
After restarting an alarm server, disabled alarms become reenabled. This was because the alarm server was not retaining a list of disabled alarms, nor was it retrieving them from the redundant server. Citect has confirmed this to be a problem in CitectSCADA versions 5.41 to 6.10. A Cicode workaround was available for versions 5.42 and 5.42A (KB Q4041) but this did not work in subsequent versions. This problem has been fixed.
Restarting the alarm and IO servers results in analog and advanced alarms being retriggered. This issue has been resolved.
When logging using a DBF file, data is not flushed to the file correctly. This issue has been resolved.
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.
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.
When the user configures the AlarmSetInfo Cicode function to filter by category the incorrect alarms are displayed. This problem is now resolved.
When the alarm sever defined as standby is shutdown and restarted the alarm process on the primary increases its memory usage considerably. This has now been resolved.
By using the record ID based alarm functions such as AlarmAckRec you can acknowledge and disable alarms from a view only client.
When using the Process Analyst to display interpolated event trend samples, the trend server may crash. This problem has now been resolved.
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.
Variables read by Cicode functions start as zero. Once read they retain the last value. If the io device goes off line, they see the last value. A change of behaviour introduced in v7 meant that when Tag quality changed from Good to Bad it's value was cleared. This has been corrected to behave as earlier citect versions do.
Tags on IO devices with backround polling enabled are not going to #COM on the display clients graphics page when the device is disabled using the IODeviceControl cicode function.
If you attempt to write a value to an array tag but the write fails, the tag value displayed on the page does not revert back to the original value until you navigate off and back to that page.
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.
The Quality of tags on IODevices which are running in Memory mode are never set to Good. This affects the display of all tags on any page with a tag from a memory IODevice. This has now been fixed.
When an IO Device becomes offline due to a communication failure between the IOServer and the device, only some of the tags on the display clients graphics page are going to #COM.
Cancelling from the CiText.Textbox Print Dialog has now be corrected. It will no longer continue to Print the contents of the CiText.Textbox when you choose the Cancel Button.
When a pop-up page is opened for the first time, it fails to set whether it should be a Child of the Parent Window or not. For example using either the WinNewAt() or AssWin() CiCode functions with their Mode Parameters set to 1 (Page Child Window), a second call was not closing the first Window. This has now been corrected.
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.
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?".
This problem can occur on the PC being copied to, on the 2nd run up of the system. The problem was related to cluster name handling. This issue has been resolved.
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.
When one or more IO Devices go offline while they are servicing read and write requests for tags, the IO server was crashing some of the time. This crash could occur regardless of if the device was going offline due to the use of the IODeviceControl cicode function, or whether there was a loss of communication to the device.
In multi-cluster systems when connecting to a server, the following syntax needs to be specified: <clustername>.<server> E.g. to connect to the alarm server on Cluster1, use: cicode Cluster1.Alarm
The documentation has been ammended, including the following information. 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.
There has been some places where "Cluster" was translated to "Grappe". These have been reverted back to "Cluster" now.
IO devices being offline results in heavy network traffic between display client and IOServer. This issue has now been resolved.
An intentionally malformed packet can cause a buffer overrun when directed at Citects port 20222. This vulnerability has been secured. Users are reminded to run Citect as intended on a secure isolated network.
Now the [Debug]menu enables and disables kernel menu item in the runtime manager menu.
If a super genie parameter has specific type, a type conversion operation is added by the compiler to the code so that pre v7 projects that have string values associated would work without change. Also the default value would be an empty string, when there is no association.
If the [CtEdit]Copy directory or any other needed Copy project directories are not available at start-up CitectSCADA will halt. This problem is now resolved.
When attempting to communicate with a PLC using an incorrectly configured tag a memory leak could result. This issue has been resolved.
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.
If the [CtEdit]Copy directory or any other needed Copy project directories are not available at start-up CitectSCADA will halt. This problem is now resolved.
A number of CiCode functions, including AssChainWin(), create and use a pending Genie association with the next Window opened. If the window limit is reached this association is never completed and is erroneously used with the next successful window open. This issue has been resolved.
A new cicode function has been added, TagRDBReload, that reloads the information presented by TagInfo. Also the compiler message indicating that TagInfo is deprecated has been removed.
Certain (mostly arithmetic) operations will leak memory when called with incompatible types - this will trigger a corresponding type mismatch error
Prior to v7.10, the design and runtime environments were required to be run under a Windows account that had administrator access to the local machine. In v7.10, on all supported operating systems, the design and runtime environments can be run under a standard user account (i.e. one without administrator access).
After installation there was no shortcut to Citect online help. This problem has now been resolved.
1. The default option of 'Show undocumented parameters' has changed to "Yes", so new users can get help easier. 2. Internal data structure supporting variable named sections like [Report.ClusterName.ServerName] is improved so new entries are generated in the correct section of the Citect.INI file.
The text "milliseconds" has been added to the General Options Setup dialogue for "Page scan time" to showing the actual UNIT of the value in the edit box.
Extra information about project, page and AN number has been added for string overflow error in Graphics builder.
In 7.10 when running the CSV_Example project, press F1 will show the online help for the project, either a context sensitive (or say page specific) help page (if the current has a help page linked to it) or the main help page if the current page does not have its own help.
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
Added cicode function which allows user to remotely shutdown Citect servers. See function ServerRestart in citect help.
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
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.
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.
When there is a timeout of loading data from the primary Alarms Server, there is now a message "Timeout from RND alarm server" in both hardware alarm and syslog to indicate the fail.
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.
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.
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.