Skip to content

Panel PC and Kiosk ​

About 16 min read

This page describes how 2WinScada is used on industrial panel PCs (touch screen, Windows 10/11 IoT Enterprise LTSC, 4–8 GB RAM) and on wall displays. The Panel PC values are planning values; before a panel is commissioned, a 72-hour measurement must be made on the target hardware.

Supported uses ​

Panel RAMRoleSupport
2 GBA browser that shows at most one 2WinScada serverNot supported for the 2WinScada stack.
4 GBKiosk client of a central 2WinScada serverYes, only as a client. 2WinScada is not installed on the panel.
8 GBFull stack on the panel: SQL Server Express, the archive database (QuestDB), IIS, the 2WinScada services and the kiosk browserYes, with the Panel PC (8 GB, full stack) preset and the limits below. 8 GB is the lower limit.

Each kiosk screen counts as one user on the server.

Full stack on an 8 GB panel ​

Installing with the preset ​

On the wizard's Installation Paths page, select the Panel PC (8 GB, full stack) preset check box. In a new installation, the preset:

  • selects the 4 GB system memory profile for QuestDB,
  • enters 768 MB in the SQL Server max server memory field,
  • clears MCP Server, RecordDeviceService and MQTT Publisher on the Components page. Select them again if the project needs them; each of them means a separate service and additional memory.

On the SQL Server page, select the Install local SQL Server Express check box. If the detected RAM is below 8 GB, the wizard asks for confirmation before it continues.

Repair and upgrade keep the recorded preset and the SQL Server memory limit. The installed QuestDB memory settings do not change during an upgrade.

In a silent installation, the preset is selected with /INSTALL_PRESET=panel. A silent installation without a component list installs only the API and the web interface. An explicitly given QuestDB profile, SQL Server memory limit and component list take precedence over the preset.

SQL Server memory limit ​

The SQL Server max server memory (MB, 0 = unchanged) field sets the maximum memory SQL Server can use.

  • Setup applies the limit only to the SQL Server Express instance it installed itself. To apply it to an existing instance on this computer, the Also apply it to an existing SQL Server instance on this computer that Setup did not install option must be selected. It is not applied to a remote SQL Server.
  • Setup records the old value; if the installation fails, the old value is restored.
  • Repair and upgrade apply the limit again only when the field is changed. This way, a change made by hand by the database administrator is kept. To stop Setup from managing the limit, enter 0.

Memory budget ​

ConsumerPlanning value
Windows 10/11 IoT Enterprise LTSC and Defenderabout 2 GB
SQL Server Express (768 MB limit and overhead)about 1 GB
IIS, main API and Notification servicesabout 1–1.5 GB
Kiosk browser (Edge, single page)about 0.5–1 GB
QuestDB, 4 GB profileabout 2 GB
Totalabout 6.5–7.5 GB; no room is left for other software

The QuestDB 4 GB profile is intended for small projects. With this profile, long-term trend and report queries run more slowly and stop with an error if they exceed the memory limit.

Project limits ​

  • At most about 1,500 live tags and 500 archive tags.
  • An archive period of 10 seconds or longer; total archive writes of at most 50 rows per second.
  • At most 5 users (the kiosk screen and four remote sessions).
  • A retention period of 1–3 months in the archive definitions.
  • Only the components the project uses.

At the target load, measure the memory usage of each service and the SQL Server and QuestDB memory for 72 hours; there must be no continuous paging and QuestDB tables must not be suspended. For larger projects, see Capacity planning.

4 GB panel: kiosk client ​

Do not install 2WinScada on a 4 GB panel. On the panel, only run the kiosk script with the address of the central server:

powershell
.\Set-2WinScadaKiosk.ps1 -BaseUrl https://scada.example.local -Page Main

The panel must trust the server's HTTPS certificate. See HTTPS certificate.

Kiosk and automatic start ​

The scripts\panel\Set-2WinScadaKiosk.ps1 script in the installation package prepares the panel as a kiosk. Run the script in Windows PowerShell 5.1 opened as administrator. First use -WhatIf to see what will change. When run again, the script changes only the settings that differ.

powershell
.\Set-2WinScadaKiosk.ps1 -Page Main -WhatIf
.\Set-2WinScadaKiosk.ps1 -OperatorAccount Operator -CreateOperatorAccount -Page Main -ActiveHoursStart 5 -ActiveHoursEnd 22

The script does the following:

  • Uses a separate, non-administrator local Windows account for the kiosk. -CreateOperatorAccount creates this account; the password is typed at a secure prompt and is not stored by the script.
  • Creates the 2WinScada Kiosk scheduled task that starts when this account signs in. The task turns off the screen saver and the lock and keeps a single Edge window open; if the window closes or crashes, it is reopened within about ten seconds.
  • Sets the kiosk address to https://localhost/#/overview/<Page>?kiosk=1. The address can be changed with -BaseUrl, -Page or -Url.
  • Makes sure Edge does not keep running in the background when the kiosk window closes.
  • Turns off sleep and hibernation in the power plan and keeps the display on at all times.
  • Sets the Windows Update active hours (default 6–23, at most 18 hours); Windows does not restart for updates during these hours. Schedule update restarts in a maintenance window.
  • Turns off the Windows edge swipe gestures (-KeepEdgeSwipe leaves them on).
  • Prepares the exclusion list of the write filter (UWF); -ApplyUwfExclusions applies the exclusions. See Disk, UWF and power.

Session mode ​

Edge's kiosk mode starts a new, empty session (InPrivate) every time it opens. After a power cut, a Windows update or an Edge crash, such a kiosk shows the 2WinScada sign-in page and waits until someone signs in on the touch screen. For this reason, the script offers two modes:

  • Default (persistent app window): Edge opens as a full-screen app window with a separate profile that belongs to the kiosk. Sign in once in the kiosk session; after a restart, the panel returns to the process page without asking for a sign-in until the 2WinScada session expires. If the panel starts before the server, the Server not reachable page appears instead of the sign-in page, and the process page opens when the server responds (see Recovery after an outage). There is no address bar, but some browser shortcuts are not blocked in this mode; do not leave a keyboard on the panel, or use Windows Keyboard Filter.
  • -InPrivateKiosk: Uses Edge's kiosk mode; browser shortcuts are also blocked. Choose it only where signing in after every restart is acceptable.

Automatic Windows sign-in ​

The script does not configure automatic sign-in to Windows. Do not use the registry AutoAdminLogon method, because it keeps the password in plain text. Instead, use the Sysinternals Autologon tool, which stores the password encrypted, or the Assigned Access feature. Assigned Access runs Edge in kiosk mode, that is, with a new session at every start; the scheduled task is not needed.

Touch keyboard ​

2WinScada has its own virtual keyboard. Turn it on once in the kiosk session; the preference is stored in the browser. So that two keyboards do not open at the same time, turn off the automatic opening of the Windows touch keyboard (Settings > Time & language > Typing > Touch keyboard). In the default mode, the preference is kept; with -InPrivateKiosk or Assigned Access, it is lost at every restart.

Kiosk address and ?kiosk=1 ​

When ?kiosk=1 is added to the end of the page address, the viewer opens in kiosk mode:

  • The top bar, the side menu, the footer and the viewer toolbar are hidden. Kiosk mode is kept when moving between pages.
  • The browser's long-press menu, two-finger and double-tap zoom, text selection and swipe navigation are blocked. Text boxes, the virtual keyboard, sliders and other widgets keep working; the application's own context menus open.
  • Kiosk mode does not change permissions; the permissions of the user signed in on the kiosk apply.
  • A kiosk screen runs in touch mode: touch controls grow even when a mouse is attached to the panel.

Example address: https://localhost/#/overview/Main?kiosk=1

Because the top bar is hidden, a lost connection and devices without communication are reported in a strip at the bottom of the screen. See Connection strips.

Page rotation ​

If the kiosk screen should show several pages one after another, define a rotation on the Settings > Page Rotations screen and use the rotation's Kiosk Address as the kiosk address. The address ends with ?kiosk=1&rotation=<Rotation name>. Give it to the kiosk script with -Url; because of the & in the address, put the address in quotes:

powershell
.\Set-2WinScadaKiosk.ps1 -Url "https://scada.example.local/#/overview/Main?kiosk=1&rotation=Hall"

Details: Page Rotations.

Fitting to the screen ​

The viewer stretches the page to the screen in both directions and does not keep the aspect ratio. Design panel pages at the panel's resolution, or at least with the same aspect ratio; for example 1024×768 (4:3), 1280×800 (16:10) or 1920×1080 (16:9). A page designed for another ratio looks stretched.

To start a new panel page, you can use the Operator Panel (Touch) starter template. For touch control sizes, the locked look, confirmation and two-step apply, see Touch Panels.

Kiosk account and password change ​

The 2WinScada session stored in the kiosk session belongs to the kiosk account. Give this account only the permissions the panel needs.

In a new installation: The sample monitoring account is created without a password. An administrator gives a temporary password with Password Reset on the Users tab. Sign in once with this account on the kiosk screen; set the permanent password on the Change your password screen. See Sample operator and monitoring accounts.

Kiosks upgraded to 2.10

With 2.10, accounts whose password was given by an administrator and accounts that came with older installations and whose password has never been changed are first taken to the Change your password screen when they sign in; nothing else can be done until the password is changed. Panel PCs and wall displays that sign in automatically wait on this screen when their session expires after the upgrade to 2.10.

Right after the upgrade, change the password of the account used on kiosk screens to a strong, personal password; if a password is saved in the browser, update it as well.

Session renewal and shared accounts ​

From 2.11 the browser keeps the key used to renew the session in a cookie that scripts on the page (including event code) cannot read. In the default mode the cookie is stored in the kiosk's Edge profile; after the panel restarts, the session opens without a sign-in as before. In -InPrivateKiosk mode and with Assigned Access the cookie is deleted at every restart.

The server keeps a single renewal key per account, and every sign-in renews this key. Of the devices that use the same account, only the device that signed in to the account last can therefore renew its session:

  • If someone signs in with the same account on another device, the sessions on the earlier devices end. If several kiosk screens share one account, signing in again on one kiosk ends the session of the others.
  • A screen whose session has ended stays open, but its session is refused at the next renewal: at the latest when the access period expires (4 hours by default) the screen opens the sign-in page and waits until someone signs in.
  • Logout closes only the session of the browser where it is selected. If that browser is the device that signed in to the account last, the key is also invalidated on the server; the sessions of the other devices already ended with that sign-in. Signing out on a device that signed in earlier changes nothing on the server.

If possible, give each kiosk screen its own account; additional accounts count toward the number of users in the license. Do not sign in with kiosk accounts on other devices. After signing in again on a kiosk screen, also check the other screens that use the same account.

Kiosks upgraded to 2.11

Sessions opened before the upgrade keep working the old way until the next sign-in; during this time the renewal key stays in browser storage and signing out does not invalidate it on the server. For the protection to apply on kiosk screens as well, sign in once on every kiosk screen after the upgrade. If this is not done, the kiosk starts using the cookie with the first sign-in after its session expires. If several kiosks share one account, give the kiosks separate accounts before this sign-in; otherwise each new sign-in ends the session of the other kiosks.

Recovery after an outage ​

From 2.10.1, a kiosk screen returns to work by itself after a server restart, a network or power outage and a version update; nobody has to touch the panel.

SituationKiosk screen
The server restarts or the network is cutThe live data connection keeps trying to reconnect without giving up: after 2, 5 and 10 seconds, then about every 30 seconds. Meanwhile the strip "The values on screen are not current." appears at the bottom of the screen with the outage duration; the screen keeps the last values and the last known alarms from before the outage; the alarm list and the alarm counts do not drop to 0, and they are marked as not current. When the connection is back, the values update again without a page reload and the alarm list is replaced by the server's current active alarms. While the server restarts, the alarm list can be empty for a short time until the startup finishes (see During a Connection Outage).
The server or the database does not respond for a whileThe 2WinScada session is kept. The session ends only when the server refuses it, for example when the session has expired.
The panel started before the serverWith a stored session (default mode), the Server not reachable page opens instead of the sign-in page: "Your session is kept. The requested page opens by itself as soon as the server responds." The page shows the time of the last attempt and opens the page in the kiosk address when the server responds.
The session has expiredThe sign-in page opens. After signing in (and changing the password if required), the screen returns to the same kiosk address; kiosk mode and the page rotation are kept.
A new version was installed on the serverThe kiosk notices the new version within about five minutes and reloads into it by itself once the screen has not been touched for 60 seconds.
The outage lasted longer than 10 minutesWhen the connection is back, the kiosk reloads once.

Screens that are not kiosks also reconnect during an outage and keep the session; for a new version, however, they do not reload by themselves but show the notice "A new version has been installed. Reload the page to use it." This way unsaved editor work is not lost.

Setup configures the web site so that the application page and the version information are not cached in the browser; when the kiosk reloads, the old version does not open.

HTTPS certificate ​

Edge in kiosk mode cannot bypass a certificate warning. The address the kiosk opens must be covered by a certificate the panel trusts:

  • Full stack on the panel: Use the https://localhost address only if the site certificate covers the name localhost; otherwise open the panel's primary address. Export Setup's self-signed certificate without the private key and import it only into this panel's Trusted Root Certification Authorities store. See Self-signed certificate.
  • Client panel: Trust the server's certificate, or the certificate authority that issued it, in the same way.

HTTPS also protects the session renewal cookie: on a page opened over HTTPS the cookie is sent only over an encrypted connection. On a kiosk screen opened over plain HTTP the cookie travels unencrypted on the network; use the HTTPS address as the kiosk address.

Disk, UWF and power ​

  • Prefer an industrial SSD with a specified endurance (TBW) over eMMC, and monitor wear regularly.
  • Keep archive writes small and the retention period short. The size of the QuestDB and service logs is limited by Setup.
  • While Unified Write Filter (UWF) protects the system drive, every change that is not excluded is lost at restart. Exclude the following:
    • %ProgramData%\2WinScada (installation state, licenses, logs, backups and the default QuestDB data),
    • the QuestDB data folder, if it is elsewhere,
    • the data, log and backup folders of the SQL Server instance and the SQL backup directory selected in Setup,
    • C:\inetpub\logs (or turn off IIS logging),
    • the Edge profile folder where the kiosk session is stored in the default mode (its path is described in the help installed with the product),
    • the exclusions Microsoft documents for Windows Defender and Windows Update servicing.
  • Run Setup, updates and the kiosk script while UWF is off or in servicing mode. The exclusions take effect after a restart.
  • Use a UPS with a signal cable, or a panel with power-loss protection, so that Windows can shut down properly. On eMMC, a sudden power cut can damage the file system.

Commissioning checks ​

  • Sign in once in the kiosk session, then restart Windows, and once also end Edge from Task Manager. With automatic sign-in in the default mode, the panel must return to the process page without asking for a sign-in. With -InPrivateKiosk or Assigned Access, returning to the sign-in page is the expected behavior.
  • The virtual keyboard preference is kept after a restart (default mode only).
  • The kiosk address opens without a certificate warning.
  • The kiosk account's password is strong and personal; the panel is not waiting on the password change screen.
  • Nobody signs in with the kiosk account on another kiosk screen or device, or it is understood that every sign-in ends the session of the other screens that use the same account (see Session renewal and shared accounts).
  • Restart the 2WinScada services while the kiosk is open: the connection strip appears at the bottom of the screen, disappears when the services are back, and the panel does not ask for a sign-in.
  • Restart the panel while the server is off (default mode only): the Server not reachable page appears, and the kiosk page opens by itself when the server is on.
  • If a page rotation is used, the rotation pages open one after another; a page the kiosk account cannot open is skipped.

2WinScada 2.10