.

Release Notes: CODESYS Visualization 4.8.0.0

Key Issue Type Summary Resolution Note
VIS-5489 Bug

Online Change when adding alarm with alarm class from library

Duplicate [[GENERAL]]
Duplicates VIS-5072
VIS-5476 Bug

WebVisu, Login: Language texts within a login page do not work with utf8 setting

Fixed
VIS-5350 Bug

Visu: Changing legacy user management settings by online change not possible since 3.5.21

Fixed
VIS-5346 Bug

Table does not show entries after tab switch

Fixed
VIS-5335 Bug

Alarms, Online change: Not all features working using 3.5 SP21

Fixed [[GENERAL]]
The Online Change for Alarm Templates uses a new mechanism now which is working both with 3.5.21 as well as older versions.
VIS-5332 Bug

[Frame] DatePicker triggers OnValueChanged from ComboBox

Fixed
VIS-5329 Improvement

Visu, Webvisu: It should be possible, to use a own "loading" page or just a white screen, that is displayed, when the webvisu is started

Fixed [[GENERARL]] There is a new Style Entry for disabling the Startup Splash Screen now: 'Visualization-StartupSplash-Disabled'.
Additionally, the background color of the Splash is now using the value from style entry 'Visualization-Background-Color'
VIS-5326 Bug

Visu, Alarms: Message in alarm table disappears after Online Change

Fixed
VIS-5323 Bug

Visu, Trend: Compile error on customer device

Fixed
VIS-5322 Improvement

Multitouch: Deactivating the right-click menu in the visualization

Fixed [[GENERAL]] The Context menu is now disabled for Touch inputs on the WebVisu. Additional Config/URL-Options have been added to override this and to completely disable the context menu inside the visualization for all input devices if wanted
VIS-5316 Improvement

Visu, NativeControl: Possibility to configure a string variable or a method at the control property which is used when NativeControlCreate is called (Only when the visualization is entered)

Fixed [[GENERAL]]
The control name is only used when NativeControlCreate is called. NativeControlCreate is called when a visualization is entered. When the variable changes during the same visualization is displayed nothing happens!
VIS-5314 Bug

TexList: Refactoring (Rename) should be supported

Fixed [[GENERAL]]
Refactoring is supported if VSPRT 4.6.0.0 is used and a client is inserted below the Visualization Manager.
VIS-5306 Bug

[XY-Chart] Error Message by using fix number for Axe-scaling

Fixed
VIS-5280 Improvement

Alarms, Online Change: Support textlist rename refactoring

Fixed [[GENERAL]] Refactoring of the name of the referenced textlist requires at least CODESYS Visualization Support 4.6.0.0. When using older versions, the reference to the textlist has to be updated manually when the textlist was renamed.
VIS-5270 Bug

Alarms: No login possible under certain circumstances

Fixed
VIS-5267 Bug

error for '_dwLocalUserGroup' when using access rights of elements for 'none' usergroups

Fixed
VIS-5266 Bug

Visu, Alarms: Multiline alarms not shown when activated in special case

Cannot Reproduce
VIS-5264 Bug

Trend: Interval recording task should be assigned to a task group

Fixed
VIS-5263 Bug

Alarms: AlarmStorageTask should be assigned to a task group

Fixed [[GENERAL]] A clean all is required after the TaskGroup has been renamed in order to update the taskgroup in the alarms completely. The assignment to the task group can affect the real-time behavior of the AlarmManagerTask. With the compiler define ALARMMANAGER_TASK_CREATION_WITHOUT_TASKGROUP the previous behavior can be restored.
VIS-5253 Bug

Visu, Alarms: Download requested after deleting alarm of alarm group

Fixed
VIS-5252 Bug

Visu, Alarms: Download requested after adding alarm to alarm group

Fixed
VIS-5251 Bug

Visu, Alarms: Online Change requested after uncheck "Check alarm instances"

Won't Fix [[GENERAL]]The mechanism behind “Check alarm instances” checks for new or changed alarm instances, if there are none, there will be no code changes. However, there are two different error check mechanisms one if the checkbox "Check alarm instances during compilation" is set and one if not set, this leads to an online change request if the checkbox state changes.
VIS-5210 Improvement

Visu, Generation: Don't regenerate languagemodel in unnecessary cases in VisualProjectSettingsProvider

Fixed
VIS-5195 Bug

Visu, Frame: Problems with nested scrollable frames

Fixed
VIS-5187 Bug

Alarms, Online Change: Renaming of alarm group template requires download

Fixed
VIS-5185 Bug

Visu, Alarms: Precompile errors in Alarm Group Template without Alarm configuration

Fixed
VIS-5175 Bug

Memory usage increases every time on small changes

Fixed [[GENERAL]]
The memory usage and performance was improved while the cross reference view is open.
VIS-5169 Bug

Visu, ComboboxArray: Sporadic crashes during client removal possible

Fixed
VIS-5167 Bug

Visu, Offline: Default color of an element is changed to white, when it used in a frame and one of the interface variables is assigned

Fixed
VIS-5152 Bug

Visu, XY-Chart: Investigate exception in specific project

Fixed
VIS-5149 Bug

Visu, alarmtable, history: After ClearHistory new raised alarms are not shown

Fixed
VIS-5146 Bug

Scrollbar size combo box

Duplicate [[GENERAL]]
This issue duplicates VIS-3404.
VIS-5143 Improvement

Element property angle: Provide rotation and angle property for frame element (only support if overlay is active)

Fixed [[GENERAL]]
There are some minor restrictions. For details please have a look at the online help.
VIS-5138 Bug

Trend: Background of XY Chart blinking if multiple clients viewing in parallel

Won't Fix [[GENERAL]]
The XY chart was not designed to be client-independent. Improvement VIS-5355 was created for this purpose.

However, there is already a workaround to use a different instances of the XY chart element for each client instance.

The flickering can also be easily avoided in the project if eBackgroundType and diColorBg from VisuStructXYChart are set to the same value in all clients.

If a different background color is desired, there is the following solution:

If you integrate several XY chart visualizations in a frame (one for each client) and then activate the frame for the client using CurrentClientID in the switch frame variable, there is a different XY chart visualization for each client.

Frame with the following configuration:
References:
- XYChartVisu
TrendPRG.aTrend_FB[0]
- XYChartVisu
TrendPRG.aTrend_FB[1]
- XYChartVisu
TrendPRG.aTrend_FB[2]
...

Switch frame variable: CurrentClientID
VIS-5123 Bug

Project Compare: Properties of a visu page can not be adopted

Fixed [[GENERAL]]
Properties of visualization pages can now be edited in the compare view.

[[KNOWN_LIMITATIONS]]
The only way to accept visu properties is in the visualization compare view and not in the project comparison view.
VIS-5120 Bug

The alarmtable cannot be scrolled when auto linebreak is active in special cases

Fixed [[GENERAL]]
A page jump (click on scrollbar) in a alarm table with the option "Automatic Linebreak" is limited to 1 row per click.
VIS-5117 Bug

Frame configuration: Image from ImagePool in library not shown

Fixed
VIS-5116 Bug

VisuNativeControl : ActiveX Control is destroyed after creation

Fixed
VIS-5111 Bug

Visu, Alarm Templates: Compile error when library contains '&' in company name

Duplicate
VIS-5106 Bug

Visu, Frame-Interface: Project with text argument not compilable

Fixed [[GENERAL]] Improved error handling on unassigned frame interface variables
VIS-5104 Bug

Visu, Textdisplay: One inputstring to a frame is not displayed but replaced by a global text

Cannot Reproduce
VIS-5094 Bug

Visu, text measurement on the date range selector control element is not remeasured when the time zone changes

Fixed
VIS-5090 Bug

Visu: CurrentClientId is -1 in customer project

Fixed
VIS-5088 Bug

Alarm Template: Exception if library name contains a '&'

Fixed
VIS-5086 Bug

ENUM from library cannot be simply displayed as texts in Target or Web Visualization

Won't Fix [[GENERAL]] There are already mechanisms like the Compile Attribute: to_string (https://content.helpme-codesys.com/de/CODESYS%20Development%20System/_cds_pragma_attribute_to_string.html) If the enumeration declaration is provided with the pragma, the name of the enumeration component appears as a character string instead of the numerical value. There is also the option of using TextlistSupport or DynamicText with a text list from the application. However, no additional mechanism (which will also have disadvantages) can be implemented without a clear explanation why all existing ones are not sufficient.
VIS-5083 Bug

TargetVisu: Invisible state is not updated correctly

Fixed
VIS-5078 Bug

Visu, Frame-Interface: Language switching does not work for editor type text when template is in a library

Fixed
VIS-5072 Improvement

Alarms, OnlineChange: Allow changes on alarm classes

Fixed
VIS-5068 Bug

Visu, Combobox Array, Column with Use template leads to project compare errors

Fixed
VIS-5066 Bug

TrendStorageReader: Method "protRead" does not start with row 1 and "prvTblTrendDataGetValue" exits with 30402 WRONG_PARAMETER

Fixed
VIS-5065 Bug

Error during generate code

Won't Fix [[GENERAL]] This issue will not be fixed as the new error message gives a hint to a potential crash of the customer project. Therefore, the error messages are caused by problems within the project.
VIS-5047 Bug

TrendStorageReader: Simultaneous export and deletion of data returns error 30405 CURSOR_EOF

Fixed [GENERAL] Deleting old Trend-Data is now blocked while reading from Trend Storage
VIS-5046 Improvement

Trend Storage: Maximum number of records shall lead to an estimated storage size calculation

Fixed [[GENERAL]]
An estimated trend database file size is provided after the field "Maximum number of records" in the trend configuration. The real file size can vary e.g because it depends strongly on the recorded values of the recorded variables.
VIS-5043 Bug

AlarmStorage: Maximum storage size exceeded

Fixed
VIS-5040 Bug

Compile error with project on specifc path

Fixed
VIS-5039 Bug

Visu: Task progress not updating when updating visualizations

Fixed
VIS-5036 Bug

internal visu: writing variables in text fields writes to other variables

Fixed [[GENERAL]]
Bug is caused by unsupported elements in integrated visu like e.g. AlarmBanner. This effect is only noticable in elements that come after the unsupported element in the element list of the Visualization Editor.

This problem is fixed with Visualization version 4.8.0.0. Workarounds for affected Visualization versions: Remove the unsupported element from the visualization or move it to the last position in the element list.
VIS-5033 Bug

HTML5: specific element causes compile error

Fixed
VIS-5026 Bug

Visu, Trend: The touch zoom gets unresponsive after a while

Cannot Reproduce [[GENERAL]]
Cannot Reproduce with 4.7 or 4.8 CurDev.
VIS-5012 Bug

HTML5 Table is not shown after open/closing browser check if solved or find workaround

Fixed
VIS-5008 Improvement

Visu, Responsive Design: Easy access to client size

Fixed [[GENERAL]]
VisuElems.CurrentClient.Width and VisuElems.CurrentClient.Height can be used in expressions of elements in a visualization to determine the client size
VIS-5003 Improvement

Visu, Webvisu: Support file access protection

Fixed [[COMPATIBILITY_INFORMATION]]
When the visualization is used together with runtime systems >= 3.5 SP21 and the runtime based usermanagement, then the file access protection in the Webserver will be active.
The effect will be that most of the files provided by the Webserver will be accessible only after a login within the Webvisualization. In case additional files should have to be accessible without a former login, the runtime APIs of CmpWebserver can be used to allow that access.

[[GENERAL]]
For more details see CODESYS Security Advisory 2025-04, which is available on the CODESYS website:
https://codesys.com/fileadmin/user_upload/CODESYS_Group/Ecosystem/Up-to-Date/Security/Security-Advisories/Advisory2025-05_VIS-5003.pdf
VIS-5001 Improvement

Project settings, Visuprofile: Change select box to not editable textbox

Fixed
VIS-4999 Improvement

Table Element: Option to change the column width at runtime

Fixed [[COMPATIBILITY_INFORMATION]]
There were cases where no horizontal scrollbar was displayed in the table, although the last column was not completely visible. This error has also been fixed with this issue.
VIS-4993 Bug

Rectangle: Toggling background color influences font color

Fixed [[GENERAL]]
Accidently caused by the introduction of "Font alarm colors" option in VIS-3842. In the toggle state the alarm font colors were always used. With the provided fix projects which were saved without these options should not have an unexpected behaviour.

Therefore if a user really wants to use a different font color for the Alarm state he needs to either configure a different static font color for Normal and Alarm states or a specific variable for the Alarm font color.
VIS-4992 Bug

Visu, TabControl: Image is displayed truncated on a tab

Fixed
VIS-4991 Bug

Assertion Failed: VisualElemRepository when opening spacific project archive

Fixed [[GENERAL]] Fixed bug, that leads to an exception if a html5-control with a different version as in the archive is extracted
VIS-4987 Bug

Vis, Table: Modification of constants linked to Table element array leads to build error and inconsistent behavior

Fixed
VIS-4984 Bug

Visu: Format Value: %t[ss3] sec does only show the time value and not the text suffix and prefix

Fixed
VIS-4982 Bug

Visu, Editor: Improve performance with many frame elements

Fixed
VIS-4962 Bug

Visu, Swiping: Frames do not respond after quick consecutive swipe actions

Fixed
VIS-4954 Bug

UnitConversion: Use Namebased Guids

Won't Fix [[GENERAL]] No concrete problem except a constructed one known.
VIS-4836 Bug

Tablet Rotation/ Resize leads to some strange effects

Fixed
VIS-4835 Bug

White Blinking Background on Resize

Fixed
VIS-4833 Improvement

Visu, AlarmManager, Interfaces: Improve documentation of interfaces

Fixed
VIS-4829 Bug

XY Chart: Scaling error in the labels

Fixed
VIS-4822 Bug

In spacific cases, the Html5ControlEditor and Visual Styles Editor are not opening

Fixed
VIS-4821 Bug

Visu, IV: refactoring of referenced visualizations in frames does not work

Fixed
VIS-4820 Bug

Visu, Trend: Second axis disappears after visu change

Cannot Reproduce
VIS-4815 Bug

Image will not shown if imageelement is from Library, referenced by a Frame

Duplicate [[GENERAL]]
Duplicates VIS-5117. Here the problem is fixed in Webvisu only.
VIS-4809 Improvement

Visu: Automatic size adjustment on frame reference modifications

Fixed [[GENERAL]]
- new Command for context menu in Visualization Editor
- need to select a frame element
- this command resize the selected frame element to the currently referenced visu size
VIS-4803 Bug

Visu, SelectionManager: Not possible to use MouseDown event

Fixed
VIS-4790 Improvement

Alarmconfiguration: Usability: Add hints for needed update

Duplicate
VIS-4781 Bug

Pie elements do not fit together as expected

Won't Fix [[GENERAL]]
It is recommended to use a Pie Element for the angle adjustment the properties Begin, End, or Variable for begin and Variable for end. And it is recommended to leave the angle itself at 0. This results in a complete and flush pie.

The static rotation of the entire element over the angle can lead to rounding errors, and the correction of these could lead to incompatibilities with other projects, so the issue is not fixed.
VIS-4761 Bug

HTML5 Control Project Archive extract : checkbox apply to all items is ignored

Fixed
VIS-4757 Bug

Group Element: different behavior depending on elements selection

Fixed
VIS-4756 Bug

The project-wide overlay setting may not work properly with non-supporting devices used within the project

Fixed [GENERAL] The Overlay setting is now visible if enabled or if supported by all the devices. Otherwise, it will be invisible as long as not all devices support the overlay functionality.
VIS-4755 Improvement

Support option 'target visualization supports overlay' for remote Target visualization devices

Fixed [[GENERAL]]
With a new targetsetting it is possible to disable the overlay mode by default. This will be done when the first VisualManager object is added to the only device with the targetsetting in the project.
The optional targetsetting can be used like this:
<ts:setting name="targetvisualization_disableoverlay_by_default" type="boolean" access="visible">
<ts:value>1</ts:value>
</ts:setting>
VIS-4732 Improvement

Visu, Alarms: Maximum number of alarms per alarm group is limited to 32767

Fixed [[GENERAL]]
The number of alarms per alarm group is limited to 32767. There is a compile error message when an alarm group exceeds this number of alarms.
VIS-4720 Bug

Visu, Template Alarms: Instances are counted when used in dialog visus

Fixed [[GENERAL]]
Per default variables with implicit names of the function block are now no longer not taken into account at the collection of instance alarms.

In case an instance with an implicit name should be used for that collection, the attribute from the following example can be used:
VAR
{attribute 'alarm_creation_accept_implicit_name'}
__implicitAssign : AlarmPouFB;
END_VAR
VIS-4716 Bug

Gradient setting not directly updated in a frame instance

Fixed [[GENERAL]]
Visualizations are forced to update when they receive focus.
VIS-4714 Improvement

Visu, Alarms: Enums containing Internal IDs should not be visible

Fixed
VIS-4712 Bug

Trend API: Switching trend recording does not switch trend data

Fixed [[GENERAL]]
The behavior of the FB "TrendStorageReader" is as designed: One single instance holds a permanent connection to one trend database file, which cannot be modified.
In order to use the TrendStorageReader with multiple Trend Recordings, multiple instances of this FB are required. Each instance needs to be initialized with a separate Trend Recording name. When using the function AddTrendStorageWriterListener(...) a common WriterListener-instance can be used.
With this issue, only an explaining comment to the FB "TrendStorageReader" has been added!
VIS-4708 Bug

Trend API: Switching trend recording does not switch trend data

Duplicate [[GENERAL]]
Duplicate of VIS-4712.
VIS-4687 Bug

IECVisualization: "VisuFbFrameBase.SetInputPositionData: The element id for the input position cannot be determined"

Fixed
VIS-4683 Bug

Deleting the root controller device leads to exception

Cannot Reproduce [[GENERAL]]
Cannot Reproduce with Visualization 4.7.0.0. This issue was probably fixed by VIS-4524.
VIS-4679 Bug

Visu: long STRING(>1024) variables are not displayed correctly in any visualization

Fixed [[GENERAL]]
The CODESYS visualization is using a limited buffer for formatting variables. In case STRING variables should be truncated, the default buffer size can be increased. This can be done by calling "VisuElems.VisuFctConfigureTextBufferSize(NewBufferSize);". This function should be called with the "Call after visu initialization" feature in the Visualization Manager. Note: The number for NewBufferSize should be bigger than 2500 which is the current default value.
VIS-4676 Bug

WebVisu, Overlay: Wrong scaling using dynamic bitmaps witch version change

Fixed
VIS-4669 Bug

Visu: Internal error while copying a visualization frame for which font was changed in Frame Configuration

Fixed
VIS-4668 Bug

Visu, WebVisu: Display Infinity value in %E will cause high CPU Load of Visu task

Won't Fix [[GENERAL]]
Investigation results: The visualization calls a runtime function for formatting. There is already a check in this runtime function if the value is infinity. The check (if(RTS_IS_REAL64_INFINITY_POS(dValue))) works on other runtimes and the execution is fast.

The problem must be investigated in the specific controller device.
VIS-4641 Bug

Visuzalization Manager Logout settings label not completely shown

Fixed
VIS-4625 Bug

Visu, Alarms: Compile warnings when using CharBufferString

Fixed
VIS-4611 Bug

Visu, Message, Sourceposition: "Source array was not long enough. Check srcIndex and length, and the array's lower bounds"

Fixed
VIS-4594 Bug

HTML5 Controls: Improve identification + name

Fixed
VIS-4592 Improvement

Alarms: Raising alarms programmatically should be possible

Fixed [[GENERAL]]
In the alarm editor there is a new alarm type "Alarm (API)" that can be used with the following interface functions. The alarm type "Event" has been renamed to "Event (API)" to keep consistency.
The new interface IAlarmHandler9 in AlarmManager library provides functions to trigger/untrigger alarms.
Alarms with the new alarm type "Alarm (API)" can be activated/deactivated with the new functions. This works in a AlarmGroup or in a AlarmGroupTemplate with a template instance.
VIS-4580 Improvement

Visualization: Support automatic font download for used fonts

Fixed
VIS-4555 Bug

Overlay, Keyboardhandling: Radiobuttons in a frame: the selection frame rests on the first radio

Fixed
VIS-4550 Bug

Keyboard Handling: Two selection rectangles visible

Cannot Reproduce
VIS-4536 Improvement

AlarmManager: Create missing Alarms during compile

Fixed [[GENERAL]]
To use the improved feature it is necessary to active "Check alarm instances during compilation" in the alarm configuration.
As part of this improvement, the message about changed alarm instances was improved and the list of alarm instances is automatically updated when double-clicking on the compile message.
VIS-4526 Bug

Visu: Adding a visu frame from one library leads to adding same named frame from another library

Fixed
VIS-4428 Improvement

VisuElemBase: Replace CAA Memory Block Manager by Memory Block Manager

Fixed
VIS-4222 Improvement

Visu, ComboBoxArray: it should be possible to change number visible rows online

Fixed
VIS-4218 Improvement

InputAssistant: Only compatible instances should be shown when setting a frame parameter

Fixed
VIS-3989 Bug

Visu, HTML5 Element, external embedded library does not work

Duplicate
VIS-3970 Improvement

Visu: Load while reading Trend records (via Time Range Picker) shall be decreased

Fixed [[GENERAL]]
The trend element optionally uses a step-by-step loading using several cycles once a time threshold was exceeded to reduce the load. This step-by-step loading is started when the time for loading exceeds 250ms. The data is then loaded in 5 steps per default.

Optionally, the values of these thresholds can be adjusted via global variables:
TrendGlobals.g_tMaxReadingTime: TIME := T#250MS; // When the step be step loading starts
TrendGlobals.g_iStepByStepFactor: INT := 5; // In how many steps
VIS-3969 Improvement

Visu: Load while reading Alarms History shall be decreased

Duplicate [[GENERAL]]
Duplicates VIS-839
VIS-3963 Improvement

Webvisu, Automatic login using Chrome "Sign in automatically"

Fixed
VIS-3404 Bug

Visu, Scrollbar: The height of the scrollbar knob is not calculated correctly

Fixed [[GENERAL]]
The width/height of the scrollbar knob is now better calculated as a percentage of the scroll area. As the knob width/height is now different, it is possible that the value in relation to the dragged distance is changed differently than before.
VIS-3318 Improvement

Visualization: Use real time clock of IEC context (Util.lib)

Fixed [[GENERAL]]
Integrated Visu is not supported.
For using the time from the Util Library, you need to set the enum at
VisuElems.VisuElemBase.VisuShared.VisuShared_Globals.g_DateTimeProvider.enDateTimeLibrary
Also you have to configure the TimeZone at g_DateTimeProvider.tzTimeZone.
VIS-2898 Improvement

Visu Trace: The default used colors remain blue when adding more than 22 values

Fixed
VIS-2254 Bug

ImagePool, Visu: Drag'nDrop of image from Visu Toolbox leads to wrong image

Duplicate [[GENERAL]]
This issue duplicates VIS-4526.
VIS-839 Epic

Visu, Alarms-Performance

Fixed [[GENERAL]] Two improvements were realized:
* Alarmtable does not redraw content unnecessarily
* Loading alarm history is split over several cycles to limit the load on the VISU_TASK. If necessary, the details of this splitting behaviour can be adjusted using the following global variables: AlarmGlobals.g_xStepByStepMode, AlarmGlobals.g_tStepByStepLimit