SCADA on Thin Clients: Architecture, Risks, and Best Practices

Karen Mitchell12 min read
Best PracticesHMI / SCADAWonderware
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Overview

Thin client computing centralizes applications on a server while delivering keyboard, video, and mouse (KVM) over Ethernet to inexpensive endpoint devices. In an office environment, this architecture reduces patch management burden, hardens endpoints, and lowers total cost of ownership. In a plant environment, where the same machine often hosts an HMI/SCADA workstation tied to PLCs over Ethernet or serial, the architecture creates new failure modes that do not exist on a fat client. A computer terminal that depends on the host for processing is functionally a thin client, regardless of whether the link is serial RS-232 or modern RDP/ICA over TCP.

The principal question an automation engineer must answer is not "can the SCADA vendor's HMI render over Remote Desktop Services or Citrix?" but "does the application survive when the server, the network, the licensing server, the print spooler, the Windows update cycle, and the terminal session all become shared resources?" This article documents the engineering constraints, the network segmentation pattern that mitigates risk, the specific Wonderware InTouch compatibility boundaries, and the bench-test procedure that must precede any production deployment.

Thin Client vs Fat Client Architecture

A thin client depends on a host computer for processing power, storage, and application logic. Modern thin clients typically run HP ThinPro, Dell Wyse ThinOS, IGEL OS, or Windows 10 IoT Enterprise and connect to a Windows Server running Remote Desktop Services (RDS), Citrix Virtual Apps and Desktops, or VMware Horizon. The endpoint renders only pixels and forwards input events.

Attribute Fat Client (SCADA Workstation) Thin Client (RDS / Citrix)
OS at endpoint Windows 7/10/11 full Embedded Linux or Windows IoT
Local CPU/RAM Dedicated, deterministic Minimal; rendering only
Serial ports Native COM1/COM2 or USB-to-serial None (redirected over RDP/Citrix ICA)
Admin rights Local admin available Centrally managed by IT
Patch cycle Engineering-controlled IT-controlled (Group Policy)
Failure domain Single workstation Entire session host + broker
Latency budget ~10 ms screen redraw 40-150 ms per frame (RDP), 20-80 ms (ICA)

For a desk operator monitoring non-critical trends, the latency budget of a well-tuned session is acceptable. For a maintenance engineer launching PLC programming software, downloading firmware, or recovering from a fault, the latency and the loss of physical I/O become unacceptable.

Network Segmentation: The Purdue Model

The defense-in-depth pattern that consistently survives IT/OT collisions is the Purdue Enterprise Reference Architecture (PERA), formalized in ISA-99 / IEC 62443. The plant is divided into five levels (0-4), and the IT/OT boundary is anchored at the Industrial Demilitarized Zone (IDMZ) between Level 3 (Operations) and Level 4 (Enterprise).

Purdue Model with IT/OT Boundary L4 Enterprise (IT-owned) - Email, ERP, MES, BI L3 Operations (Plant-owned) - SCADA Servers, Historian, RDS/Citrix Farm L2 Supervisory - HMI, thin client endpoints, engineering workstations L0/L1 Process/Basic Control - PLCs, I/O, instrumentation, VFDs IDMZ / dual firewall

Implementation rules for an SCADA workstation that may end up on a thin client:

  1. Level 0-2 (process, basic control, supervisory control) is a plant-owned, broadcast-limited, IT-independent network. Switches, VLANs, and firewalls are owned by engineering or maintenance, not IT.
  2. Level 3 hosts SCADA servers, historians, and engineering workstations. This is the only network that may run a terminal server farm if thin clients are used.
  3. The IDMZ between Level 3 and Level 4 contains a data diode or dual-firewall pair. Only whitelisted ports (typically OPC UA TCP 4840, Modbus TCP 502, or DNP3 20000) traverse it.
  4. Thin client endpoints, if deployed, sit on Level 3 alongside the SCADA servers. They do not sit on the office LAN.
  5. IT owns the server OS, anti-virus, and RDS broker. Engineering owns the SCADA application, I/O drivers, and tag database. A written change-control board manages who can patch what and when.
Engineering ownership of the plant network is non-negotiable. The argument that convinces management is downtime cost: a multi-million-dollar production line halted by an IT-driven patch cycle is more expensive than the cost of running a parallel plant network indefinitely.

Wonderware InTouch on Terminal Services: Compatibility Boundaries

Wonderware InTouch (now AVEVA InTouch HMI) has shipped since 1989. Compatibility with Windows Server and Terminal Services has evolved with the product line.

InTouch Version Terminal Services / Citrix Notes
InTouch 7.1 (2000) Limited Not Windows XP certified. Can be coerced to run as a View Node on Windows 2000 Server with Terminal Services, but development/configuration requires local install.
InTouch 8.0 (2003) Officially supported as View Node First release to explicitly support thin client deployment. WindowViewer and WindowMaker have different licensing rules on TS.
InTouch 9.5 / 10.0 (2010-2012) Officially supported Requires per-user or per-device RDS CALs in addition to InTouch run-time licenses.
InTouch 2014 / 2017 / 2020 (AVEVA) Officially supported Validates against Citrix Virtual Apps and Windows Server RDS. See AVEVA InTouch HMI compatibility matrices for the precise OS/service-pack matrix.

The critical distinction is View Node vs. Development Node. The View Node (WindowViewer) is a run-time-only application that displays the HMI graphics. It is licensed by tag count and is the part that can be hosted on a terminal server. The development environment (WindowMaker) is a per-engineer licensed product that requires a local, full-admin Windows session. Running development on a thin client works in principle but is slow and uncomfortable for any application beyond a few hundred tags.

Serial Port and Hardware I/O Constraints

Most legacy SCADA architectures include at least one workstation with a real RS-232 or RS-485 port connected to a PLC, a panel meter, a barcode reader, or a scale. RDP and Citrix virtual channels can pass COM port traffic to the session, but the redirect is implemented in the endpoint's RDP/ICA client and frequently fails for industrial protocols that use long inter-character timeouts, 9-bit data, or hardware handshaking.

  • Allen-Bradley DF1 full-duplex on COM1: works over RDP serial redirect on Windows 10 endpoints with the Microsoft RDP client, fails on most Linux thin clients (HP ThinPro, IGEL) unless a vendor-specific redirector is installed.
  • Modbus RTU over RS-485: timing-sensitive; degrades to timeouts at 100 ms+ RDP latency.
  • Siemens MPI/PROFIBUS on USB-to-serial adapters: never reliable over RDP redirect; the adapter must be mapped on the session host, not the endpoint.

Mitigation: deploy a terminal server with a multiport serial card (e.g., Digi Neo PCIe, Moxa CP-118U-i) and map the on-board COM ports to the RDS session. The thin client endpoints have no serial hardware at all.

Administrator Rights and Application Licensing

IT-led thin client deployments default to standard-user accounts with no local admin. The following functions break under that model:

  1. Installing or upgrading the InTouch run-time, I/O drivers (DAServer, ABCIP, KEPware), or Wonderware Application Server.
  2. Modifying the Galaxy or ArchestrA database.
  3. Registering OPC COM/DCOM components; DCOM defaults are tightened by Group Policy and break remote OPC calls.
  4. Editing the Windows hosts file or LMHosts for legacy NetBIOS resolution to PLCs such as an Allen-Bradley SLC 5/05 or PLC-5.
  5. Running PLC programming software (RSLogix 500, Studio 5000, TIA Portal) which demands local admin to install EDS files and to access the network driver stack.

The accepted compromise is a two-tier account model: a standard user account for day-to-day View Node operation, and an engineering account that is a member of the local Administrators group on the session host, invoked by IT only on a service-desk request. This preserves IT's audit trail and gives engineering the access it needs.

Licensing pitfall: InTouch run-time is licensed per concurrent WindowViewer instance. On a terminal server, every concurrent user consumes one InTouch license. A 20-operator control room that previously needed 20 standalone licenses now needs 20 InTouch run-time licenses on the session host, plus 20 RDS SALs and 20 Microsoft Office licenses if Office is on the image. The cost math rarely favors thin clients below ~10 operator seats.

Bench-Test Procedure Before Production Cutover

Any SCADA-on-thin-client cutover must pass a bench test in a controlled environment before touching a live line.

Prerequisites

  • Identical or near-identical hardware: the same endpoint model, the same session host model, the same RDS/Citrix version, the same InTouch build number, the same anti-virus product.
  • A representative I/O load: at least one PLC over Ethernet (e.g., Allen-Bradley SLC 5/05 with EtherNet/IP or ControlLogix with CIP), and at least one serial device on a redirected COM port.
  • A scripted fault injection list: kill the session host, kill the RDS gateway, force a Windows Update reboot, drop the network for 30 seconds, exhaust the session host's RAM.

Step-by-Step

  1. Stand up the session host on a test VLAN. Join it to a test AD domain. Install RDS, Citrix VDA, or VMware Horizon Agent.
  2. Install InTouch, license the WindowViewer, and deploy a sample application with the same tag count as production. Verify the View Node launches and the I/O driver (DAServer, KEPware, or RSLinx) initializes inside the session.
  3. Connect one thin client endpoint. Log in. Launch the View Node. Record the screen-render latency with a 1080p30 frame-rate counter and a stopwatch on a tag-spoof event.
  4. Connect a second, third, and up to the maximum supported concurrent sessions. Verify the InTouch license server grants all sessions. Monitor session host CPU, RAM, and disk I/O at peak.
  5. Force a session disconnect (close the RDP/ICA window). Verify the View Node re-establishes I/O within 10 seconds. Verify no orphaned COM port handles.
  6. Apply a Windows Update batch and reboot the session host. Verify users fail over to a second session host (or accept the planned outage window).
  7. Inject a network outage of 30 seconds between the endpoint and the session host. Verify the View Node does not lock up; if it does, tune the I/O driver's timeout and retry parameters.
  8. Document the result. Sign-off by engineering, IT, and production.

Verification Checklist

Check Pass Criteria Measured
View Node launch time over RDP/ICA < 8 seconds to first tag value _____ s
Concurrent sessions per host ≤ 10 for 2 vCPU/8 GB; ≤ 25 for 4 vCPU/16 GB _____
Session host reboot recovery Operators reconnected in < 2 minutes (with HA) or within maintenance window _____
Serial redirect reliability 0 dropped frames over 24-hour burn-in _____
Anti-virus scan impact Real-time scan excludes InTouch.exe, DAServer.exe, KEPware folders _____
Admin account escalation Engineering account can install/upgrade drivers without IT reboot _____

Troubleshooting Matrix

Symptom Likely Root Cause Corrective Action
View Node shows "Cannot connect to I/O Server" DCOM blocked by Group Policy on session host Add engineering account to local Distributed COM Users; open TCP 135 plus the dynamic DCOM port range in the session host firewall
Tags show "???" at random intervals RDP/ICA latency spike during peak hours Reduce session host user count; enable UDP transport on RDP; switch to Citrix HDX
Serial device times out Endpoint serial redirector not installed or wrong baud Map COM port on session host via Digi/Moxa; remove endpoint-side redirect
License server refuses second concurrent user InTouch run-time licensed per seat, not per user Purchase additional run-time licenses or move to concurrent (network) licensing
Session host falls over after Windows Update No HA pair; single point of failure Deploy second session host with RDS Connection Broker or Citrix DDC load balancing
Operator sees black screen after login InTouch run-time crashes on session host; COM port handle orphaned Set Windows Service Recovery on the InTouch process to auto-restart; add a 30 s delay between session logon and View launch via logon script
Operator locked out mid-shift IT Group Policy idle screen-lock at 15 min Create a dedicated OU for SCADA session hosts with idle timeout disabled; exclude engineering OU from screen-lock policy

Field-Proven Caveats

  • A Windows 10 or Windows 11 engineering laptop with a local install of InTouch and the engineering license is not redundant to a thin client; it is the recovery path. If the session host fails, the laptop is the only way to bring the line back in under an hour. Maintain at least one per shift.
  • Anti-virus on the session host must exclude the InTouch, KEPware, and DAServer executable paths. Real-time scanning of a 50,000-tag database write causes tag flicker and CPU spikes that look like network faults.
  • Do not let IT enforce screen-lock Group Policy at the standard 15-minute idle timer. Operators monitoring a process for 8 hours straight will be locked out, the session will suspend, and the View Node will stop updating.
  • Citrix-published InTouch on a Windows Server 2019 or 2022 session host with Citrix Workspace App 2309 or later is the most stable combination observed in 2023-2024 field deployments. Older Citrix Receivers (pre-Workspace) have broken serial redirect on Linux endpoints.
  • For Allen-Bradley SLC 5/05 and PLC-5 Ethernet communication, RSLinx or KEPware must run on the session host, not on the thin client endpoint. CIP routing across the IDMZ is not supported.

Can Wonderware InTouch 7.1 run on Windows Server with Terminal Services?

InTouch 7.1 (released 2000) was not certified for Windows XP and has limited Terminal Services support. It can be coerced to run as a View Node on Windows 2000 Server, but development and configuration must be done on a local full-install workstation. Upgrading to InTouch 8.0 or later is the supported path for thin client deployment.

What is the right network architecture for a thin-client SCADA deployment?

Anchor the plant network (Levels 0-2 of the Purdue model) under engineering ownership. Place SCADA servers, historians, and the terminal server farm at Level 3. Terminate the IT/OT boundary at an Industrial DMZ with a dual-firewall pair. Thin client endpoints belong at Level 3, not on the office LAN.

How many concurrent InTouch View Nodes can one terminal server host?

Plan on 5-10 concurrent users per 2 vCPU / 8 GB session host for a 5,000-tag application, scaling to 20-25 users per 4 vCPU / 16 GB host. Always validate with a bench test using production-equivalent tag counts and I/O scan rates before sizing the production environment.

Why are real serial ports still needed even with thin clients?

RS-232 and RS-485 protocols (DF1, Modbus RTU, Siemens MPI) depend on precise timing and hardware handshaking that RDP and ICA serial redirect frequently corrupt at industrial baud rates. The accepted pattern is a multiport serial card installed in the terminal server, with the COM ports mapped to the RDS session; the thin client endpoint has no serial hardware.

Does a thin client cutover save money below 10 operator seats?

Rarely. Below ~10 operator seats, the per-user cost of an RDS SAL, a Microsoft Office license, an InTouch run-time license, and the session host hardware amortized over the user count typically exceeds the cost of equivalent fat-client workstations. Thin clients start to win on TCO above 10-15 concurrent operators, and only if serial and admin-rights issues are engineered out.

Back to blog