.

Release Notes: CODESYS Visualization 4.10.0.0

Key Issue Type Summary Resolution Note
VIS-6728 Bug

[Table] Inputconfig "OnValuechange" will be not executed

Fixed
VIS-6615 Bug

Alarms: REP_ACK alarm can cause 30402 database errors

Fixed [[GENERAL]]
Apart from the bugfix itself the maximum size of the queue used for synchronizing the Alarm-Evaluation-Task and the Alarm-Storage-Task has been limited to a reasonable maximum size which is derived from the total number of alarms in an application. Details of this calculation can be adjusted using the library parameters STORAGE_QUEUE_SIZE_FACTOR/STORAGE_QUEUE_MINIMUM_MAX_SIZE. This is only necessary in case there are problems with the amount of memory allocated by this queue.
VIS-6604 Improvement

Visu, Manager: Improve tooltips in Codesys IDE

Fixed
VIS-6599 Bug

Alarms: Assertion when opening customer project

Fixed
VIS-6573 Bug

Access Denied Error during open an Projcetarchive with visu-style

Duplicate
VIS-6572 Bug

[VisuElems] Incorrect string representation in Unicode

Won't Fix [[GENERAL]]
Won’t fix. The programming system and the runtime do not exchange encoding information, which can lead to incorrect character interpretation when Unicode is enabled and the DynamicTextGetText function is used. To prevent this issue, either use UTF‑8 or switch to Unicode and use DynamicTextGetTextW.
VIS-6562 Improvement

Visu, MouseWheel: Support scrolling in AlarmTable

Fixed
VIS-6556 Bug

Visu, Alarms: Timestamp inactive not set immediately for event and API alarms

Fixed
VIS-6555 Bug

Visu, IV: Error in online mode when using VAR_CONSTANT FB in frame in an IV without WebVisu or TargetVisu as DeviceTree Object

Duplicate [[GENERAL]]
The issue has been fixed together with VIS-6471.
VIS-6520 Improvement

Visu: Support mouswheel scrolling

Fixed [[GENERAL]]
With Visualization version 4.10.0.0 mouse wheel scrolling is supported for the following elements: Table, Comboboxes, Scrollbar, Slider, Round Slider, Potentiometer, Frame, Tab Control, Spin control and Alarm Table.
Note: Online zooming and scrolling of the browser or editor via mouse wheel is not possible within the visualization area anymore. See VIS-6612.
VIS-6508 Bug

Alarm Manager: GetCountAlarmsFromStorage returns wrong value

Fixed
VIS-6495 Bug

Visu, Table: Table scrolls when selected even though it should not scroll

Fixed
VIS-6479 Bug

Responsive Design: Visu size is wrong calculated with two clients where one is in portrait and the other is in landscape size

Fixed
VIS-6471 Bug

Visualization Exception when using non existing variable in Integrated visualization

Fixed [[GENERAL]]
The assertion has been removed and error messages have been improved.
VIS-6456 Bug

AccessViolation/Application Stop when enabling Alarm History and interacting with Alarm Table

Fixed
VIS-6391 Improvement

Visu, Webvisu: Re-Activate websocket support

Fixed [[GENERAL]]
With this release, WebSocket support is enabled by default, delivering improved communication performance and a more responsive user experience.
Under normal circumstances, if a client does not support WebSockets, the system will automatically fall back to alternative communication mechanisms. However, on certain older or constrained devices, this may still lead to unexpected behavior or compatibility issues.
In such cases, WebSocket functionality can be disabled using one of the following options:

Via URL parameter
Add the following parameter to the URL:
CFG_WebSocketsDisabled=TRUE

Via runtime configuration (CmpWebServer)
WebSockets can also be completely disabled at the web server level by adding the following entry to the CmpWebServer section of the runtime configuration file:
WebSocketSupportDisabled=1
VIS-6381 Bug

Fix XY-Chart Textlist Refactoring after VSPRT-Change

Fixed
VIS-6378 Bug

Replace all GetRandomFileName calls with TemporaryFileService

Fixed [[GENERAL]] Fixed a file access denied error caused by an incorrect base path, which led to issues with archive extraction and other operations.
VIS-6377 Bug

Visu, exception in update in specific customer project

Won't Fix [[GENERAL]]
This issue will not be fixed because it is caused by a misconfiguration in the project, leading to an out of bounds array access.
VIS-6330 Improvement

Visu, Dialogs: Publish library VisuDialogs completely as example

Fixed
VIS-6320 Bug

XYChart doesn't scale correctly

Fixed
VIS-6315 Bug

Visu, Integrated: Assertion with some input configurations using undeclared variables

Duplicate [[GENERAL]]
This issue has been fixed with VIS-6471.
VIS-6313 Bug

Alarms, Refactoring: Renaming Textlist not affecting AlarmGroupTemplate

Fixed
VIS-6296 Bug

Visu: Unexpected warnings when referencing images in deep library hierarchies

Fixed
VIS-6295 Improvement

Update HTML5 reference documentation

Fixed
VIS-6293 Bug

Trend: shown errors and locating there issues are not well documented

Fixed
VIS-6286 Bug

Visu: Inconsistent version requirements between datasheet and addon

Fixed [[COMPATIBILITY_INFORMATION]]
As already stated by the datasheet of CODESYS Visualization before, the AddOn will require at least CODESYS 3.5.19.10 for installation beginning with CODESYS Visualization 4.10.0.0
VIS-6278 Bug

visuelemswincontrols: Exception error when using the 'Dynamic scrollable' option in a Frame element

Fixed
VIS-6267 Bug

Visu: Opening project misses image pool when no constraint checker cache exists

Fixed
VIS-6253 Bug

Visu, NativeControl: Codesys crash during compile and compile errors with self-referring types

Fixed [[GENERAL]]
If the errors should still occur after updating the project, a Clean All may be necessary once.
VIS-6251 Improvement

Visu, Alarms: New event icons for alarm group editor are available

Fixed
VIS-6250 Bug

Visu, Trend: No Compile error due TrendRecoringTask priority is not unique

Fixed [[GENERAL]]
To implement the final solution, VIS-6332 must be completed. In the mean time, the newly introduced target settings may be utilized to define default task priorities for generated tasks. These settings will be evaluated when a new Trend Recording objects are added.
Trend Interval Task:
<ts:section name="trendrecording">
<ts:setting name="intervaltask_priority" type="integer" access="visible">
<ts:value>15</ts:value>
</ts:setting>
</ts:section>
Alarm Storage Task:
<ts:section name="alarmmanager">
<ts:setting name="storagetask_priority" type="integer" access="visible">
<ts:value>31</ts:value>
</ts:setting>
</ts:section>
VIS-6246 Improvement

[Refactoring] Frame References should also modified automatically

Fixed [[GENERAL]]
The Update Parameters dialog now retains variable instances even when data types or variable names in the visualization interface are modified. This prevents the loss of parameter assignments during refactoring, which previously required manual re‑mapping.
VIS-6245 Bug

[XY Chart] Structarrays direct from lib could not be added to Graph

Fixed [[GENERAL]]
Projects with compile errors will not be automatically fixed with this issue.
To get rid of the errors, in the according xy-charts the variables for the curves have to be reconfigured. With the newly assigned variables, the compile error will vanish.
VIS-6237 Bug

Visu, Git: Invisible property of a single visu element is applied to the entire visu group after branch checkout

Fixed
VIS-6235 Bug

Security issues in System.Data.SQLite versions before 2.0.2 containing SourceGear.sqlite3 3.50.4.2

Fixed
VIS-6232 Bug

Visu, Comboboxarray: variable for number of rows is not working correct

Fixed *
VIS-6231 Bug

Visu, Targetvisu, Overlay: Problem in Linux QT6 TV leads to frozen TV

Fixed
VIS-6228 Bug

Visu: Exception during download when used in write protected environments

Fixed
VIS-6218 Bug

Visu: Compile errors when opening user management dialogs from library

Fixed
VIS-6217 Improvement

Targetsetting docu: Change visualization\\targetsupport\dialogsettings_UseVisuDialogs

Fixed
VIS-6214 Bug

Exception when comparing two projects

Duplicate
VIS-6210 Bug

Visu, Web: Frame Swiping stops in newer Safari version

Fixed
VIS-6209 Bug

WebVisu - Resize Problems

Fixed [[GENERAL]]
Improved resize handling and fixed an issue where opening the virtual keyboard triggered a window resize event, causing the input field to lose focus. This behavior previously prevented users on some smartphones and tablets from entering their credentials.
VIS-6205 Bug

Visu, Dialogs: Make comments regarding published example more noticable

Fixed
VIS-6204 Bug

CODESYS Visualization: Input Cloning Vulnerability

Fixed [[GENERAL]]
For more details see CODESYS Security Advisory 2026-07, which is available on the CODESYS website:
https://api-www.codesys.com/fileadmin/user_upload/CODESYS_Group/Ecosystem/Up-to-Date/Security/Security-Advisories/Advisory2026-07_VIS-6204.pdf
VIS-6202 Improvement

Alarms: Improve performance of placeholder replacement

Fixed
VIS-6198 Bug

AlarmStorage: only four latch variables can be retrieved from storage

Fixed
VIS-6195 Bug

Textlist: Not possible to make an online change when adding an empty textlist

Fixed
VIS-6183 Bug

CrossReferenceList: Exception when jumping into source library with alarm instance

Cannot Reproduce [[GENERAL]]
Issue could not be reproduced according to provided information.
VIS-6171 Bug

Visuzalization Manager Logout settings label not completely shown

Fixed
VIS-6170 Bug

Visu, Trace: Global retain variables always display value zero

Fixed
VIS-6169 Bug

AccessViolation: Changing textlist and login with OnlineChange occasionally leads to an exception

Won't Fix [[GENERAL]]
This issue will not be fixed because there it was caused by an error in the customer project.
VIS-6166 Improvement

Visu: Include package reference to CODESYS Math Libraries

Fixed
VIS-6162 Bug

NullRefException when deleting Folder

Fixed
VIS-6154 Improvement

Visualization Tags View: Possibility to copy variable names to clipboard

Fixed [[GENERAL]] Added a command to export variable names directly from the Visualization Tag View.
You can now right‑click and select “Copy Variable Names” to copy variable names.
VIS-6151 Bug

AlarmTable: Bad performance on customer project

Cannot Reproduce
VIS-6043 Improvement

Visu, FileAccessProtection: Shows warning when no login visu is configured

Fixed
VIS-6040 Improvement

Recipes should be able to use the new FileSaveDialog if set

Fixed [[KNOWN_LIMITATIONS]]
Using the FileSaveDialog2 from the Recipes will also require an implementation of REC-306 within CODESYS Recipes
VIS-6031 Bug

Visu, Alarms: Improve performance in AlarmConfigurationTemplateObjectFactory

Fixed
VIS-6015 Improvement

[Alarm Table] Option for change Background color

Fixed [[GENERAL]]
With Visualization version 4.10.0.0 the alarm table colors can be customized via "Color properties" by selecting usage of "Individual settings".

[[KNOWN_LIMITATIONS]]
Style related restrictions:
* Flat style: Fully supports all configurable colors.
* White style & Basic style: Header frame color acts as secondary color for gradient look.
* Default style: Background frame color and Row colors are not supported.
VIS-6013 Bug

[Alarm] "Event" type is NOT affected by Group Deactivation

Fixed [[COMPATIBILITY_INFORMATION-EndUser]]
Deactivating an alarm group now also affects API- and event-based alarms by default as this is obviously the expected behavior.
To restore the previous behavior, set the following compiler define in your application: DISABLE_GROUP_DEACTIVATION_FOR_API_ALARMS
VIS-5995 Bug

Visu, AlarmTable/ Banner, with selected uninstalled style has compile error

Duplicate
VIS-5990 Bug

Button, frame: color change does not work when called via a frame and a declared input action

Duplicate [[GENERAL]] Duplicate – see VIS‑5781
VIS-5987 Bug

Search, replace in Visualisation: References and specified variables in Visu elements are not found or displayed in the search results

Fixed
VIS-5963 Improvement

Visu, Runtime Based User Mgmt: Add active runtime/device password policy to vis object

Fixed [[KNOWN_LIMITATIONS]]
Currently available versions of CODESYSControl do not provide detailed policy violation information when setting passwords. Therefore with the fix of this issue improved but still generic information is displayed in the error message in case of a policy violation error.
Displaying complete password policy will be implemented by VIS-6586 once according information can be retrieved from CODESYSControl
VIS-5961 Bug

Visu, ProjectCompare: Possible performance flaw due to many unnecesssary exceptions

Fixed
VIS-5960 Bug

Visu, ProjectCompare: Performance flaw due to usage of full scale editor objects

Fixed
VIS-5959 Improvement

Improve Alarms: Data-Memory

Fixed [[GENERAL]]
The number of efficiently used Placeholders which can be analysed in a message is freely configurable in AlarmParams.EFFECTIVE_USED_PLACEHOLDERS. This parameter defines the maximum effective number of placeholders that can be processed within a message. A value of 10 means that up to ten placeholders will be evaluated. The value should be set as high as necessary to cover all expected placeholders, because limiting it too much may prevent correct message processing.
At the same time, it should be kept as low as possible, since unnecessarily large values can negatively impact performance and memory usage.

[[COMPATIBILITY_INFORMATION]]
If a project is using more than 10 message placeholders in single alarm messages, then the library parameter value AlarmParams.EFFECTIVE_USED_PLACEHOLDERS has to be adjusted accordingly. A logger message gives according hints to the user too.
VIS-5958 Improvement

generation imagepoolcollection.csv independently of the use of WebVisu object

Fixed [GENERAL] There is a new target setting "visualization\targetsupport\visualization_generate_imagepoolcsv_on_compile" of type bool now. When enabled, the visualization will automatically generate the ImagePool CSV during compilation.
The generated file will be placed next to the project file, and its name will have the following format:
{Project-FileName}.{Application-Name}.ImagePoolCollection.csv
VIS-5955 Improvement

Visu, Libs: Make visu compatible with BaseLibs 5.0.0.0

Fixed
VIS-5947 Bug

[Table] First row missing if "Maximimum Array Index" is set

Fixed
VIS-5946 Bug

Alarm message text is not exported with AlarmStorage CSV Export

Duplicate [[GENERAL]]
Duplicates VIS-5927
VIS-5938 Bug

Alarm Manager: If the latch variable is defined as String the placeholder is shown if Stringsize is >59

Fixed [[GENERAL]]
CDS-54773 introduced an AlarmManager Library Parameter "AlarmParams.PLACEHOLDER_VALUE_LENGTH" to configure the buffer size (in bytes) for replaced placeholder strings. The default value is 120 (enough to fit in a WSTRING of length 59 taking into account the string terminator).
E.g.: A STRING of length 80 will require buffer size of 2 * (80+1) = 162 as "AlarmParams.PLACEHOLDER_VALUE_LENGTH" for the conversion to WSTRING.

Due to a bug this size was not taken into account correctly and resulted in overflow which was now fixed with Visualization 4.10.0.0.
VIS-5932 Bug

Alarm Table/Banner leads to compile error in old projects

Fixed
VIS-5927 Bug

Visu, Alarms, Export: Messages are not stored in csv file

Fixed
VIS-5916 Bug

Combo box, Array: given Template Color variables can't be used properly for the comobox cells color

Fixed
VIS-5915 Improvement

Alarm Instances: Add possibility to define the default AlarmGroup

Fixed [[GENERAL]]
With the new attribute 'alarmgroup_default' a default alarm group on creation of new alarm instances can be defined instead of the default 'AlarmGroupInstance'. This attribute can be defined on alarm instance variables, function blocks with related alarm group template or their base function blocks.
Note about priority: The definition on a variable overwrites a definition on an extended function block which overwrites a definition on its base function block.

Example:
{attribute 'alarmgroup_default' := 'MyDefaultAlarmGroup'}
varInst : MyAlarmInstanceFb;
VIS-5905 Bug

VU.FbOpenDialog, Modal with x/y value of "0" does open in Window center position

Fixed
VIS-5888 Bug

C0077, Unknown Type Errors within visualisations do not show the code/error position

Cannot Reproduce [[GENERAL]]
Error could neither be reproduced in Visualization 4.9.0.0 nor in Visualization 4.10.0.0. A newly created project with the same configuration didn't show those error messages.
VIS-5887 Improvement

Alarms, Instances: Improve performance of deleted AlarmGroupTemplate

Fixed
VIS-5877 Bug

Menu Visualization is visible because wrong condition for IsVisible

Fixed
VIS-5844 Bug

Alarm Manager: Fix time in column "Min. Pending Time" leads to compile error

Cannot Reproduce [[GENERAL]]
The issue could not be reproduced after updating the project. The reason for the compilation problems were not literal "Min Pending Time" values but instead a placeholder redirection of the Alarmmanager library in the application which was not consistent to version of the Addon "CODESYS Visualization".
VIS-5830 Bug

[XY-Chart] More than 20 Webvisuclients at XY-Chart Page leads to Warning Message entry in Logfile

Fixed [[GENERAL]] A new parameter "MAX_CLIENTS" has been added to the XY‑Chart library. Its default setting is 20, but it can be adjusted upward depending on application needs.
VIS-5807 Bug

WebVisu: Visu element "Web Browser" does superimposed input keyboards and dialogs

Won't Fix [[GENERAL]]
This behavior is a known limitation of the legacy visualization, as native OS controls (such as the web browser) always appear above the visualization content. The recommended solution is to use the overlay visualization, which was designed specifically to address this issue.
VIS-5806 Improvement

Improve message: Database Error in method WriteToStorage Errorcode 30402, Action 1017

Cannot Reproduce [[GENERAL]]
The issue could neither be reproduced with Visu 4.10.0.0, 4.9.0.0 or 4.8.0.0.
VIS-5792 Improvement

[Trend] Implement Interface for Error Handling

Fixed [[GENERAL]]
A new interface ITrendErrorListener in library VisuTrendStorageAccess was introduced.
Implement the listener and add it to g_TrendErrorListenerManager of the GVL TrendGlobals. The listener will be notified on errors happeniong on the trend.

Example:
trendErrorListenerFBInstance : TrendListenerFB;
ITrendErrorListenerInstance : ITrendErrorListener;

IF __QUERYINTERFACE(trendErrorListenerFBInstance, ITrendErrorListenerInstance) THEN VisuTrendStorageAccess.TrendGlobals.g_TrendErrorListenerManager.AddListener(ADR(ITrendErrorListenerInstance));
END_IF
VIS-5785 Bug

Exception for 'Meter element' with 'overlay feature' and "frame outside" in certain sizes

Fixed
VIS-5781 Bug

Input configuration for frames ignores Input configuration within referenced visu elements

Won't Fix [[GENERAL]]
To use inputs both in frame elements and their referenced visualizations, the standard node "Forward Inputs" can be added in the "Frame Configuration"
This issue will not be fixed because a bugfix could cause quite a risk and the concrete usecases of using Enter / Leave on a frame referencing elements with inputs are not clear. Instead, the documentation was extended to make clear which restrictions "Forward Inputs" implies (Enter/Leave on Frame, MouseClick inside the referenced visualization). A MouseDown can be used instead of a MouseClick.
For details see
https://content.helpme-codesys.com/en/CODESYS%20Visualization/_visu_cmd_add_standard_property_node.html
VIS-5779 Improvement

Visu: Optionally don't insert libraries to POUs

Fixed [[GENERAL]]
With the following OEM customization hook, no visu libraries will be added to the POU library manager when the first visualization object is added to the project.
Section: Visualization
Key: NoVisuPoolLibraries
Type: Bool
VIS-5778 Bug

Visu, Combobox Integer: Support using project textlists in libraries

Fixed [[GENERAL]]
In order to use textlists from the project in a combobox integer from a library, pass the textlist name with a prefix '.' to look from the global scope.

E.g. Use '.Textlist' instead of 'Textlist'
VIS-5755 Improvement

[Webvisu RDNCY] Switchover should also work during switch in modes different from "passiv"

Fixed [[COMPATIBILITY_INFORMATION-EndUser]]
The visualization redundancy will now also attempt to do a switchover when the active PLC goes into exception or simulation state.
VIS-5751 Bug

Visu, Frame Interface: The SEL operator is not working with Image frame interface type

Fixed
VIS-5745 Improvement

Alarm Config: Dynamic settings for on/off delay time

Fixed [[GENERAL]]
The On/ Off Delay time can now be configured with variables of datatype TIME or with Time literals.
VIS-5737 Bug

Visu: Using inside a library an FB property in a visualization element property leads to error C0131

Won't Fix [[GENERAL]]
This compile error is now shown because there was a change in the SP21 compiler, see also CDS-88986. With this update, all objects, including visualisations, will be checked within libraries and more compile errors can ocurr. The current behavior is the intended one.
VIS-5731 Bug

Visu. “Alarm table” Automatic line break seems not work correctly

Fixed
VIS-5708 Bug

MessageBox "Parameter is not valid" appears, without any context

Fixed [[COMPATIBILITY_INFORMATION]]
Added a warning message when an image element has a width or height of zero
VIS-5648 Bug

Repeated click on Deactivated Inputs cause "buffering" effect for the given inputs

Won't Fix [[GENERAL]]
Won't Fix. The problem is caused by the project configuration where the VISU-Task cycle time is configured too slow (500ms).
The input buffering issue can be avoided using the Visu Utils functions described in VIS-5554 starting with Visualization 4.9.0.0.
VIS-5641 Improvement

Visu: It should be possible to set up default input type for all visualization types in PLCs device description file: Keyboard or Touchscreen

Fixed [[GENERAL]] Added two new target setting: configuration entries under for device descriptions:
'visualization\targetsupport\webvisualization_defaultinputmethod' and 'visualization\targetsupport\targetvisualization_defaultinputmethod'. These allow overriding the default input method for newly inserted WebVisu and TargetVisu objects. Possible values: 1 = Touchscreen, 2 = Keyboard. The Target-VisualizationSetting is only overridable if TargetvisuSupportsKeyboard is set.
Example:
<ts:setting name="webvisualization_defaultinputmethod" type="integer" access="visible">
<ts:value>2</ts:value>
</ts:setting>
VIS-5638 Improvement

Visu, Alarms: Use queue for evaluation of alarms

Fixed [[GENERAL]]
A dedicated queue for faster processing of programmatic alarms (Event + Alarm API) has been introduced internally.
This enhancement reduces jitter in tasks that use the IAlarmHandler functions RaiseEvent and ActivateAlarm/DeactivateAlarm.

[[COMPATIBILITY_INFORMATION]]
When multiple RaiseEvent calls occur in quick succession, the alarm table now displays the latch variable value from the first call—this differs from the previous behavior.
VIS-5635 Bug

Visu, Manager: Modification of setting 'Use unicode strings' in one controller will modify setting in 2nd controller

Won't Fix [[GENERAL]]
This issue cannot be fixed because depending on the setting, different code has to be generated. However, since library visualizations can only return exactly one variant of that code, the setting also affects other applications within a project.
VIS-5625 Improvement

VIS: Frame with VAR_IN_OUT referencing Property leads to compile error in WebVisu

Won't Fix [[GENERAL]]
The CODESYS compiler does not support passing properties or method/function return values using VAR_IN_OUT. Since the CODESYS visualization is based on the same features, this is not possible for the visualization either.
VIS-5617 Improvement

Improve Touch Experience with Scrollbars

Fixed [[GENERAL]]
Two new style entries are evaluated now. These can be added to customized visualization styles in order toadjust the scrollbar behaviour:
* "Element-Scrollbar-Knob-MinLength": Sets the min length of the scrollbar knob e.g.: <Value name="Element-Scrollbar-Knob-MinLength" type="dint">20</Value>
* "Scrollbar-Knob-AdditionalTouchArea": Sets the additional detection area to the left/right (horizontal scrollbar) or top/bottom (vertical scrollbar) of the scrollbar knob for dragging it in multitouch mode. Default value is 20. Can be deactivated via e.g:
<Value name="Scrollbar-Knob-AdditionalTouchArea" type="dint">0</Value>
VIS-4831 Improvement

Alarms, Onlinechange: Support on SL-Runtimes

Fixed [[GENERAL]]
For devices that support the PLC Setting "enable online configuration change", this setting can also be used for activating onlinechange functionality of Alarms. The according license on the PLC is still necessary
VIS-3489 Bug

Visu, Frame: Frame does not handle input on elements if it has an input configuration of its own.

Duplicate [[GENERAL]]
For details see VIS-5781.
VIS-2971 Epic

Set of new controls for the webvisu/targetvisu and consistent new look

Fixed [[GENERAL]]
With this issue two new elements RoundSlider and DonutChart were developed.
[[COMPATIBILITY_INFORMATION]]
Configurations within visualization elements that expect a numeric value now raise a compile error if a variable of a non-numeric type is configured.