<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Visualization 🇬🇧</title><link href="https://forge.codesys.com/forge/talk/Visualization/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Visualization/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Visualization/</id><updated>2026-10-12T09:51:06.285000Z</updated><subtitle>Recent posts to Visualization 🇬🇧</subtitle><entry><title>Alarm Manager - Disk IO Error and Memory Double Free Exception</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/5a54b17b98/?limit=25#ddca" rel="alternate"/><published>2026-10-12T09:51:06.285000Z</published><updated>2026-10-12T09:51:06.285000Z</updated><author><name>josul</name><uri>https://forge.codesys.com/u/josul/</uri></author><id>https://forge.codesys.com3b6cd96ea1cb15aa21cb22e3bf4e1a8232f54af0</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I have encountered an issue with Alarm management. &lt;br/&gt;
A simple Alarm table to display active alarms. Historical alarms can be hidden and can also be cleared. Overall a history of 10000 alarms before it cycles. &lt;/p&gt;
&lt;p&gt;On one instance this error displayed:&lt;br/&gt;
"Some kind of disk I/O error ocurred. Check disk space". Picture attached.&lt;/p&gt;
&lt;p&gt;I have seen this with an online change, but it was resolved by a full download. But this case was running for weeks and displaying alarms fine. The logged errors though were unusual. &lt;/p&gt;
&lt;p&gt;Associated log entries (multiples of these were logged):&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;2026-10-07T12:17:17.603Z,&lt;span class="w"&gt; &lt;/span&gt;0x0000001f,&lt;span class="w"&gt; &lt;/span&gt;8,&lt;span class="w"&gt; &lt;/span&gt;1,&lt;span class="w"&gt; &lt;/span&gt;0,&lt;span class="w"&gt; &lt;/span&gt;####&lt;span class="w"&gt; &lt;/span&gt;Exception:&lt;span class="w"&gt; &lt;/span&gt;Memory&lt;span class="w"&gt; &lt;/span&gt;double&lt;span class="w"&gt; &lt;/span&gt;free&lt;span class="w"&gt; &lt;/span&gt;detected:&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;cmp&amp;gt;&lt;/span&gt;AlarmConfig&lt;span class="nt"&gt;&amp;lt;/cmp&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;addr&amp;gt;&lt;/span&gt;0x80330d0&lt;span class="nt"&gt;&amp;lt;/addr&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;And later in the same day, the entire application encountered an exception:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;2026-10-07T19:33:48.583Z,&lt;span class="w"&gt; &lt;/span&gt;0x00000011,&lt;span class="w"&gt; &lt;/span&gt;8,&lt;span class="w"&gt; &lt;/span&gt;81,&lt;span class="w"&gt; &lt;/span&gt;3,&lt;span class="w"&gt; &lt;/span&gt;####&lt;span class="w"&gt; &lt;/span&gt;Exception:&lt;span class="w"&gt; &lt;/span&gt;*EXCEPTION*&lt;span class="w"&gt; &lt;/span&gt;[&lt;span class="nt"&gt;&amp;lt;excpt&amp;gt;&lt;/span&gt;AccessViolation&lt;span class="nt"&gt;&amp;lt;/excpt&amp;gt;&lt;/span&gt;]&lt;span class="w"&gt; &lt;/span&gt;occurred:&lt;span class="w"&gt; &lt;/span&gt;App=[&lt;span class="nt"&gt;&amp;lt;app&amp;gt;&lt;/span&gt;Application&lt;span class="nt"&gt;&amp;lt;/app&amp;gt;&lt;/span&gt;],&lt;span class="w"&gt; &lt;/span&gt;T&amp;gt;
2026-10-07T19:33:48.583Z,&lt;span class="w"&gt; &lt;/span&gt;0x00000011,&lt;span class="w"&gt; &lt;/span&gt;8,&lt;span class="w"&gt; &lt;/span&gt;81,&lt;span class="w"&gt; &lt;/span&gt;3,&lt;span class="w"&gt; &lt;/span&gt;####&lt;span class="w"&gt; &lt;/span&gt;Exception:&lt;span class="w"&gt; &lt;/span&gt;*SOURCEPOSITION*&lt;span class="w"&gt; &lt;/span&gt;App=[&lt;span class="nt"&gt;&amp;lt;app&amp;gt;&lt;/span&gt;Application&lt;span class="nt"&gt;&amp;lt;/app&amp;gt;&lt;/span&gt;]&lt;span class="w"&gt; &lt;/span&gt;area=&lt;span class="nt"&gt;&amp;lt;area&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/area&amp;gt;&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;offset=&lt;span class="nt"&gt;&amp;lt;off&amp;gt;&lt;/span&gt;9548256&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;I haven't found any explanation for a "Memory double free detected" and I'm unsure how to prevent it occurring. I suspect it might be the cause of the "Access Violation" exception, but how can I be sure of this? &lt;/p&gt;
&lt;p&gt;Would defining VISU_NO_EXCEPTION_HANDLING be advisable or not in a production environment?&lt;/p&gt;
&lt;p&gt;Any advice is welcome.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to display only legend description and not variable name</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/dec478512a/?limit=25#48da" rel="alternate"/><published>2026-09-24T11:56:04.392000Z</published><updated>2026-09-24T11:56:04.392000Z</updated><author><name>sigbjorn-kleppe</name><uri>https://forge.codesys.com/u/sigbjorn-kleppe/</uri></author><id>https://forge.codesys.comfc0aa4bc32ac4d44eb8aa188fe0e603a8d5712cc</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I seem to have missed the "Display variable name" option in the trend recording. This fixed the issue.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to display only legend description and not variable name</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/48ba6db8b2/?limit=25#3bed" rel="alternate"/><published>2026-09-24T11:55:07.937000Z</published><updated>2026-09-24T11:55:07.937000Z</updated><author><name>sigbjorn-kleppe</name><uri>https://forge.codesys.com/u/sigbjorn-kleppe/</uri></author><id>https://forge.codesys.com9bb2aef5ee87cd48e89e5886304b64cb9cfdd88f</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I seem to have missed the "Display variable name" option in the trend recording. This fixed the issue.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to display only legend description and not variable name</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/48ba6db8b2/?limit=25#1a62" rel="alternate"/><published>2026-09-23T08:25:23.633000Z</published><updated>2026-09-23T08:25:23.633000Z</updated><author><name>sigbjorn-kleppe</name><uri>https://forge.codesys.com/u/sigbjorn-kleppe/</uri></author><id>https://forge.codesys.comb1812ab19819dde0538db9d823266da535e69c56</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello, I have a question regarding the Trend and LegendDisplayer visualization elements. As the provided image suggests, I am trending two variables which show the torque of two motors in terms of % of max load. Below the trend element, is the LegendDisplayer element which correctly displays the name of both trends. But also, it displays the actual variable name in parenthesis, which I do not want. Currently, the name is set by entering a description for each variable in the trend recording settings. But I can't seem to find any option to display only this description. Is it possible to only remove the variable name used in the software?&lt;/p&gt;
&lt;p&gt;I'm using CODESYS 3.5.21.50.&lt;/p&gt;
&lt;p&gt;Thanks in advance!&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to display only legend description and not variable name</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/dec478512a/?limit=25#3441" rel="alternate"/><published>2026-09-23T08:25:21.849000Z</published><updated>2026-09-23T08:25:21.849000Z</updated><author><name>sigbjorn-kleppe</name><uri>https://forge.codesys.com/u/sigbjorn-kleppe/</uri></author><id>https://forge.codesys.com35b047bcb7deacb7700dc111e39ff95fe11528a3</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello, &lt;/p&gt;
&lt;p&gt;I have a question regarding the Trend and LegendDisplayer visualization elements. As the provided image suggests, I am trending two variables which show the torque of two motors in terms of % of max load. Below the trend element, is the LegendDisplayer element which correctly displays the name of both trends. But also, it displays the actual variable name in parenthesis, which I do not want. Currently, the name is set by entering a description for each variable in the trend recording settings. But I can't seem to find any option to display only this description. Is it possible to only remove the variable name used in the software?&lt;/p&gt;
&lt;p&gt;I'm using CODESYS 3.5.21.50.&lt;/p&gt;
&lt;p&gt;Thanks in advance!&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Cartesian XY Chart — 2-D array binding: "Element to use" enumerates the wrong dimension</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/85ca36cff4/?limit=25#5e92" rel="alternate"/><published>2026-08-14T07:11:49.685000Z</published><updated>2026-08-14T07:11:49.685000Z</updated><author><name>hammer</name><uri>https://forge.codesys.com/u/hammer/</uri></author><id>https://forge.codesys.com4cfa90a7f0f883c863c3b8251422d0c547a2d5b5</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;strong&gt;Title:&lt;/strong&gt; Cartesian XY Chart — 2-D array binding: "Element to use" enumerates the wrong dimension; documented example (Dialog: XY Chart Configuration, "Two-dimensional array of base type REAL") appears transposed&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Product / version:&lt;/strong&gt; CODESYS Development System V3.5 SP21 Patch 40 (3.5.21.40). Cartesian XY Chart visualization element (System_VisuElemXYChart / VisuElemXYChart).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt;&lt;br/&gt;
When a curve's Data X/Data Y is bound to a two-dimensional array, the element treats the &lt;strong&gt;last&lt;/strong&gt; array dimension as the per-point record (the one selected by "Element to use") and iterates the &lt;strong&gt;first&lt;/strong&gt; dimension as the sequence of curve points. The online documentation's worked example has the dimensions in the opposite order, so following it produces a non-functional curve and a nonsensical "Element to use" list.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Steps to reproduce (fails — matches the documented layout):&lt;/strong&gt;&lt;br/&gt;
1. Declare &lt;code&gt;aData : ARRAY[0..1, 0..4095] OF LREAL;&lt;/code&gt; (2 data sets × 4096 points, i.e. first dimension = set, second = point).&lt;br/&gt;
2. In XY Chart Configuration, bind a curve's Data X (and Y) Variable to this array.&lt;br/&gt;
3. Observe the "Element to use" combobox.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Actual result:&lt;/strong&gt; The "Element to use" combobox lists 4096 entries (the indices of the &lt;strong&gt;second&lt;/strong&gt; dimension) instead of 2 (the data sets in the first dimension). Selecting a row does not produce the expected curve; at most a single/degenerate point is plotted.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Steps to reproduce (works — transposed):&lt;/strong&gt;&lt;br/&gt;
1. Declare &lt;code&gt;aData : ARRAY[0..4095, 0..1] OF LREAL;&lt;/code&gt; (points first, set second).&lt;br/&gt;
2. Bind Data X/Y to this array; "Element to use" now correctly lists &lt;code&gt;[0]&lt;/code&gt; and &lt;code&gt;[1]&lt;/code&gt;.&lt;br/&gt;
3. Populate &lt;code&gt;aData[point, set]&lt;/code&gt; and the curve plots as expected.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Expected result:&lt;/strong&gt; Either the documented example should select the data set from the &lt;strong&gt;first&lt;/strong&gt; dimension (as its &lt;code&gt;[1]&lt;/code&gt;/&lt;code&gt;[2]&lt;/code&gt; "Element to use" implies), or the documentation should state that the &lt;strong&gt;last&lt;/strong&gt; dimension is the record dimension (stride) and the first dimension is the point sequence — consistent with how the element actually behaves.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Analysis:&lt;/strong&gt;&lt;br/&gt;
The behavior is self-consistent if the element always walks a single array by a fixed byte stride, reading one element per point — the same mechanism as the documented "one-dimensional array of a DUT" case, where it strides by &lt;code&gt;SIZEOF(DUT)&lt;/code&gt; and "Element to use" picks the member offset. For a 2-D array the record is the &lt;strong&gt;last&lt;/strong&gt; dimension: to plot column/set &lt;code&gt;c&lt;/code&gt; it starts at &lt;code&gt;[0, c]&lt;/code&gt; and strides by the last-dimension length to reach &lt;code&gt;[1, c]&lt;/code&gt;, &lt;code&gt;[2, c]&lt;/code&gt;, … (row-major layout makes this a contiguous column walk). Under that rule, &lt;code&gt;ARRAY[0..N, 0..1]&lt;/code&gt; is correct (record length 2 → "Element to use" &lt;code&gt;[0]&lt;/code&gt;/&lt;code&gt;[1]&lt;/code&gt;), and the documented &lt;code&gt;ARRAY[1..2, 1..50]&lt;/code&gt; with "Element to use" &lt;code&gt;[1]&lt;/code&gt;/&lt;code&gt;[2]&lt;/code&gt; is transposed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Documentation reference:&lt;/strong&gt;&lt;br/&gt;
Dialog: XY Chart Configuration → Data X / Data Y → "Example: Two-dimensional array of the base type REAL" (&lt;code&gt;ARRAY[1..2, 1..50]&lt;/code&gt;, Element to use &lt;code&gt;[1]&lt;/code&gt;/&lt;code&gt;[2]&lt;/code&gt;, "100 array values are displayed"). This example does not plot as described in 3.5.21.40; transposing to &lt;code&gt;ARRAY[1..50, 1..2]&lt;/code&gt; does.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Request:&lt;/strong&gt; Please confirm whether this is (a) a documentation error (example dimensions reversed) or (b) an element defect (combobox enumerates the wrong dimension). Either way, a corrected example plus an explicit statement of which dimension is the point sequence vs. the record/stride dimension would prevent others from hitting this. Two separate 1-D arrays for Data X and Data Y work correctly and are unaffected.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>WebVisu: switch-frame destroys and rebuilds referenced visualization - is retention configurable?</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/8a7a5a903f/?limit=25#c256" rel="alternate"/><published>2026-08-07T17:49:53.701000Z</published><updated>2026-08-07T17:49:53.701000Z</updated><author><name>thejesh</name><uri>https://forge.codesys.com/u/thejesh/</uri></author><id>https://forge.codesys.com4c5c68c5e15315b9b644f6462f00eedd2d7a2b3e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi, &lt;/p&gt;
&lt;p&gt;I urgently need some help from you to reach Codesys Support on priority&lt;/p&gt;
&lt;p&gt;On CODESYS V3.5 SP22 Patch 2, WebVisu only (no TargetVisu). The client is Chromium 147 in kiosk mode on a Raspberry Pi CM5 panel; the runtime is CODESYS Control Win V3 x64/CODESYS Control RTE V3 x64 on a separate IPC.&lt;/p&gt;
&lt;p&gt;I have measured that changing a Frame element's switch-frame variable destroys the currently referenced visualization and fully rebuilds it on return, including all embedded HTML5 controls. We would like to know whether this lifecycle is configurable.&lt;/p&gt;
&lt;p&gt;Measurement 1:&lt;/p&gt;
&lt;p&gt;Curently, our production page contains a good number of custom HTML5 controls and will only increase , each of which the WebVisu client instantiates as a separate about:srcdoc iframe. I counted live targets via the Chromium remote debugging endpoint (curl &lt;a href="http://localhost:9222/json/list" rel="nofollow"&gt;http://localhost:9222/json/list&lt;/a&gt;) before and after switching.&lt;/p&gt;
&lt;p&gt;Production displayed (index 0)      108 iframes&lt;br/&gt;
  Switched to a light page (index 1)   46 iframes&lt;br/&gt;
  Switched back to Production          108 iframes&lt;/p&gt;
&lt;p&gt;62 controls are destroyed on leaving the page and re-instantiated on return. Observed latency was approximately 2.5 -5s away from the heavy page and approximately 4.0 -5 s back to it.&lt;/p&gt;
&lt;p&gt;This was measured with the panel otherwise idle: 2.8% system CPU, 97.1% idle, 2 h 56 min uptime, no remote-desktop session running, hardware acceleration confirmed active in chrome://gpu.&lt;/p&gt;
&lt;p&gt;I had previously measured the same behaviour under a much higher CPU load and have since resolved that load separately (VISU_TASK cycle period), so I am confident the rebuild is the frame lifecycle itself and not CPU starvation.&lt;/p&gt;
&lt;p&gt;Measurement 2 — frame offset instead of switch index&lt;/p&gt;
&lt;p&gt;I then displayed the same overlay page by a different mechanism. Instead of using a switch-frame index, I placed the page in a fixed Frame parked off-screen below the visible canvas, and drive its Y offset from an INT in Structured Text to move it into view.&lt;/p&gt;
&lt;p&gt;With this approach the overlay appears immediately, the production page underneath is never torn down and keeps updating, and no visualization is destroyed or rebuilt in either direction. The iframe count does not change at any point. This is the same visualization, containing the same HTML5 controls, as in Measurement 1 — the only difference is how it is brought on screen.&lt;/p&gt;
&lt;p&gt;So the rebuild appears to be a property of the switch-frame mechanism specifically, not of the page or its control count.&lt;/p&gt;
&lt;p&gt;Questions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Is the destroy-and-rebuild behavior on switch-frame the intended and documented lifecycle for WebVisu?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Is there any setting, property or client option that causes a referenced visualization to remain instantiated when it is not the active index — the equivalent of keeping it mounted but not displayed?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Does the runtime or client offer any form of caching or pre-instantiation for referenced visualizations, so that a return switch does not pay the full construction cost?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Is the cost specific to HTML5 controls, or would the same rebuild occur with an equivalent number of native visualization elements? We ask because it would inform whether reducing our HTML5 control count is a viable solution.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Is there a recommended pattern for showing a full-screen page over a live production screen without tearing the production screen down?&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;My current workaround is to keep every page permanently instantiated and move it on and off screen by driving a frame offset variable, which avoids the rebuild entirely but means every page stays live and consumes client resources for the life of the session. This works, but I would prefer to use the supported mechanism if one exists.&lt;/p&gt;
&lt;p&gt;Any help on this is greatly appreciated. &lt;/p&gt;
&lt;p&gt;Thank you!&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>HTML5 visualization controls disabled on CODESYS Control for Linux SL - overlay not supported?</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/f16af3558d/?limit=25#36ef" rel="alternate"/><published>2026-08-06T10:54:06.802000Z</published><updated>2026-08-06T10:54:06.802000Z</updated><author><name>TimvH</name><uri>https://forge.codesys.com/u/timvh/</uri></author><id>https://forge.codesys.comc2d87bc14d3c141c43337ccb914d21a5449bd439</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I was able to reproduce this by doing something wrong.&lt;br/&gt;
I guess what you did is first create an application for the Control Win, or some other device and then switched this to the Linux SL.&lt;br/&gt;
But then the Visualization Manager still has the "TargetVisu" component, besides the WebVisu component.&lt;br/&gt;
The Linux SL doesn't support this TargetVisu as part of the runtime. You should run a separate process for this.&lt;/p&gt;
&lt;p&gt;So remove the TargetVisu from the Visualization Manager and then you will be able to load the application.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>HTML5 visualization controls disabled on CODESYS Control for Linux SL - overlay not supported?</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/f16af3558d/?limit=25#baaf" rel="alternate"/><published>2026-08-05T09:41:06.794000Z</published><updated>2026-08-05T09:41:06.794000Z</updated><author><name>lzml</name><uri>https://forge.codesys.com/u/lzml/</uri></author><id>https://forge.codesys.comcd5ffee6640849752907611d8c4e055de035e70b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Thanks for the suggestion - I updated everything via the CODESYS Installer and restarted, but I'm still hitting the same error.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What I did&lt;/strong&gt;&lt;br/&gt;
- Updated via Tools &amp;gt; CODESYS Installer (had to trigger the update-list refresh manually, it doesn't do this automatically on open)&lt;br/&gt;
- Visualization system libraries (VisuElems, VisuElemsAlarm, VisuInputs, VisuNativeControl, etc.): 4.7.0.0 -&amp;gt; 4.10.0.0&lt;br/&gt;
- CODESYS Control for Linux SL: 4.15.0.0 -&amp;gt; 4.21.0.0 (based on CODESYS SDK 3.5.22.20)&lt;br/&gt;
- Restarted CODESYS Development System&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Checked project environment (Project &amp;gt; Project Environment) after restart&lt;/strong&gt;&lt;br/&gt;
- Compiler version: 3.5.22.0 &lt;br/&gt;
- Library versions: all up to date&lt;br/&gt;
- Visualization Profile: CODESYS Visualization 4.10.0.0 &lt;br/&gt;
- SoftMotion version: 4.20.2.0&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Result&lt;/strong&gt;: compiling with Device = CODESYS Control for Linux SL still fails with the same error:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"Overlay is not supported for your target visualization device."&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The custom HTML5 control is still disabled/missing from the Toolbox with this Device selected (same as before), and still appears normally when I switch the Device to a Windows target.&lt;/p&gt;
&lt;p&gt;Is there anything else specific I should check (e.g. a setting on the Device description itself, a different SL package/edition, or is WebVisu overlay for custom HTML5 controls simply not implemented yet for CODESYS Control for Linux SL regardless of package version)? Any pointer appreciated.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>HTML5 visualization controls disabled on CODESYS Control for Linux SL - overlay not supported?</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/f16af3558d/?limit=25#f253" rel="alternate"/><published>2026-08-05T08:11:29.033000Z</published><updated>2026-08-05T08:11:29.033000Z</updated><author><name>TimvH</name><uri>https://forge.codesys.com/u/timvh/</uri></author><id>https://forge.codesys.coma5cedc88e1637f358a21b9db826a1804b6b02845</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I would suggest to install the latest visualization and visualization add-ons. Go to Tools - CODESYS installer to updates these add-ons (or just start the CODESYS installer through the Windows start menu).&lt;/p&gt;
&lt;p&gt;After installation, restart CODESYS SP22 and update the project to use this new visualization profile (you can update this through the menu Project - Project Environment - Visualization Profile).&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>