Skip to content

Release Notes ​

About 64 min read

2.11.0 (October 23, 2026) ​

Changes since version 2.10.1.

New features ​

  • Energy Performance add-on: Produces monthly energy consumption and performance reports from the meter data logged in SCADA; it provides measurement and performance data for an ISO 50001 energy management system. It is a licensed add-on for the Standard and Professional packages. Details: Energy Performance.
    • Definitions: Site and area/line tree; the three-step Add Meters from Tags wizard for logged tags; total membership (included in site total, breakdown only, non-energy); kWh factors valid from the start of a month; tag links and justified history declarations; production variables; baseline and target with revisions; the Missing for the Report list.
    • Period Report: The month calculation runs in the background and is limited so that it does not slow down live data collection. For every meter: calculation status, data quality, effective value and value source; five total labels (Complete total, Total with quality warning, Total incl. manual values, Partial total, Total not calculable); calculation chain and data coverage; justified and documented delta corrections and manual period totals; monthly production entry and energy intensity (EnPI); comparison with last year, the baseline and the target.
    • Closing and revisions: A closed month cannot be changed or deleted. The closing dialog asks for confirmation depending on the total label; it warns without blocking if the previous month is not closed, if the previous month is not a Complete total, or if there is possible double counting. Changes are made with a new revision; from Rev. 2 on, a revision reason is required.
    • XLSX: Only from a closed revision; with the summary, meters, corrections, calculation chain and factors, and source and method sheets.
    • Trend: Chart and table of consumption or energy intensity for at most 12 months; closed and draft months are shown separately; missing months are calculated in one job. The trend is an analysis and is not exported.
    • Closed Reports: List of the official reports with their revisions, the read-only official report and the XLSX. Opening a closed report with current data rights needs an energy role (for example Energy Reader); process group rights alone are not enough. Closed reports can be opened by roles without SCADA data rights through archive access, granted per scope; archive access can be granted to any role and does not need an energy role.
    • Archive mode: If the add-on is missing or removed from the license, closed reports can still be opened and downloaded; new calculations, definitions and closings are not possible.
  • New role types: Energy Reader (read-only view of energy definitions, trend, period report and closed reports), Energy Data Entry (Energy Reader plus monthly manual values for months that are not closed), Energy Management (energy definitions, tag mappings, corrections, production entry and calculation) and Energy Closing (month closing and granting archive access). Editor and SystemAdmin can do the actions of all four. The Energy Data Entry role enters values in the Period Report or in the Manual entry table widget, only for months that are not closed and for scopes whose linked tags are all covered by the user's process group rights. It is recommended to give data entry and corrections to different people than month closing. See Roles and access.
  • Configuration backup: The Energy Performance definitions are included in the backup with the new energyperformance module. If the package contains tag or log definitions and the installation has energy definitions, the restore preview states that a backup of a different project will break the link between the energy archive and live data. After a restore, tag links are approved before new calculations; closed reports stay readable meanwhile. See Energy Performance: Backup and Restore.
  • Downtime reasons: Operators enter reasons for machine stops; stop times are added up by reason in a Pareto chart. Details: Downtime Reasons and Entering Downtime Reasons.
    • Turning it on per machine: The log definition has the new Downtime reasons and Micro-stop threshold (s) fields; they can be turned on only for Changed state bit and Sampled state bit sources. Turning the option off does not delete entered reasons; it leaves them read-only.
    • Reason catalog: The new Settings > Downtime Reasons screen holds global reasons with categories (Planned, Breakdown, Material, Quality, Other), turning global reasons off per task center, and local reasons. Reasons are not deleted; they are set to inactive.
    • Entering reasons: With the new Downtime reasons setting of the Downtime timeline widget on, a reason is entered by clicking a stop; a stop can have more than one reason. Entered reasons are shown below the stop in the color of their category. A wrong reason is not deleted; it is revoked. On touch operator panels, reasons are entered from the list of the new Downtime reason entry widget.
    • Lock and reopening: An interval is locked 7 days after the end of the stop. ReportManagement, Editor or SystemAdmin can reopen a locked interval for 48 hours with a written reason.
    • Roles: Reasons are entered by Operate, ReportManagement, Editor and SystemAdmin; Operate revokes only its own reasons. The global catalog is managed by Editor and SystemAdmin, task center settings and local reasons also by ReportManagement. Every user allowed to see the machine sees the Pareto.
    • Retention: Entered reasons are kept in the archive database for the Data Retention [Months] of the machine's log definition. The catalog is included in the configuration backup with the new Downtime reasons module.
  • Printable report templates: Shift Report (last 8 hours; run/stop timeline, downtime Pareto, line speed trend and a table of the hourly average, minimum and maximum line speed), Daily Energy Report (today; today, yesterday and this month cards, an hourly consumption chart compared with the previous period and an hourly consumption table with a total) and Alarm Report (the page device's alarms in all states, up to 500 rows, read-only) were added to the Starter category. The templates are flexible pages that fit the paper width and are inserted with a tag prefix and an equipment name. See Printable report templates.
  • Page time and alarm tables in printouts: If a range is selected on the page with a page time picker, the print header shows the range after Range: as the picker displays it; the picker's buttons are not printed, only the range label. On flexible pages, an alarm table prints all its rows up to the Maximum rows setting without the pager and acknowledge buttons; on fixed-size pages, the on-screen page is printed. See Printing a page.
  • Page transitions in page rotations: The rotation on a kiosk screen shows a short animation when it changes pages. Details: Page transitions.
    • Transition options: None, Fade, Slide left, Slide up and Zoom. The rotation's Default Transition applies to all pages (default Fade); a different transition can be selected in the Transition field of a page's row. The alarm page is entered with the default transition.
    • Transition Duration (ms) is the total length of the animation: 200–3000 milliseconds, default 600. The page's on-screen duration starts after the new page has entered.
    • The new page enters after it has loaded and been drawn; a half-drawn page is not shown. The duration bar, the connection strips and the rotation status do not move.
    • If the operating system's reduce-motion setting is on, a short fade of at most 200 milliseconds is used instead of slides and zoom.
    • While the rotation changes pages, the loading indicator no longer flashes at every transition; it appears only if the page takes longer than 1.5 seconds to load.
    • The transition settings are included in the configuration backup with the rotation.

New widgets and page time ​

  • Page time: The new Page time picker widget selects one range for the whole page (a sliding window, or a day, week, month, quarter or year). When Page time is selected in the new Time Source setting of the Chart and Data table widgets, the widget follows this range; in the data table only the consumption and history pivots are affected. If the page has no picker or no range is selected, the widget uses its own range settings. A page opened in a modal window keeps its own range and does not follow the selection of the main page. Page time is calculated in the browser's time zone. With Custom range… the picker also takes a start and an end date and time (at most 366 days; the end is not included and times are in the browser's time zone). A custom range is never saved as the page default: Now returns to the default, and Previous period and Next period move the range by its own length (Next period is disabled when the moved range would start after now; whole-day ranges with the same clock time at start and end keep that clock time across a daylight saving change). The widget's Allow custom range setting turns the option off. The picker's buttons are larger for touch panels.
  • Period comparison in the chart: The Comparison setting of the Chart widget places the same series for the Previous period or the Previous year on the main time axis as dashed lines. The tooltip shows the real date of the comparison point, both values and the change; missing data is not counted as zero. The Data View and its Excel export give the comparison time, the comparison value, the change and the change in percent in separate columns.
  • Alarm table: Shows the alarms the user is allowed to see as a table on the page, from the same data as the active alarm list in the top bar. The alarms shown (active, unacknowledged, or all including locked ones), the columns and the maximum number of rows can be set; if more alarms match, the table states how many of them are shown. By default the table is read-only. The new Device filter setting limits the table to the devices of a line: with Device in the page tag prefix every page created from a template shows the alarms of the device in its own prefix; Device list shows the named devices. If the filter cannot name a device (the page has no tag prefix or the list is empty), the table never falls back to all alarms; it shows a note instead of rows.
  • Acknowledging from the alarm table: The optional Acknowledge button acknowledges a single alarm in an unacknowledged row; the button is shown only to users who are allowed to acknowledge alarms. The acknowledgement counts as confirmed when the server reports the state change of that alarm. If no change arrives within the waiting time, the row shows Not confirmed and the acknowledgement can be tried again; this does not mean that the acknowledgement failed.
  • Downtime timeline: Shows machines with a run/stop record row by row on a timeline with Running, Stopped and Unknown segments; the tooltip gives the start, end, duration and data quality of a segment. While the range includes the current time, the timeline refreshes automatically (60 seconds by default).
  • Downtime reason Pareto: Sorts the stop time of the selected machines by reason or category from largest to smallest and shows a cumulative percentage line. Stops without a reason appear in a separate Unclassified bar, those shorter than the machine's threshold in a Micro-stop bar; unknown time is not counted as stop time and is shown in a separate tile. The total stop time equals the Stop Hour of the Runtime Analysis screen. Available in the Standard and Professional packages. The Export to Excel button in the header downloads the Pareto on screen as .xlsx with the bars, totals, machines and range.
  • Downtime reason entry: For operator panels: lists the stops of 1–4 selected machines that have no reason yet within a window of the last 1–168 hours, as large rows. The operator taps a row and picks the reason from large buttons under the category headings. A reason entered for an ongoing stop is saved up to the current time; while the stop goes on, the Continues — same reason button adds the further part with one tap. The latest entries are shown below the list, and your own entry can be undone until it is locked. Micro-stops and locked stops are not listed, only counted. See Operator panel. Available in the Standard and Professional packages.
  • New templates: The Starter category gains Production Line (page time picker, downtime timeline, downtime Pareto, speed trend and the page device's alarms) and Operator Downtime Panel (downtime reason entry, timeline and alarms for panel PCs); the placeholder card of the Alarm Page template now holds an alarm table. See Templates and Blocks.
  • License mark in the palette: Widgets whose data is not covered by this installation's license (Standard or Professional for the downtime timeline, downtime Pareto and downtime reason entry; the Energy Performance add-on for the energy scatter and the manual entry table) stay in the palette with a small lock mark and its explanation; the same note appears in the settings panel when such a widget is selected.
  • Touch panels and clarity: The acknowledge and paging buttons of the alarm table and the controls of the manual entry table grow to at least 44 pixels on touch screens, while tables stay compact with a mouse. Charts and data tables that follow the page time show a small link mark (Follows the page time); at runtime only while the page time picker sets the range. The chart settings say that the comparison is not drawn while a stack mode is on.
  • Touch mode and larger blocks: On touch screen panels and in kiosk mode (also on industrial PCs that report a mouse next to the touch screen) touch controls grow. Among the blocks, Control panel and the navigation blocks come with 48 pixel buttons, a 44 pixel switch and at least 12 pixels between controls; pages already built from these blocks do not change.
  • Push button confirmation note: When Needs Confirmation is on for a Push button in Momentary or Pulse mode, its settings show a note that the option only applies in Maintained mode and what to do instead.
  • Touch operator panels: Details: Touch Panels.
    • Lock reason: Optional Lock Reason text on the eight controls with the locked look; tapping or clicking a locked control shows it briefly and as a tooltip, and for a user without permission it replaces the "no write permission" message.
    • Two-step apply: Two-Step Apply on the Button and the Push button (Pulse and Maintained mode): the first press arms the button, and the value is written only by a second press within 1–10 seconds (default 3). A double tap or double click cannot apply the action.
    • Button badge: The new Badge field of the Button shows a number in its corner, for example the active alarm count with @NOP::__activeAlarmCount; hidden at 0, 99+ above 99.
    • Newest alarm: New system tags __latestAlarmId, __latestAlarmText, __latestAlarmType, __latestAlarmTime and __latestAlarmAcknowledged; in event code, this.srt.ackSingleAlarm(id) acknowledges only one alarm.
    • New block and template: The Alarm Banner block (newest alarm, a button that acknowledges only this alarm, severity pill and alarm counts; no event code) and the Operator Panel (Touch) starter template (equipment band, alarm banner, content cards and large navigation buttons with a badge). See Templates and Blocks.
    • Readable status colors: Status pills in blocks use readable text tones; the colors of newly inserted blocks come from the theme and are readable in the light and the dark theme. The Theme colors group of the class list has new classes for status pills. Blocks inserted earlier do not change.
    • Event code on touch: On the Button, Toggle button, Switch and Button group, onMouseDown runs when a finger lands and onMouseUp runs once when it lifts or the press is canceled, so hold-to-run commands also work on a panel. Mouse operation is unchanged.
  • Heatmap: Shows the hourly history value or the hourly consumption of a tag in a day × hour matrix. An hour without data is shown as No data and is not counted as zero. On the day the clocks go forward, the skipped hour is shown as Hour does not exist; on the day the clocks go back, the repeated hour has its own column.
  • Energy scatter: Shows the monthly energy consumption of an Energy Performance scope against a selected variable (for example production) and optionally draws an exploratory fit line. This line is not the official baseline (EnB) or EnPI model and is not used in any report.
  • Manual entry table: Shows the monthly manual values of Energy Performance variables on the page and lets users enter them. With the Energy Management or Editor role or the SystemAdmin account, a value can also be saved for a closed month; a confirmation is asked before saving. For the Energy Data Entry role, closed months are read-only. The closed report does not change; the new value is used in the next calculation of that month.
  • Access to the energy widgets: The energy scatter and the manual entry table use the Energy Performance add-on and the existing energy roles. The values are visible to the Energy Reader, Energy Data Entry, Energy Management, Energy Closing and Editor roles and to SystemAdmin; entering manual values needs the Energy Data Entry, Energy Management or Editor role or the SystemAdmin account. Without the add-on the widget shows The Energy Performance add-on is not available in this installation.; a user without the rights sees a permission notice instead of the data. These two widgets show months in the time zone of the energy setup.

Bug fixes ​

  • A Chart in live mode no longer draws a 0 point for a tag without a live value; no point is added for that tag and the Data View summaries do not count such points.
  • Pages opened in the page viewer also receive live values for the series tags of charts in live mode and of data tables in Live tags mode; these tags no longer need to be bound to a widget as well. Series tags are resolved with the page's tag prefix.
  • On daylight saving time change days, hourly and shorter history and consumption reads put every sample into the right hour. Before, one hour of data could be lost or counted twice on the spring-forward and fall-back days. Daily and longer intervals are unchanged.
  • The alarm lock is permanent: it is kept when the server service restarts or the alarms are reloaded. Before, the lock was kept only in the running service and was cleared when the service restarted.

Security ​

  • Only SystemAdmin adds or changes event code: Widget event code (onClick, onMouseDown, onMouseUp, onChange) and the Code parameters of composite components run in the browser of every user who opens the page, with that user's permissions. When a page is saved, a pages package is imported, a page or composite component template is saved or imported, or the Pages and Page Templates modules are restored from a configuration backup, new or changed event code is rejected for users other than SystemAdmin and nothing is saved. Existing code keeps running. Users with the Editor role can make changes that do not change code, delete event code, and move and copy a widget with code within the same page. A Find and replace that changes text inside event code, and widgets with code pasted from another page, count as code changes. In the editor, the Events section and the Code parameters are shown read-only to them. Creating a page from a template that contains event code, or adding such a template to a page (except a linked composite component), also needs SystemAdmin. See Who can add event code.
  • Event code warnings: The editor shows risky calls in event code (writing to the field without confirmation, setTag whose third parameter is not this, access to page and session data, network requests outside this.srt, dynamic code) below the code with their line number. In the onChange code of Check box and Drop-down, functions that cannot be used without a user action are flagged as well. If there are warnings when the page is saved, a short notification summarizes their number and the widgets concerned. Warnings do not block saving and do not change the code. See Event code warnings.
  • AI assistant (MCP): MCP Server 1.1.0 reports a page change that adds, changes or deletes event code in the preview as high risk, with the full text of the new code. The server does not apply an event code change that does not match the code shown in the preview. Event code changes through MCP also need SystemAdmin.
  • Session renewal key hidden from browser scripts: The web interface no longer keeps the session renewal key in browser storage; the key stays in a cookie (HttpOnly) that scripts on the page (including event code) cannot read. This change prevents the long-lived renewal key from being copied; while the page is open, scripts can read the tab's access key until it expires (4 hours by default) and send requests on behalf of the session. On 2.11 only SystemAdmin accounts can add or change event code. Details: Browser session.
    • After a sign-in on 2.11, the session is kept separately in each browser tab. Reloading the page keeps the session; when a new tab is opened or the browser is restarted, the session opens from the cookie on its own. As before, kiosk screens return to their own page when the server restarts, the network drops or the panel starts before the server.
    • In a session opened by a sign-in on 2.11, Logout also invalidates that browser's renewal key on the server. Sessions opened before the upgrade keep working the old way until the next sign-in: the key stays in browser storage and signing out does not invalidate it on the server. A sign-out that does not reach the server is sent again at the next page change until the server answers or someone signs in again.
    • As in earlier versions, the server keeps a single renewal key per account: a sign-in with the same account on another device ends the session of the earlier devices. Keep this in mind for shared kiosk accounts (see Session renewal and shared accounts).
    • When someone signs out in one tab or signs in as another user, the other tabs open in the same browser return to the login screen.
    • HTTPS is recommended: over HTTPS the cookie is sent only over an encrypted connection. The web interface and the API must be published on the same site (same scheme and domain name; the port may differ). The cookie is not separated by port; do not open installations on the same server name with different ports in the same browser profile at the same time.
    • The MCP server and API clients are not affected; sign-in and refresh responses still return the tokens in the body.

Behavior changes ​

  • Locked control look: At runtime a Button, Toggle button, Switch, Value input, Push button, Three-state selector, Rotary switch or Potentiometer whose Read only setting is bound to a tag that is currently true (an interlock), or that the user may not write, is dimmed and shows a small lock on its corner; touch screens have no not-allowed cursor, so the lock shows that the control is not available to this user. Controls set to read only as a fixed value, used as indicators, and potentiometers whose Setpoint is not bound to a tag keep their normal look. Buttons that only open a link and controls whose event code also runs for users without write permission are not shown locked; the editor is unchanged. For a user without write permission the Value input is read-only.

  • Confirmation dialog: For every write with Needs Confirmation, the dialog title and the confirm button carry the name of the action (for example the button caption; without a name the generic text and Yes), and the other button is Cancel. When the dialog opens, Cancel has the focus; Enter no longer confirms, it cancels. Before, the buttons were Yes and No, and Enter confirmed. In touch mode the buttons are 48 pixels high. See Confirmation.

  • onChange code that runs without a user action can no longer write: The onChange code of Check box and Drop-down also runs without a click when the value of the bound tag changes (from the PLC or from another screen), and it is repeated on every screen that has the page open. In these runs, this.srt contains only read functions and the local values of this browser (tag, tagValue, connected, deviceStates, visualElements, isNumberOrDefaultZero, addTag, recipe reads). setTag, alarm actions, recipe apply and the other functions cannot be used; if they are used, the code stops at that line and a warning is shown. Because the check state of the Check box comes from the bound value, its onChange code runs with this restriction after a click as well. Drop-down code that runs on the user's selection runs with all functions as before. The Button group and the Radio group are unchanged: their onChange code runs only on a user selection and with all functions. This restriction prevents accidental writes; it is not a security boundary. See Code that runs without a user action.

  • Lock in the alarm window applies to the whole selection: Lock applies one state to all selected alarms: if at least one selected alarm is unlocked, it locks them all; if all selected alarms are already locked, it unlocks them all. Before, the lock of each selected alarm was reversed separately, so selecting locked and unlocked alarms together unlocked the locked ones. The event code function lockAlarm(alarm) is unchanged. See Lock.

License ​

  • Energy Performance is an add-on for Standard and Professional; it is not available in the Starter package. In new Standard and Professional offers it is selected by default.
  • Downtime reasons and the downtime reason Pareto need no new license right; they come with the machine drill-down right of Runtime Analysis (Standard and Professional, not in Starter). See License.
  • Existing licenses do not get this right automatically when upgrading to 2.11.0; a new license file with the right added is needed. There is no exception for the SystemAdmin account either. See License.
  • BACnet/IP and MTConnect are included in every package as before; a license can exclude either or both separately. An exclusion closes only that protocol: the device definitions stay, do not count toward capacity and cannot be made active again. See BACnet/IP and MTConnect.

Upgrade notes ​

  • The database schema changed. Back up the database before upgrading. Setup applies the required database updates automatically and adds the Energy Reader, Energy Data Entry, Energy Management and Energy Closing role types.
  • Closed energy reports, corrections and monthly production values are not part of the configuration backup; make sure that your SQL Server database backup covers them.
  • The Consumptions, Consumption Pivot and Runtime Analysis screens and the energy page templates do not change.
  • After the upgrade, Downtime reasons is off in every log definition; turn it on for the machines where you want to use it. The results of the Runtime Analysis screen do not change.
  • Configuration backups taken on 2.11.0 that contain the Log Definitions module cannot be restored to versions older than 2.11.0. Backups taken on an older version can be restored to 2.11.0; downtime reasons are off after the restore.
  • Page rotations: Rotations defined in 2.10.1 run with the Fade transition and a transition duration of 600 ms after the upgrade; the pages use the rotation's default transition. To keep pages changing without animation as before, select None in the Default Transition field. 2.10.1 backups without transition settings are restored with the same defaults.
  • Event code: After the upgrade, only SystemAdmin accounts can add or change event code. Plan the work of users who write event code with your system integrator. Pages that pass on the change of a tag by writing to another tag in the onChange code of a Check box or Drop-down stop writing; on Check box, move this code to onClick and do the transfer in the PLC. A Drop-down has no onClick; Drop-down code that writes on a user selection keeps working (see Writing from a Drop-down). Review the event code in pages and templates taken from other sources; code saved before 2.11 keeps running.
  • Session renewal cookie: Sessions opened before the upgrade keep working the old way until the next sign-in. For the protection to apply on kiosk screens as well, sign in once on every kiosk screen after the upgrade. See Upgrading.
  • Licenses that exclude BACnet/IP or MTConnect: Such a license file can be installed only on 2.11.0 and later; older versions reject the whole license. Upgrade the software to 2.11.0 before installing this license.
  • New widgets and older versions: Existing pages need no data migration; existing charts and tables work as before, and the new settings take effect only when they are selected. Moving pages, templates and backups that use the new widgets or page time to versions older than 2.11.0 is not supported.

Known limitations ​

  • Scope with only internal distribution meters: The energy total is made up only of meters that are Included in site total. In an area/line scope that has only Internal distribution — breakdown only meters, the total is Total not calculable and this scope cannot be closed; the kWh value of the breakdown is visible.
  • Meter reset and replacement: A meter reset leaves no separate trace in the report row; the loss is at most the consumption of one log interval. Record a meter replacement with a delta correction or a manual period total.
  • A factor does not change in the middle of a month: A kWh factor is valid from the start of a month; a factor that changes within a month cannot be defined.
  • Energy intensity only in kWh: There is no intensity in the natural unit (for example m³/t).
  • Export only as XLSX: A closed report is exported only as XLSX; there is no PDF.
  • Alarm table and reconnection: After the server connection is restored or the page is reloaded, an alarm that was cleared without being acknowledged appears in the table again only at its next state change. After a reconnection the Acknowledged by column is often empty.

2.10.1 (October 22, 2026) ​

Changes since version 2.10.0.

New features ​

  • Page Rotations: A kiosk screen can show several pages one after another, each for a set time. Rotations are defined on the Settings > Page Rotations screen, and the kiosk screen is opened with the rotation's kiosk address (?kiosk=1&rotation=<Rotation name>). Details: Page Rotations.
    • Each page can have its own duration (10–3600 seconds) and tag prefix; the same page can appear more than once in a rotation.
    • When the screen is touched, while a window or confirmation question is open, or while a field is being edited, the rotation pauses and continues with the remaining time.
    • Alarm behavior: alarms do not affect the rotation, the rotation stops until no unacknowledged alarm is left, or it goes to the alarm page and waits there.
    • Pages the kiosk account cannot open, or that cannot be opened, are skipped. The rotation shows its status at the bottom right and the remaining time of the page on the bottom edge.
    • Rotations are included in the configuration backup. Backups taken with 2.10.0 can still be restored.

Improvements ​

  • Page editor, panning and zooming: The canvas can also be panned while zoom mode is off, by dragging with Space held or with the middle mouse button. Ctrl (Cmd on macOS) + mouse wheel and pinching on a trackpad zoom the canvas, centered on the cursor; the browser page does not zoom. When zoomed in, the resize handles of the selected item shrink less and never go below 6 pixels (see Panning and Zooming).
  • Kiosk screens recover by themselves: Panel PCs and wall displays return to work without being touched after a server restart, a network or power outage and a version update. Details: Recovery after an outage.
    • The live data connection keeps trying to reconnect without giving up (2, 5, 10 seconds, then about every 30 seconds). This applies to every screen.
    • When the server or the database cannot be reached for a while, the session is not closed.
    • If a panel starts before the server, the Server not reachable page appears instead of the login screen; the requested page opens by itself when the server responds.
    • When the session really expires, the screen returns to the same page after signing in; a kiosk screen comes back to its kiosk address and page rotation.
    • In kiosk and full-screen views, the strip "No server connection … The values on screen are not current." with the outage duration appears at the bottom of the page, and the strip "No communication: N device(s)" when devices have no communication.
    • When a new version is installed, kiosk screens reload into it by themselves once the screen has not been touched for 60 seconds; other screens show the notice "A new version has been installed. Reload the page to use it." After an outage of more than 10 minutes, a kiosk screen reloads once.
    • In kiosk mode the footer is hidden as well.
  • Setup: The web site is set up so that the application page and the version information are not cached in the browser; screens switch to a new version right away. The Panel PC setup guides were updated with the recovery information.
  • Sample project: The landing page Genel Bakış (Overview) of the sample project installed with a new installation is now an isometric plant view: live summary cards at the top, the compressed air, energy center, process water, cold store and production line areas in the middle, and pump control, a power trend and page links on the right. The plant seen from above stays on the Tesis Yerleşimi (Plant Layout) page. Both pages open Tesis Özeti (Plant Summary, the former card view), Pompa İstasyonu (Pump Station) and the two Enerji Analizörü (Energy Analyzer) views. The Pompa İstasyonu page has an isometric process drawing at the top. The simulated pump is running from the first start; the pages show live values when they are first opened. The energy analyzers have 17 tags and show the consumption of yesterday, today, last month and this month; the consumption is calculated by two logs defined on the energy counters of the analyzers. The sample project uses 3 devices and 48 tags of the license. Existing installations do not change (see Sample project).
  • Shared equipment window: An optional Title can be entered on a Show/Hide Element link; while the link keeps the modal open, the modal's title shows this text (for example Motor M01). {{composite.tagPrefix}} typed in the Tag Prefix or Title field of a link inside a composite component is replaced with the effective tag prefix of the copy, so every motor copy opens the one shared modal with its own prefix (see Shared equipment window).
  • Page transfer: Import Pages (.zip) opens a window that shows the number of pages in the package, the new pages and the names of the existing pages that will be overwritten. For existing pages with the same name you choose Overwrite or Skip existing; at the end of the import, the numbers of added, updated and skipped pages are shown. Previously, importing the same pages again silently rewrote them, and it looked as if nothing had changed. If the page open in the editor was overwritten, it is reloaded; if it has unsaved changes, the editor content is kept and a warning is shown. The package commands are also in the File > Transfer menu; Export Page (.json) and Import from JSON File for a single page were added to the right-click menu of the page list. Skip existing requires a 2.10.1 server as well; an older server does not recognize this choice, overwrites the existing pages, and this is reported at the end of the import (see Exporting and Importing Pages).

Bug fixes ​

  • Modal window: When an open modal switches to another item, the page in the modal is built again; values typed but not sent for the previous item and windows opened from inside the modal are not carried over to the new item.
  • Live data connection: When the connection drops, the widgets on screen keep showing the last known values; the No server connection warning states that the values are not current. When the connection is restored, the same widgets update live with the values the server sends, without reloading the browser page. Previously, widgets that were open before the outage froze at their last value until the page was reloaded (especially on kiosk screens).
  • Live data connection: The system tags for the user's roles and group and for the interface language, the page's tag prefix and values written with addTag in event code are no longer lost after an outage; visibility settings that depend on a role or group keep working. Tags are removed only when the user logs out; the next user does not see the previous user's role and group tags.
  • Live data connection, alarms: When the connection drops, the alarm list, the alarm count in the top bar and the alarm summary are no longer emptied (they do not drop to 0). The last known alarms stay on screen with the note Alarm list not current; when the connection is restored they are replaced in one step by the current active alarm list the server sends, and alarms that closed during the outage drop out of the list. Previously the operator saw an empty list and 0 during the outage, as if there were no alarms. While there is no connection, the alarms kept on screen cannot be acknowledged or locked; the action only shows a warning (see During a connection outage).
  • Binding expressions: In expressions in the Tag Name field, relative names passed to the functions tag(), tagValue() and changePercentage() are now resolved with the tag prefix of the page or modal window that contains the expression. Previously these functions used the prefix of the first widget loaded in the browser; on prefixed pages and in a shared equipment window such an expression could show another item's value. Tag names written directly or in single quotes in an expression were not affected. setTag in a binding expression does not write to the field; operator writes are made in event code with setTag(..., this) (see Shared equipment window, Writing tags).
  • Binding expressions: Tag names written in double quotes in tagValue("…") and changePercentage("…") in expressions in the Tag Name field are now also added to the page's tag list; the values of these tags arrive even when they are not used in another binding on the page. Previously only names in tag("…") and names in single quotes were added; the value of a tag read with these functions did not arrive unless the tag was also bound on the page. Names built by concatenation and names in setTag are not added.
  • Button group: When the value of the bound tag changes (for example from the PLC or from another screen), the widget only shows the new value; it does not write the value back to the tag, does not run the onChange event code and does not open a confirmation question while Needs Confirmation is on. Previously every screen with the page open (for example a kiosk) wrote the same value again and showed a confirmation question on every change of the value. The value is written only when the user clicks another button or moves to a button with the keyboard and presses Enter or Space; the arrow keys alone write nothing. If Cancel is selected in the confirmation question, the widget does not stay on the clicked button but shows the current value of the tag again.
  • Event code: On the Check box, Switch, Radio group and Button group, onMouseDown and onMouseUp code runs when the mouse button is pressed and released; previously it never ran on these widgets. onMouseDown and onMouseUp code already written on these widgets starts running after the upgrade (for example code that writes a tag); review this code before the upgrade (see Widgets That Support Event Code).
  • Tag writes, process groups: Sending commands to tags with the Pulse or Rising edge command behavior (EtherNet/IP) now follows the same process group scope as alarms. A user who sees the tag through a Tag Group, through the process group of its device's task center or through Genel can send the command; the Operate or Editor role is still required. Previously only the process group of the device's task center counted; although the tag's alarm was visible, nobody, full-scope users included, could send a command to a tag of a device that is not bound to a task center (when the tag is only in a tag group or in Genel). If no role is assigned to Genel, every user with the Operate role can now send commands to the tags in Genel; to restrict this, assign a role to Genel. A role assigned to Genel also limits who sees the values, alarms and logs of the tags in Genel to that role (see Tag Write Scope and The Genel Process Group).
  • Page management: A page package selected with Import Pages (.zip) is checked and imported; previously the server returned an error while the package was uploaded, and the pages could not be imported (see Page Management and Access).
  • Page management: When a page package is imported, an overwritten page keeps its landing page assignment, and a newly added page does not become the landing page. Previously an overwritten landing page lost this assignment unless the package marked the same page as the landing page, and a new page that the package marked as the landing page became the landing page (see Landing page).
  • Alarm window: When the selection of all rows in the table is cleared, the selection is empty as well; Lock is no longer applied to the previous selection and shows the message There is no item selected!. A selected alarm stays selected when it is updated (acknowledged, its state changed, or its current version arrived after Lock), and Lock is applied to the current version of the alarm; pressing Lock a second time with the same selection removes the lock. An alarm that drops out of the list is removed from the selection and its check box is cleared.
  • Configuration restore: While a restore is running, session refresh and password recovery with Forgot password on the sign-in screen work. Previously these requests were also rejected during the restore (see During the restore).
  • Page editor: In the Elements tab, right-clicking a row that is not selected first selects that item, as on the canvas; the menu commands now apply to the clicked item. Right-clicking a row in the selection keeps the selection.
  • Page editor: Multi-select uses Shift + click; clicking with Ctrl on Windows or Cmd on macOS also works. On macOS, Ctrl + click now only opens the context menu without changing the selection; previously the menu opened during multi-select and removing a selected item from the selection did not work. In the Elements tab, clicking a selected item again with the modifier removes it from the selection (see Selecting and Moving).
  • Modal window links: the tag prefix set on the link is now applied; the modal's inner page opens with this prefix. One shared modal window follows the clicked equipment, so each piece of equipment no longer needs its own modal. Clicking another equipment's link while the modal is open switches it to that equipment; clicking the same link again closes it. Links without a prefix still open and close the modal.
  • Composite components, live values: Widgets inside components with their own Tag Prefix, in bindings built with a placeholder (for example a tag given in the copy with Exposed Bindings), inside nested components and in the current content of a linked component template now show live values. Before, the server subscribed the tags of these widgets with names to which the component prefix and placeholders were not applied; for example, with page prefix Hat1, component prefix Motor03 and the binding .Hiz, the server subscribed Hat1.Hiz while the widget read Hat1.Motor03.Hiz, so no value arrived. In the same way, the values of TwChart series, TwDataTable live tag sources and tags read in event code with tag() / tagValue() now arrive without a separate binding on the page. For tags that arrive this way, the server subscribes only tags that exist and that the user sees in their process group scope, as for alarms (see Component parameters, Reading tags).
  • German interface: wrong and missing translations are fixed. The same concept has the same name on every screen, and list values are shown in German.
  • Texts that did not follow the selected language are fixed: page template names, descriptions and categories; group and role types and the role descriptions installed with the product in user management; the text suggested for a new user or alarm row; the page export/import menu of the editor; the alert for disconnected devices. In the English and German interface the system data group type and the SMS test message also follow the selected language.
  • Buttons, menu items and column headers that were cut off in long translations are shown in full.
  • In the Panel table view, the chart button in the Log column works on the first click.
  • On the Tag States screen, numbers use the decimal separator of the interface language, as on the Panel.
  • In the trend chart, the min/max/average marks are shown with at most two decimals.
  • In the Turkish and English interface, list values (log type, value type, consumption value type, parity, stop bits, OPC UA priority and deadband type, automatic data type) are shown with readable names instead of code names, for example Cyclic, On Change, Median. Saved values do not change. The button on the REST server device is now named Copy Key.
  • MQTT: In the new device form, the Topic field is filled with # (all topics); previously it was empty. Devices created outside the form also default to #. The topic of saved devices does not change.
  • English interface: the "Parameters" spelling mistake is fixed; abbreviated or run-together captions are readable (for example Description, Task Center, Client ID).
  • Archive queries: a query that times out ends with code 1203 and a message suggesting a shorter date range or fewer variables. The query timeout for user sessions is shorter; a very long query ends sooner.
  • Setup: missing characters (ä, ö, ü) on the German setup screens are fixed.

2.10.0 (October 13, 2026) ​

Changes since version 2.9.1.

New features ​

  • TwPotentiometer: A panel-style rotary knob that sets an analog value by dragging, with the keyboard or, optionally, with the mouse wheel.
    • The value can be written on release or at intervals while dragging.
    • Confirmation can be required before writing, and a feedback tag can be shown.
    • Font sizes are set separately: scale label 10–28, value 14–34, title 10–24.
  • TwPushButton: A 22 mm panel push button. It has momentary, maintained and pulse modes, pressed/released values, optional lamp feedback, and color and shape options. It is not a safety or emergency stop element.
  • TwDataTable: Shows tag history and consumption data as a table. It supports:
    • multiple data sources and the consumption pivot,
    • selectable summary rows (total, average, minimum, maximum, count, first, last, share),
    • export to Excel.
  • TwChart: Series can be drawn stacked or 100% stacked.
  • Missing data indicator for consumption: Periods with data gaps are marked with a warning icon, and periods that have not ended yet (today, this month) with a clock icon.
    • In charts and tables: TwChart, TwPieChart, TwDataTable and the History consumption pivot.
    • In KPI widgets: TwValueLabel, TwGauge, TwLinearGauge, TwCircularProgress, TwSpan and TwParagraph bound to __cons snapshots.
    • New coverageIndicator setting: gap (default), all or none.
  • Record device copy: In the record devices list, right-click > "Duplicate" copies the settings and tag mappings to another device that does not have a record device yet.
  • System address picker: In the tag definition, the _ConnError and _TagQualityBad system addresses can be selected from the address field. The selected tag becomes Bool and read-only.
  • System tab in the tag picker: Lists system tags and recipe status tags.
    • A snapshot name builder was added to the Bindings panel.
    • A warning is shown for snapshot names that contain @NOP::.
  • Event code editor: Autocomplete and a tag picker were added for SCADA runtime functions.
  • Templates:
    • Bound composite components are shown live to viewers.
    • Template updates are checked for version and conflicts.
    • New dashboard section blocks were added (status list, alarm summary, indicator row, tank card, etc.).
  • Process visuals:
    • TwConveyor got realistic top and side views; Z/L-type elevators, slat conveyors and an incline angle were added.
    • TwTankRealistic was redesigned.
  • Viewer toolbar: The always-visible full screen button in the top-right corner of the page was replaced by a small bar that appears when the mouse reaches the corner and hides by itself. The bar has the Print and Full Screen buttons.
    • Full screen uses the browser's real full screen feature and closes with Esc. On devices that do not support it, the old enlargement remains as a fallback.
    • Page setting "Viewer toolbar": auto, always or hidden.
    • Adding ?kiosk=1 to the address hides the top bar, the side menu and the toolbar. It is kept when moving between pages; it does not affect permission checks.
  • Page printing: The Print button and Ctrl/Cmd+P fit the page onto A4.
    • Flexible pages such as dashboards are laid out at paper width and continue on the following pages. Fixed-size SCADA screens are fitted onto a single page and centered.
    • Cards, charts and rows are not split across pages. Long tables are split between rows and printed with all their rows.
    • tw-print-break-before written in a widget's class field starts that widget on a new page.
    • Charts are printed as high-resolution images. The page name, date and time, and the user are printed at the top.
    • Page settings: orientation (landscape/portrait), fit (automatic/page/width) and theme (light/as on screen).
  • Calendar ranges in TwChart and TwPieChart: The toolbar has the Today, This week, This month, Last month, This quarter, This year and Last year options. The range can also be saved as a page setting.
    • The back/forward buttons move the calendar range by one period.
    • Pages without the setting keep the old "last N minutes" behavior.
  • Collapsible TwCard: Cards can collapse upward, to the left or to the right.
    • The initial state and remembering it for the session can be selected. When one card in the same accordion group opens, the others close.
    • A card that collapses sideways leaves the freed space in the row and in the grid to its neighbors.
    • In the editor and in print, cards are shown open.
  • TwRotarySwitch (rotary switch): The detailed rotary switch design became a separate widget. It uses the same settings as TwThreeStateSelector; you can switch between the two with "Replace" while keeping the values.
  • Selector labels: New "Labels" setting for TwThreeStateSelector: always show (default), hide when small, or hide.
  • Links: A new "Go to Start Page" link type was added; it opens the user's landing page.
    • The Back link goes to the landing page when there is no history inside the application.
    • Links with an empty target show a warning instead of an error.
    • Screen links open only the pages the user has permission to open.
  • Blocks and templates: New blocks for manual control and page navigation and a new "Energy Consumption Dashboard" page template were added. The Hand/Auto and pump local panel blocks use TwRotarySwitch.
  • Widget settings: Widgets with many settings of their own (TwPushButton, TwPotentiometer, TwConveyor, TwDataTable, card, etc.) got their own section of collapsible groups in the properties panel.
  • Dashboard card view: The card view was redesigned. Cards show the connection and alarm state with colored strips and badges; on process group and task center cards, "Show contents" lists the child records.
    • The summary strip above the cards shows the total, connected, uncertain, no connection and alarm counts. Clicking a box lists only the cards in that state.
    • On levels with more than 12 cards, you can search by name, description, device name or location.
    • The card view shows all records. Many cards are loaded in parts, and the rest are opened with "Show more".
    • A warning appears when the live data connection is lost; the cards continue to update when the connection returns.
  • Genel process group: Tags that are not assigned to any process or tag group are collected automatically in the system's "Genel" group. A tag leaves the group by itself when it is added to a tag group or when its device is bound to a task center in a process group. Genel cannot be deleted and its type cannot be changed; it can be renamed and roles can be assigned to it. It appears with the "System" badge on the definition page; when it is selected, its computed tags are listed read-only.
  • Delete warning: When a task center or process group is being deleted, the confirmation dialog shows how many devices and tags will fall into the Genel group. The device and task center bindings of the deleted record are removed as well.
  • WhatsApp alarm notification: A WhatsApp channel was added to notification definitions in addition to e-mail and SMS. Messages are sent through the Meta Cloud API with the scada_alarm_v1 template approved in Meta; free text is not sent. Only users who have given consent, and whose consented number is the same as their current phone, receive messages. The Settings > WhatsApp Settings screen has the provider details, a test send, daily/monthly usage warnings and an optional daily limit. Consent is saved from the profile page or by an administrator on the Users screen. Notification history can be filtered by the WhatsApp channel. WhatsApp does not guarantee delivery; do not use it as the only alarm channel. Details: WhatsApp Settings.

Improvements ​

  • The Styles tab, page settings and all widget-specific settings got help text.
  • All widget labels and options were translated into Turkish, English and German.
  • Value fields with a type selection are shown at full width. The saved type is visible when the panel is reopened.
  • Binding values dialog: Shows a warning when the name is empty.
  • Editing bindings as text: When invalid JSON is entered, the dialog stays open and the typed text is kept.
  • Translation import: If the window is closed while a file is selected but not imported, confirmation is asked.
  • In long tag trees, the picker scrolls to the last selected tag.
  • Run/stop tooltips show the period type.
  • Pages open faster; the Excel export component is loaded only when it is used.
  • The service status is shown more accurately, and restarting the services works reliably.
  • TwThreeStateSelector moved to a simple, theme-aware design that is readable from 32 px; by default it is drawn on a bordered background with rounded corners (can be changed on the Styles tab). A selector whose value has not arrived yet is shown with a faded pointer and a dashed frame.
  • In charts, monthly columns are drawn wide. Y-axis labels are not clipped, and large values are written in short form (e.g. 1.2M). The unit is not repeated in the axis name.
  • In consumption charts, live mode reloads the range at most once a minute instead of adding raw meter readings as columns.
  • Live mode does not run while a past calendar period is selected; pressing Play returns to the current period.
  • The "Energy Consumption Dashboard" template uses the calendar year, opens paused, and the pie chart's toolbar is visible.
  • Dropping and layout in TwRow, TwColumn and TwCell were fixed. A TwRow added from the palette gets a TwCell inside automatically.

Bug fixes ​

  • MQTT: Channels with Tls11 and Tls13 selected connect with the selected TLS version; topic filters containing + match by the standard MQTT rule.
  • MQTT: Channels with Clean Session off subscribe to the topics again on reconnect when the broker has not kept the session.
  • REST Client: Adding content headers such as Content-Type to Header Parameters no longer stops all reads and writes of the device.
  • BACnet: Scanning does not stop on devices that contain advanced tags.
  • OPC UA and OPC DA: The Matrikon $Connected connection tag is interpreted correctly.
  • Modbus: Writing to Sbyte tags works.
  • In process groups of the tag group type, the alarm state is shown on the dashboard.
  • In the runtime analysis report, Event Count counts each day's own events; weekly and monthly totals are no longer inflated. In the licensed detail view, the table lists all machines.
  • Alarm checking continues without interruption while Not Changed alarm definitions are added and deleted.
  • The Consumption Pivot shows the missing data and partial period indicators.
  • writeTag/setTag in event code resolve the tag prefix and the @NOP:: expression correctly.
  • In event code, setTag(<tag id>) and writeTag({ Id, Value }) really write to the tag; previously they wrote nothing. The role, process group and connection checks are the same.
  • Modbus serial: The data bits (7 or 8) selected in the channel are applied to the port.
  • When the ODBC (Database) connection test fails, the indicator turns red and "Channel Connection Error" (3052) is shown; the details are in the service log.
  • In operation history, the query no longer fails when a user filter and a tag filter are selected together.
  • In TwChart and TwDataTable, week and quarter consumption periods are aligned to the calendar.
  • TwButtonGroup fills the widget height in dark mode.
  • The TwPushButton cap color can be changed.
  • Autoplay works in TwVideo, TwAudio and TwAudioCustom.
  • The data table toolbar buttons are shown at normal size.
  • Advanced tag initial value validation uses the 16-bit range for Int and the 32-bit range for DInt.
  • In the log tags window, deleted tags are removed permanently.
  • A page shared by two modals stays subscribed until the last one is closed.
  • Record device copy also copies the tag mappings.
  • Fixed old labels being shown in the same tab after the chart settings were changed and the page was saved.
  • Fixed the chart showing the old label's data when a label name was typed and saved right away.
  • TwPieChart sums the whole selected range; previously it summed only the last 50 slices.
  • Fixed columns turning into 1-pixel lines when the monthly periods of meters started at different seconds.
  • Fixed the bottom row ("Add Preset") being cut off in the chart and pie settings windows.
  • The value bindings of the medium voltage analyzer template were fixed, and apparent power (S) was added to the MAX row.
  • In the tag definition, the new tag row opens on the first click and does not disappear when the data type is changed.
  • The "Needs ReInitialize" device badge in the top bar also opens the device monitoring page while viewing a page.
  • License Manager (desktop): The QuestDB row in the service list shows the correct service and can be started.
  • Consumption: For cumulative meters, the Consumptions screen, the Consumption Pivot, widgets, snapshots and monthly consumption are calculated with the same rule and give the same result. Period consumption is the sum of the increases between consecutive readings, starting from the last reading before the period; the increase between periods is not lost, and no negative consumption occurs when the meter is reset.
  • The log and advanced tag Mean (median) calculation uses the middle value ([1, 2, 100] → 2); with an even number of samples, the average of the two middle values is taken.
  • In the periodic advanced tag Sum calculation, if there is no sample in the period, the value stays empty and 0 is not written to the bound field tag.
  • At service startup and when the device is reloaded, the Not Changed alarm waits for the first real value and no longer raises an alarm before it arrives.
  • BACnet: Writes are sent with the data type that matches the object type (Analog REAL/DOUBLE, Binary ENUMERATED, Multi-state UNSIGNED). A write rejected by the device does not appear successful; it is reported as a failed item in the recipe result. While Register As Foreign Device is off, no BBMD registration is made; while it is on, the registration is renewed according to the TTL.
  • MTConnect: While Read all items in single request is on, all tag groups with different update intervals are updated. An unreachable agent returns a clear error (5300) instead of an empty device list.
  • Event code: registerEvent subscriptions are bound to the widget; they are removed when the page closes and are not added again on every click, so commands are not repeated. In the editor, the old code no longer runs after the event code is changed.
  • Editor: Clear Page asks for confirmation, marks the page as unsaved and can be undone.
  • Recipe apply also works on licenses without the recipe management right (apply right only). A partially applied recipe is not shown as successful.
  • The Basic identity password of the REST record device is not lost after editing.
  • When SMTP settings are saved without retyping the password field, the saved password is kept.
  • When English or German is selected, menus, list values, buttons and table texts stay in the selected language after the page is reloaded. The default description of the Genel process group is shown in the selected language.
  • The Last Hit Time of API keys is shown in local time.
  • Alarm history shows warning-type alarms as warnings.
  • Operation history shows writes made by deleted users as Deleted user.
  • The Filters panel opens expanded in every language.

Security ​

  • The required password change is applied on all screens and to data access.
  • Enforcement of process group permissions in data access was strengthened.
  • The live data connection of an account without a user group does not fail; this account sees no process group.
  • Saved passwords, device keys and credential headers are shown masked (********) in forms. Saving the form with the masked value or with the field left empty keeps the saved password; if a new value is typed, it is replaced.
  • The recipe apply and recipe management permissions were separated. After the upgrade, review the recipe permissions of the user groups on the User Groups screen.
  • OPC UA: If there is no endpoint that matches the security mode and policy selected in the channel, the channel does not connect and appears with Bad quality. After the upgrade, review the security settings of the OPC UA channels. The supported identity types are Anonymous and User.
  • OPC UA: The Accept untrusted server certificate option was added to the channel settings; it is off in new channels. A rejected certificate goes to the server's RejectedCertificates store; once it is moved to the trusted store, the connection is established.
  • The reinstall and recovery scenarios for protecting the administrator account were improved; the details are in the help installed with the product.
  • Protection of sensitive fields in user management responses has been strengthened.

Upgrading all installations to 2.10.0 is recommended.

Behavior changes ​

  • If Tls11 or Tls13 is selected in an MQTT channel, the connection is made with TLS; if the server does not offer TLS on this port, the channel cannot connect. For these channels, enter the server's TLS port or turn TLS off.
  • The MQTT defaults are the same in the web form and on the server. MQTT channels created outside the web form (API, import) without these fields now run with MQTT 3.1.1 (previously 5.0), with Clean Session on and "reconnect when no data arrives" off (previously 120 s). The timeout default for new MQTT channels is 10 s (previously 3 s). Values in saved channels do not change. In the MQTT channel, the Host field comes empty and must be filled in.
  • If, after the upgrade, a user or API key limited by process group cannot see the data they expect, check the process group permissions of their user group.
  • Unassigned tags in the Genel group: Tags not assigned to any process or tag group are collected in the Genel group. After the upgrade, assign to the Genel group only the roles that should see these tags (e.g. the engineering role); if no role is assigned to the Genel group, the values, alarms and logs of its tags are also visible to users limited by process group. Genel does not grant permission for timed commands or restarts on the device.
  • KPI widgets bound to __cons snapshots show a warning icon when there is a data gap, without the page being edited. To turn it off, set coverageIndicator to none.
  • A copied record device is created inactive; it must be checked and activated.
  • The form shows an error if the advanced tag initial value exceeds 32,767 for Int or 2,147,483,647 for DInt.
  • On unexpected errors, the record device and consumption screens show a localized general message.
  • In the Database (ODBC) channel, when the connection target (server or database) is changed, the password must be entered again for the connection test; if it is not entered, the test gives error 3056.
  • Saved pages that use TwThreeStateSelector open with the new simple look; settings and bindings do not change. For the panel-style rotary look, the widget can be converted to TwRotarySwitch with "Replace".
  • The pie chart uses calendar-aligned periods in consumption requests.
  • The full screen button in the viewer is shown only when the mouse reaches the top-right corner.
  • Masked secrets: In channel/device forms, a saved password or REST Server device key comes as ********. "Copy Device Key" copies only a newly generated (not yet saved) key; if the key is lost, generate a new key and give it to the client. A password cannot be deleted by emptying it in the form; to change it, type a new value. In a channel/device created with copy/paste or duplicate in the grid, the password and key come empty and must be entered again (copying in the tree copies on the server and keeps the secret). Integrations that do GET-modify-PUT through the API may send the mask back; the server interprets this as "do not change".
  • Min/Max value type: The Min and Max options were hidden in the log definition and advanced tag forms; Min/Max is not calculated. Min/Max is also rejected on the server for new records and changes (3504, 3803). Saved definitions do not change and continue to work like Current; a warning is shown when a record with Min or Max selected is opened.
  • Modbus serial StopBits: The "None" option, which could not open the port, and the invalid 11 data bits option were removed. A saved "None" value works as "One" and saved 11 data bits work as 8, and the form shows them that way when opened. Channels saved with 7 data bits now communicate with 7 bits; check the device setting for these channels.
  • Writing by id in event code: In saved pages, event code that uses setTag(<number>) or writeTag({ Id }) starts writing to the tag in 2.10. List and review these pages before upgrading; details are on the Upgrading page.
  • Accounts without a user group see no process group in live data.
  • Recipe permissions (new installations only): In new installations, the Operators group does not manage recipes; it only applies existing recipes. Creating, editing, deleting and importing recipes is in the new Recipe Managers (RecipeManagers) group; the group's roles are Monitor, Operate, RecipeManagement and RecipeApplier. Existing installations do not change: the upgrade does not add this group and does not touch the roles of the Operators group.
  • License status: The license warning line at the top of the pages and the "License rights" summary were removed. When the license needs attention (invalid license, restart required, grace period, capacity exceeded, etc.), a colored badge appears next to the package name in the footer. The badge is shown to all signed-in users; clicking it opens the details and a link to System Information. All license rights are listed on the System Information page.
  • License request: For a new license, send the license.instance file obtained from the System Information page or the License Manager to the 2WinScada team.
  • Consumption totals: Period totals of cumulative meters may come out slightly higher than in 2.9; the increase between periods is now counted. On a meter reset or replacement, that step counts as 0. If there is no reading before the period (a new meter, or a meter that has not written for more than 31 days), the period is marked as missing data; the Consumptions screen shows a warning. Cached snapshot values are recalculated.
  • Unsupported driver definitions: The Modbus String type and Length > 1, Siemens LInt/ULInt/LWord, the BACnet IPv6 address type and the OPC UA Certificate/IssuedToken identity cannot be selected in the interface and are rejected when saved on the server. Tags and devices saved with these definitions are not deleted; they appear with Bad quality.
  • Address validation: Modbus and Siemens addresses are validated by the driver's rule: in Modbus, a bit address is allowed only in Bool register tags, and coil and discrete input only as Bool; in Siemens, a Bool tag requires a bit address and a bit address is used only with Bool. For Modbus serial devices, the Slave Id range is checked.
  • OPC DA: Computer Name is read-only and "local only"; OPC DA connects only to the server on the computer where the service runs. A new remote computer name is rejected (5310); saved values are kept.
  • OPC UA: The channel connects only to an endpoint that offers the selected security mode and policy. In channels that connect with a username and password, a warning appears in the form if the security mode is None; select Sign or SignAndEncrypt for these channels. The priority and deadband settings on devices are applied.
  • Tag write feedback: If the server rejects a write (permission, read-only, unknown tag, device rejection), the user sees a warning; a write made while the quality is bad gives a "sent, but quality is bad" warning. "Sent" does not mean that the PLC applied the value. Rejected writes are not recorded in operation history. Event code errors are also shown to the user as a short warning.
  • WhatsApp license right: WhatsApp notification is included in Standard and Professional licenses; on Starter it is an add-on module. If WhatsApp does not appear as enabled in your license, contact the 2WinScada team for a license update.
  • License file compatibility: License files to which the WhatsApp right was added or from which it was removed can be installed only on 2.10.0 and later. Install the license after upgrading the software.
  • Runtime Analysis menu: If the license does not include Runtime Analysis, this menu item is not shown to users. Details: Runtime Analysis – License.
  • Drag and drop in the editor: Dragging a widget on the canvas now moves it only within its own container; the widget does not enter another container even if the cursor passes over it. To move it to another container, hold Alt (Option on macOS) while dragging a single widget; the target container is highlighted and its name is shown next to the cursor. Esc during dragging returns the widget to its starting position and leaves no change record. Locked containers do not accept a moved widget (dropping with Alt, the layer tree, Move out of container); a new widget dropped from the palette skips a locked container and is added to the container above it. A locked widget cannot be dragged by its title bar either. A Move out of container command, which moves the widget to the parent container, was added to the right-click menu. Details: Page Editor – Selecting and moving.

API (backward compatible) ​

  • Process group type 2 (Genel, system) was added. GET /api/DataGroup/{id}/DeleteImpact and GET /api/TaskCenter/{id}/DeleteImpact return the counts that will fall into Genel after deletion. DataGroupId and DataGroupName were added to the GET /api/Alarms/Unassigned response. New error codes: 4004 (this process group type cannot be used here), 4005 (Genel cannot be deleted).
  • Optional fields were added to the TagsSampleByForPivotDiffSum and ConsumptionsByPeriod rows: IsPartialPeriod, HasDataGap, DataCoverageRatio, SampleCount, FirstSampleTime, LastSampleTime.
  • IsPartialPeriod and HasDataGap were added to the history/snapshots consumption values. HasDataGap was added to the MonthlyUtilityConsumptions items.
  • On unexpected errors, the record device and consumption endpoints return a fixed code:
    • 1000: general error;
    • 3900: the record service could not be reached;
    • 3902: manual control was rejected.
  • Requests made with an expired session return 401; the web interface renews the session by itself.
  • API clients that hit the request limit can make requests again after a short time.
  • AcceptUntrustedServerCertificate was added to the OPC UA channel parameters. Its default in new channels is false.
  • New error codes: 3056 (the saved password cannot be used with a changed connection target), 3504 / 3803 (unsupported log / advanced tag value type), 5300 (the MTConnect agent could not be reached), 5310 (a remote OPC DA computer is not supported).
  • A WhatsAppEnabled field was added to notification definitions (off by default). New endpoints were added for WhatsApp settings, recipient consent and test sending; the whatsappsettings and whatsapprecipients modules were added to backup/restore. Old backup packages are restored with WhatsApp off.

Upgrade notes ​

  • The database schema changed. Back up the database before upgrading. Setup applies the required database updates automatically.
  • Saved pages do not need conversion; all new page settings are optional.
  • Updated system templates and blocks are refreshed when the service starts for the first time. Pages created earlier from these templates do not change.
  • The names of the industry templates were simplified; existing records are moved to the new names. Duplicate old templates are removed if no pages are bound to them.
  • Required password change: Accounts whose password was set by an administrator, and accounts that came with older installations and whose password has never been changed, are sent to the password change screen first at sign-in; they cannot do anything else before changing it. Panel PCs and kiosk screens that sign in automatically may wait on the password change screen after the upgrade. Right after the upgrade, change the password of the account used on these screens and update the automatic sign-in setting with the new password.
  • In new installations, the default operator and monitoring accounts are created without a password; an administrator gives a temporary password with a password reset on the Users screen, and the user changes it at the first sign-in. Accounts whose password has never been set cannot get a password with "Forgot password" (error 2115).
  • Recipe permissions: After the upgrade, check on the User Groups screen which groups can manage recipes, and remove the permissions that are not needed.
  • OPC UA server certificate: In upgraded channels, review the Accept untrusted server certificate setting; adding the server certificate to the trusted store and turning the setting off is recommended.

Known limitations ​

The known limitations in this version are:

  • Driver support limits: The Modbus String type and a Length greater than 1, the Siemens LInt, ULInt and LWord types, the BACnet IPv6 address type and writing to String objects are not supported. These definitions cannot be saved; those left from an older version are not deleted and appear with Bad quality. Details: Protocols – Support limits.
  • OPC UA identity: The Certificate and IssuedToken identities are not supported; only Anonymous and User (username / password) can be used. Details: OPC UA Client.
  • The OPC DA server must be on the same computer: OPC DA connects only to the server on the computer where the 2WinScada service runs; Computer Name is read-only. Details: OPC DA Client.
  • Siemens Sbyte: Sbyte tags are read as unsigned and cannot be written. Details: Siemens S7 Addressing.
  • Min/Max value type: Min and Max are not calculated in log and advanced tag definitions; saved definitions work like Current.
  • WhatsApp delivery information: The delivery and read status of WhatsApp messages does not reach SCADA; the final status of the records stays Accepted. Details: WhatsApp Settings.

2WinScada 2.10