Fixes and Minor Enhancements
Plant SCADA 2023 Update 07
Release Notification (Updated 07 July 2023)
This is a detailed listing of fixes and minor enhancements in this release.Bug Fix Index
Enhancement Index
Bug Fixes
v8.40 Update 07 (Jul 11, 2023)
When upgrading to Plant SCADA 8.40 (version 2023), it was found that the performance of the Equipment Update was significantly slower than expected. The performance of an equipment update has now been improved.
The OPC DA Server may have been unable to start due to a software protection failure, or forced into a software protection failure shutdown when a /x client was restarted. The OPC DA Server will now correctly acquire its license from the license server.
This issue would occur if a list was configured to display different Genies (using the DspSym Cicode function) on the same display column. If some objects within the Genie were configured with touch / keyboard inputs, phantom touch targets (such as an input cursor box) could appear when the list item was updated with a different Genie. This could occur due to scrolling or other Cicode functions. If a user engaged the phantom input (such as by clicking on it), the client may have stopped working. A phantom touch target will no longer appear unexpectedly when a list item is updated with a new Genie.
v8.40 Update 06 (Jun 13, 2023)
IODeviceInfo response statistics have been fixed and are now called "Read Response Times". These have been removed from the Kernel 'General' screen but still exist in the 'Drivers' and 'IO Devices' Kernel screens. Note that these stats only are valid when the Count is greater than zero. Also, stats are only meaningful for devices which have latency in the request and response to reads. Some drivers (e.g. front end / backend) may have a "0" figure for the response time.
Changes made in version 8.40 could result in invalid DISKDRV statistics and an unexpected shutdown when viewed from the Kernel. This no longer occurs.
When an I/O server has [IOServer]DisableConnectivityPropertiesAndExtensions parameter set to 1, the tag properties and extensions of the leaf nodes are no longer available for read/write. This issue has been addressed by only populating the tags on the leaf nodes when the OPC UA parameter "DisablePropertyAndExtensionBrowsing" has been set to "true". In this case, the tag properties and extensions are not browsable.
The correct host name will now be stored for I/O servers in the ServerConfiguration.json file when multiple IP addresses are assigned to same computer.
When in single process mode, the runtime process could stop working when processing many server requests rapidly (for example, when processing a large number of tag writes per second). This could also happen for a display client process in multiprocess mode when processing CTAPI request very rapidly. Plant SCADA will now perform as expected under these circumstances.
v8.40 Update 05 (May 09, 2023)
During a project back up operation on a network share, the removal of ACLs on a backup file would sometimes return an access denied error message. This is no longer occurs as the backup file on the network share now inherits the ACLs from parent folder.
Backups will now be performed in a temporary location which is unique to the initiating process. This will mean that backups which are performed simultaneously will not interfere with each other.
The Cicode function EquipGetProperty would return a blank string for the Parent field when the Mode was set to 2. The function now returns the correct value.
The conversion of a decimal separator for string tags using Equipment.Item has been fixed so that the TagWrite Cicode function will no longer generate incorrect result when Windows regional setting uses "," as the decimal symbol.
Clicking exactly on the border of a runtime tooltip would not dismiss the tooltip and pass the mouse click to the page element below the tooltip. This now works correctly.
The AVEVA Enterprise Licensing provider now correctly handles the releasing of licenses for an I/O server.
Plant SCADA Studio will now launch as expected when there is already another instance running in a different Windows login session. This change is not designed to allow multiple users to access a common project from different remote desktop sessions on a single Windows server computer. To do this, you should externally manage this situation to avoid any scenarios that would allow two people to make changes to a project at the same time. Support for multiple users should be enabled using Include Projects.
On startup, the System Services process would attempt to clear any cached credentials from the AVEVA Data Store (depending on [Client]AutoLoginMode setting) but this would not work and an error message would be logged in syslog.dat. Only the display client will now attempt to clear the cached credentials. Note that the error message was benign and the situation had no adverse effect on the system.
When a 64-bit alarm server shuts down unexpectedly while running in service mode, the CitectException zip file containing the crash dump and relevant logs is now created as expected.
v8.40 Update 04 (Apr 11, 2023)
When importing an alarm summary from a v7.20 (or earlier) alarm save file, some summary events would be associated with the wrong tag if there were more than 255 alarm tags. Imported events that were added with AlarmSumAppend would have an empty SumDesc column if the associated alarm has never changed state. If these events were committed with AlarmSumCommit, they would not be imported at all. An import will now handle these events correctly. This also fixes an empty SumDesc for new events added through AlarmSumAppend (after import) when alarm has never changed state.
When a multi-digital alarm was configured with a state other than state 000 as 'Off' (for example. 0 is used in the 'Trigger xxx' field in Plant SCADA Studio), the SA alarm list would show the icon for 'Active, Unackowledged' instead of 'Cleared, Unacnowledged' when the alarm was in that state. The correct icon is now displayed.
When you restore a backup of the current project, Plant SCADA will now check if Graphics Builder has any unsaved changes. If unsaved changes are detected, a popup message box will appear instructing you to review these changes in Graphics Builder. If there are no unsaved changes, then all opened items in Graphics Builder will be closed and any cached information will be purged. Restore will then proceed normally.
The StrClean Cicode function will no longer remove non-ASCII characters (those in the range 128-255) that are valid printable characters in the current locale.
Incorrect usage, where a Cicode function calls another function, is detected at compile time. However, if a Cicode function is called dynamically via command line or TaskCall(), this can only be detected at runtime. These syslog traces were created unconditionally but they can now be controlled by a new INI parameter [Code]DynamicCallDebug. Logging is disabled by setting to 0 and enabled by setting to 1. To maintain existing behavior, the INI is enabled by default.
A redundant alarm server pair with a large memory footprint and many connected clients could take a long time for alarm counts to switchover to the standby server when the primary server is shutdown. This has now been improved.
The deployment client plugin now uses entered user credentials to register with the System Management Server's Identity Manager.
Additional logging has been provided when adding a version for deployment in IDEtracelog.dat. This will provide details of the cause if this process is unsuccessful. A dialog will direct the user to the log file upon completion if there are any errors.
If a deployment client machine was registered to a System Management Server using a short machine name, it would appear as offline on the deployment server. The deployment client plugin will now store the AVEVA Identity Manager server address as fully qualified machine name.
When This occured when OPC Factory Server would run when only an HMI license was available or activated. The AEL provider will now check for HMI licenses.
If a project was configured to use drivers, the I/O server would acquire driver license(s) and release them as required. If releasing AEL licenses is not working successfully, the I/O server would log the failure message to syslog. The log message was incorrectly configured, which would cause the I/O server to stop working. The I/O server now logs correctly to the syslog.
If you were using a Windows regional format that use a comma as the decimal separator and space as a thousands separator (for example, English (Sweden)), passing a decimal value containing a comma to TagWrite would not work. For other locales that have comma as the decimal separator and period as the thousands separator, TagWrite would succeed but with the wrong outcome (for example, "1,5" would write "15"). This only affected newer locales that do not have an ANSI code page defined. Decimal values with comma will now write correctly for all locales.
v8.40 Update 03 (Mar 14, 2023)
This would occur after modifying an alarm tag to move the last part of its equipment to the item field (and renaming the corresponding equipment database entry). On restart of the alarm server, the alarm could no longer be acknowledged. Alarm acknowledgement now works correctly under these circumstances.
ServerInfoEx would sometimes return incorrect licence information when using an ordinal position as the Name parameter. The internal licence status of all internal connections will now be correctly cleared following the loss of connection between server and client. In addition, ServerInfoEx has been enhanced so that when using the ordinal option (i.e. Name is "<number>") the number representing Type can be supplied in a 100-based format so that all connections between server and client will be considered in evaluating that Type. The default behaviour for this is that only a subset of connections will be evaluated. For example, using Type 106 will search all connections to determine whether the client has a licence from the server, whereas using 6 will ignore some connections. Please note the enhanced 100-based format should be used with v8.30 or above to avoid missing connections. Do not mix the enhanced 100-based mode with non-100-based mode. For example, if your Cicode uses mode 106 rather than 6 to query whether the client has a licence from the server then it should use 107 rather than 7 if it also enquires on the type of licence.
Some of the CHM help files installed with Plant SCADA had increased dramatically in size due to the inclusion of some unnecessary image files. This could impact the size of a backup if the CHM files were included in a miscellaneous files package. The CHM files have now been fixed. Customers who packaged a help file as part of a miscellaneous files package will need to recompile to get the smaller file.
When an OPC UA client requested a connection to the Plant SCADA OPC UA server, it would wait to establish connections to all I/O servers before replying to the client. This would cause a timeout for waiting clients, particularly when the standby I/O server was not running. The Plant SCADA OPC UA server has been changed to reply to a client as soon as one connection to I/O server is established.
When an unexpected shutdown occurred, the required log files would exist but were not being placed into the crash.zip file. The files are now located in the correct zip file. The debug.log "Raw Stack Dump LONG HEX" section has been removed.
If no one was logged in at startup, a Web Content profile was not created. This meant no context was passed when a browser instance was created. A view-only profile is now created at startup if no one is logged in.
v8.40 Update 02 (Feb 14, 2023)
The demo license will no longer prevent a remote client from obtaining a remote license.
The License State and Type fields on About dialog (and Serial & Part number) are hard-coded to fixed strings. The license tab from About box is now removed.
When a 2020 R2 or newer server receives a license request message from a 2018 R2 or older client, the server incorrectly rejects the message as being invalid. This results in the client not being able to obtain the remote license from the server. The license message handling has been changed to resolve this issue.
The Process Analyst control in SxW_Style and Tab_Style templates (as well as some pages in the Example project) had the default user name set to "User" on the Connections tab. Due to the default user name, connections to CTAPI would not work when encryption was enabled and Process Analyst would be unable to fetch trend data. The hard-coded user name has been removed from these templates and pages allowing Process Analyst to retrieve trend data when encryption is enabled. Note: Please run "Update pages in Active and Included Projects" option in Graphics Builder if any customer projects are created based on SxW_Style and Tab_Style templates.
In rare circumstances, graphics runtime would stop working when navigating to a new page, or when displaying a popup menu from Cicode. The display client will now continue working when these circumstances occur, though the page or menu will not be displayed.
v8.40 Update 01 (Dec 13, 2022)
Alarm delay and threshold values that have been modified at runtime are no longer reset to DBF configured values on server restart. This was occurring due to a privilege being configured for an alarm.
Browsing for alarm sound files now works for any priority (0-255) in Computer Setup Editor. Previously this would only work for 0-9.
Where a user specifies a backup path, any missing directories in that path will now be created before attempting to save the backup file to that location.
A project with remote servers configured that were running in standalone mode (i.e. no networking, so remote servers could not be contacted) would attempt to connect to those servers on 127.0.0.1 or ::1. This could result in potentially incorrect status for those servers being returned by the ServerIsOnline function if there was a local server running on the same port. This situation is now handled correctly.
When switching from a local project to a deployed project and using a profile, the Runtime Manager UI displayed an incorrect error message as follows "Could not start runtime due to missing permissions". This issue was observed due to an incorrect ini path setting inside the Runtime Manager when there were no deployed projects available. This issue has now been fixed and the above error message will not be displayed. The Runtime manager UI will instead display the following message in this scenario "Deployment is enabled but no project has been deployed".
Graphics Builder now works correctly when editing a composite genie that has an unconstrained Int parameter (i.e. one with no <Values> child element in the genie template).
The main client now checks for license type while consuming the AEL license. If the consumed license is a perpetual license, then the product will run continuously and expiry details will be set to 0.
In Portuguese locales, configuring a period field (for example, on the Trend form) with a day name that contains a dash (for example, "Segunda-feira") would result in "Invalid time format" error. This now parses correctly.
Plant SCADA Studio would stop working when saving changes to a grid view. The 'Saving changes' dialog would not go away if a save happened while an external process was modifying other files in the project folder (for example, if the report server was running and configured to write reports to the project folder). Plant SCADA Studio will now handle this situation correctly.
After applying the July 2022 monthly update, reports with no output device will run in series (one after another) if they are started at the same time. The stacking of the report execution was initially introduced to prevent the corruption of the report output, especially for reports in Rich Text Format (RTF), that share the same output device. However, the fix incorrectly treats reports with no device as sharing the same (empty) device, and unexpectedly stacks their executions. Given the stacking of report execution for reports in non-RTF format can be achieved by adding semaphore / critical section Cicode segments in the report format file, the automatic stacking of report execution now only applies to RTF reports that share the same device. Reports of other formats or reports with no device assigned will run in parallel if they are started at the same time.
The content in reports was not correct when multiple reports were triggered simultaneously. This occurred when an output device worked on many reports at same time. A reports waiting queue has now been introduced so that reports are processed when the output device is available.
The alarm server database engine has been updated to the latest version. Note that an installation of 2020 R2 Update 11 or later will be unable to be upgraded to 2023 RTM version, instead you must upgrade to 2023 Patch 01 or later.
When using version Plant SCADA 2020 R2 (8.30) CTAPI binaries in a custom application to connect to earlier versions of Citect or Plant SCADA with the reconnect (CT_OPEN_RECONNECT) mode, the application may hang and time out with a deadlock detected error message when it tries to close the connection calling CtClose. This impact client applications incorporating the 8.30 binaries which were required to connect to CTAPI servers on versions 8.20 and earlier. The updated CTAPI binaries address this issue. Note that with the updated CTAPI binaries, using a hostname to connect to a CTAPI server running 8.20 or earlier may not succeed if Windows is configured to return an IPv6 address for that hostname, as 8.20 and earlier do not support IPv6 network addresses. To avoid this, use an IPv4 address directly, or if encryption is enabled, configure Windows to return an IPv4 address in preference to an IPv6 address.
Enhancements
v8.40 Update 07 (Jul 11, 2023)
When running a project configured with many I/O devices, the user may get an "Out of Kernel Tasks" error message when using the previous default value of the [Kernel]Task parameter which was 256. Such systems require a higher value to be set for the [Kernel]Task INI parameter. To reduce the occurrence of this error, the default value of the parameter has been increased to 512.
v8.40 Update 06 (Jun 13, 2023)
The shortcut text Ctrl+F4 has been added to the Close menu item in Graphics Builder. This will only be available in the English version. All other versions will be addressed in the next full release.
v8.40 Update 05 (May 09, 2023)
The deployment client plugin now uses entered user credentials to register with the System Management Server's Identity Manager. An updated message is now provided when a deployment client machine cannot register with a System Management Server due to an unexpected exception.
A new INI parameter [Animator]EnableWebContent has been added. Set this to 0 (default = 1) to disable Web Content at runtime. This will prevent the creation of extra Citect32 processes.
v8.40 Update 04 (Apr 11, 2023)
The user can now specify the font of their choice for the selected rows of the alarm pages provided with the Situational Awareness Starter Project. By default, the font for the selected rows is the same as that of the unselected ones. To specify a different font for the selected rows, define fonts SA_AlmSelRow (for project of HD1080 resolution) and SA_AlmSelRow4K (for project of UHD4K resolution) in your own project. At runtime, when a row is selected on the alarm list, the text on that row will be displayed using the specified font.
v8.40 Update 01 (Dec 13, 2022)
The Cicode stack window would reach capacity in some scenarios, such as when the code being debugged involves nesting or a lot of variables. The size of the stack window buffer has now been doubled.