An HMI (Human-Machine Interface) is the screen an operator uses to control a machine or installation. In practice it is usually a 15 to 21-inch industrial touchscreen mounted beside the line, but increasingly also a tablet the operator carries around, or a browser page on a workstation in the control room.
Functionally, an HMI displays live process variables (temperature, pressure, speed, fill level) and provides buttons to start, stop or reset the machine. On top of this sit prioritised alarms, trend charts covering the last few hours or shifts, parameter adjustments, and recipe management for different production runs or product types. The HMI pulls this data in real time from the PLC (Programmable Logic Controller) that physically drives the machine, usually via OPC UA, sometimes via Modbus or a manufacturer-specific protocol.
In the Purdue Reference Model, the most widely used framework for industrial automation, the HMI sits at level 2: the operator interface at the machine. Level 1 is the PLC itself, level 3 is SCADA for supervisory monitoring across multiple machines or sites, level 3.5 is the MES for production execution, and level 4 is your ERP. The higher you go in this stack, the more business logic there is and the less real-time control. A well-built HMI knows its place in that stack: operating and visualising on the shop floor, and passing context up to the layers above.
We build custom HMI software when the standard packages from Siemens, Rockwell or Schneider don't quite fit. For example, because you want a single interface across different PLC brands, because operators move around with a tablet, or because the interface needs to integrate deeply with your MES system and ERP. For the horizontal integrations with higher-level systems, we often build API integrations between HMI, MES and ERP, so production orders, quality records and machine events flow through automatically.