Fixes and Minor Enhancements
Citect SCADA 2018 Update 01 (September 12, 2018)
Release Notification (Updated 12 September 2018)
This is a detailed listing of fixes and minor enhancements in this release.
Windows may ask you to provide the original Citect SCADA installer to complete the patch uninstallation process.
Starting from Citect SCADA 2016, you no longer need to uninstall any previous updates before installing a more recent one.
Known Issues Index
Bug Fix Index
1. If the remote port number is not specified in the Port “Special Opt” field, the driver sets it to 0 when connecting to the device causing the connection to be disrupted. 2. The local port is not set when doing a socket binding, causing Windows socket API to use an arbitrary local port number which may cause a connection problem if the remote device does not accept a connection with that port number. These issues have been fixed in the TCPIP driver 4.00.02.000 that is available in URL https://www.citect.aveva.com/scada/citectscada/downloads-updates/driverweb
Citect SCADA 2018 Patch 1 (September 12th) contains updates to the starter project “SA_Style_1_MultiRes” that are incompatible with the Citect SCADA 2018 release. If you create a project based on this starter project, you will not be able to compile your project if you uninstall the patch.
When English (Australia) or some other English variant was selected as the Citect SCADA login language, it would change to English US internally. English (Australia) and English (UK) have now been added to the language DBF in the include project so that they will no longer be reported as unsupported languages.
If a Role defined for a user was in a different case to the same role in the Roles table, the SOE and Alarm Summary pages will not display the user. The Citect SCADA compiler will now check case sensitivity for roles to prevent this from occurring.
On a Turkish operating system, the error message “Invalid ruleset entered” occured when applying an alarm filter using "OnTime". Filters using "OnTime" are now correctly handled on a Turkish operating system.
When the alarm server was processing HRes (legacy time stamped) alarms, there was the potential for Citect SCADA to shut down unexpectedly. Legacy time stamped alarms are now handled correctly.
If an advanced alarm is deleted via server reload right after the advanced alarm became active it may have caused the alarm server to stop. This has been fixed.
DspSym will leave traces behind of the old genie when a smaller genie is displayed on the same AN. This problem has been addressed. When new genie is displayed using DspSym on the same AN where another genie was displayed, no residue of the previous genie will leave behind.
A client would launch several command prompts for SE.Citect.PlaySound.exe when audible alarms were used. SE.Citect.PlaySound.exe is a program that was created to to play audible warning sounds to work around a memory leak issue in some versions of Windows. Now, when it is launched, it is not visible on the screen or in the task bar, and it does not block Cicode.
The Cicode function AlarmSetThresholdRec() would not reset threshold when the third argument was left blank. Setting the threshold to empty will now set the value to the numeric value that is the equivalient of an unconfigured threshold.
When shutting down a Situational Awareness project, the client process may report hardware alarms with error code 536 or 274. The cause of the hardware alarms has now been fixed.
The VariableQuality function did not correctly handle the VARIANT type passed to it so reported the wrong quality. This problem is now fixed.
CitectIDE cannot start when the User folder is on a slow network drive. The initial privilege check will now retry so that a slow connection can complete other activities on the file being checked.
The Citect SCADA compiler was incorrectly compiling a superseded driver address format '%N+%R...'. This would result in the variable.RDB containing incorrect tag runtime data. A flag is now used in the compiler to indicate which tag database handle is current for the tag enumerator, so the correct tag record number can be retrieved.
The Computer Setup Wizard was displayed when a project is run for the first time. If the user had two compiled projects ready to run, switching between the projects and clicking Run did not start the Computer Setup Wizard. This behavior has been modified such that the Computer Setup Wizard will be displayed when the user switches to a different project and tries to run the project.
The deployment process would not expand the CustFiles.zip files, which meant processes such as the I/O Server process did not have access to the zipped file during the process start up. Unpacking of the CustFiles.zip now occurs during deployment.
When a user logged in to Citect SCADA runtime using English locale on a non-English installation, some of the buttons displayed on dialogs would show unexpected characters. The conversion of characters retrieved from the resource DLL is now handled correctly.
When Graphics Builder used an associated NDX file to perform key based reads on DBF files, the graphics database could become corrupted if the NDX and DBF files do not match. Now, if Citect SCADA is set to use NDXs to access DBFs ([CtEdit]DbfNdxMode = 0), Graphics Builder will iterate through all the page related DBFs to check if they are empty or not. If a page DBF is empty, its index is reset.
Graphics Builder crashes when adding text to a new SxW page immediately after startup. This problem cannot be reproduced.
A hardware alarm was being generated when the alarm filter popup was displayed for an SxW project. The popup now only runs once the ActiveX controls have been initialized.
Occasionally, when the default alarm or trend pages are displayed from a Situational Awareness project, the first cluster node on the tree view may appear collapsed and displayed without alarm counts. This is due to a timing issue, which has been fixed. The first cluster node in the tree view should be expanded by default. The alarm counts of its children will also be displayed.
String overlap in Runtime Help of Situational Awareness project when logon with some foreign languages, such as French, Italian, Portuguese, German, Russian and Hebrew, etc. This problem is now fixed.
Shutting down Runtime when a Situational Awareness project is running sometimes caused an error to be logged in the syslog.dat that the map was not closed. This problem has been resolved.
On a Situational Awareness project, when removing bypass using the Interlocks information zone, cluster not found hardware alarm was being displayed. This problem is now fixed.
The text on the tabs in the info zone header gradually shifts horizontally when continually shuffling the tabs. This problem has been fixed.
The Treeview genie prior to the fix had to use a search text box. As a result, when there was no textbox configured on the page, and the page was displayed, it would trigger a hardware alarm as it could not find the Search box. The genie has been modified so the user can leave the Search field blank if the user does not want to have a search box on the page. Under this configuration, no hardware alarm will be triggered at runtime.
When a project created from the SA_Style_1_MultiRes starter project was run, the error "Navigation pane not found" was being displayed. This problem has been fixed now.
There was no way to trigger a customised treeview to refresh its underlying data. Cicode function _Treeview_Reload has been made into a public function. User can now call this function to reload the custom data of the customised tree view.
In Situational Awareness projects, custom column data was not cleared in tree view when the view changed. This has been fixed now.
"Invalid argument passed" hardware alarms were reported when selecting different equipment on a page made up of Composite Genies from the SA_Library include project. This problem is now fixed.
Occasionally the I/O server would not startup when the PSIServer log category was enabled during a debugging session. This was caused by an unhandled null value when the tag value quality was bad. The null value is now handled and logged as "<null>" in the I/O server trace log.
If the Cicode IO Device entry is incorrect, that is, it is not an IOBlockedRead object, a blank string is returned for the debug output.
The "LOGSTATE" field in alarm log file was not translated according to [Language]LocalLanguage setting in Citect.INI file. The system now applies the translation to the log state description in the the language specified in [Language]LocalLanguage INI parameter.
Process Analyst scaling would not resolve correctly in a multi-cluster environment with the duplicated tag names defined across multiple clusters. This would happen when there was some ambiguity in Cicode expressions that did not specify a cluster name as part of the tag name when the project contains multiple clusters. The problem can be resolved by adding the cluster name in the expression. To support this, a new compiler warning has been implemented to warn users about the potential ambiguity, "W1039 Tag usage is ambiguous...". The new warning can be suppressed with the Citect.ini parameter [CtEdit]SuppressCompilerWarning = W1019.
When defining a search filter for adding new pen(s) in Process Analyst, you had to use the same language that the trend server used for the "Comment" field. Client locale information is now stored in a browse session so the server knows what language the client is using. The server loads the dictionary for the language before applying filtering.
When a customer was operating CitectSCADA under the Turkish locale or had manually set the regional format of their machine to "Turkish (Turkey)" a variable tag search in Process Analyst would result in error code 0x1000019E and no matching tags would be returned. This was due to the way in which the letter "i" is treated in Turkish where the uppercase variant is the dotted "?", as opposed to the lack of a dot in English. Searching for variable tags is implemented using Regex expressions to find a match in the input string, which in this case comprises of tag field names, such as "iodev". By default however, when the regular expression engine performs case-insensitive comparisons, it uses the casing conventions of the current culture to determine equivalent uppercase and lowercase characters. The issue was therefore resolved by specifying the flag "RegexOptions.CultureInvariant" in the call to Regex.IsMatch which would then correctly yield a list of matching variable tags.
The Process Analyst would stop working when attempting to change the style or color of an alarm pen. The properties can now be adjusted without implication.
A hardware alarm was being generated every time a triggered report was sent to printer with format file as '.txt'. The associated Cicode functions have been modified to handle this scenario correctly.
If a DBF device was configured to roll over at 00:00:00, the one at 1st Jan 00:00:00 may have been missing. This now works correctly.
User can now specify a day range in the Special Days View of Scheduler by specifying the Start and End day. Special days that are adjacent to each other and have the same name will be grouped together into a single block in the Special Days View.