[05] - TwinCAT HMI Setup Guide
Overview
A TwinCAT HMI deployment has two distinct components: the Engineering side (where the HMI project is developed) and the Server/Runtime side (where the HMI is hosted and served to clients). Both require their own software installation and firewall configuration.
Engineering Setup
On the engineering PC, open the TwinCAT Package Manager and install:
This package provides the HMI development environment within Visual Studio, allowing you to design screens, configure symbols, and publish the project to a runtime server.
On the engineering side, in Package Manager, make sure that TE2000 | TwinCAT 3 HMI Engineering is installed
Server (Runtime) Setup
On the machine that will host and serve the HMI (this may be the IPC/PLC itself or a separate server), open the TwinCAT Package Manager and install:
This is the runtime component that serves the HMI to connected clients via a browser or dedicated client application.
Firewall Configuration
Firewall rules must be configured in two places: on the engineering PC and on the IPC/server machine. Without the correct ports open, communication between the engineering tool, the HMI server, and clients will fail.
ADS Communication Ports
These ports are required for ADS (Automation Device Specification) communication between TwinCAT components. Ensure they are open on the relevant machines:
HMI Server Communication Ports
The following connections must be permitted through the firewall:
Engineering → Server:The engineering PC must be able to reach the HMI server to publish projects and manage the runtime.Client → Server:Clients (browsers or HMI client apps) must be able to reach the HMI server on its listening port.Default port is2010(HTTP) or2020(HTTPS).
Important - IPC Whitelist: If the HMI server is hosted on a Beckhoff IPC, the IPC's built-in firewall must explicitly whitelist the HMI server's port (1010 or 1020). The IPC firewall is managed separately from the Windows firewall and will block incoming connections to the HMI server by default if the port is not added to its allowed list.

