Table of Contents
I. Introduction to AdvancedHMI
II. Features
AdvancedHMI allows developers to create custom graphical user interfaces quickly and with minimal coding.
A. Platform support
B. Graphical User Interface
C. Communication
D. Data logging
E. Database connectivity
F. Security
G. Troubleshooting
H. APIs
I. Support and resources
III. Conclusion
I. Introduction to AdvancedHMI
AdvancedHMI is a free, open-source software development suite for creating Human Machine Interfaces (HMIs). It turns Visual Studio into an HMI development environment: the operator screens for machines and industrial automation systems are designed in Visual Studio and compiled into ordinary Windows executables, instead of being run by an interpreter as in many traditional HMI packages. This makes the finished HMI fast and lets it run on any Windows PC or industrial panel PC, without licence keys, dongles or runtime fees. The project has been available for more than ten years and is used in thousands of installations worldwide. Its features cover platform support, a drag-and-drop graphical user interface, PLC communication drivers, data logging, database connectivity, basic security, troubleshooting, APIs and community support.
II. Features
A. Platform Support
AdvancedHMI is built on the Microsoft .NET Framework and is developed in Visual Studio, including the free Visual Studio Community edition. The finished HMI applications run on Windows. Release notes of the 3.99 series also include fixes that let AdvancedHMI applications run on Linux under Mono, and the project page mentions Raspberry Pi support, but Windows remains the main platform and there is no macOS version. The current download is the AdvancedHMI Base Package 3.99x, while a 3.99y beta still receives updates.
B. Graphical User Interface
AdvancedHMI adds a toolbox of ready-made controls to Visual Studio, so basic HMIs can be created by drag and drop without writing a single line of code. The controls include analog value displays, bar level graphics, basic buttons and labels, pilot lights, multi-state indicators, message displays driven by bits or values, keypads and charts. Each control is linked to a PLC address through its properties, and every screen can be arranged and styled like any other Windows Forms application.
C. Communication
AdvancedHMI includes native drivers for Allen-Bradley controllers over Ethernet/IP (ControlLogix, CompactLogix, SLC 500 and MicroLogix) and DF1 serial, Modbus TCP and Modbus RTU, Omron FINS and Host Link, and Beckhoff TwinCAT. Devices without a native driver can be reached through the OPC DA driver. A driver component is simply dropped onto a form and configured with the address or serial port of the controller, after which the visual controls can use it.
D. Data Logging
The BasicDataLogger components record values read from the PLC over time, and the release notes mention multi-point logging and scale factor support. Chart controls such as ChartBySampling display values as trends directly on the HMI screen, so operators can follow process data without extra software.
E. Database Connectivity
AdvancedHMI has no dedicated database module, but because every HMI is a normal .NET application, values read by the drivers can be written to SQL Server, MySQL, Access or other databases with standard .NET data access code. This makes it possible to store production data in a central database and use it in reports or other programs.
F. Security
Security features are basic. Screens can be switched with a FormChangeButton that can ask for a password, and keypad controls can hide typed characters with a password character. More advanced user management, such as individual accounts or access levels, has to be added by the developer in code.
G. Troubleshooting
Since the HMI is built in Visual Studio, the standard Visual Studio tools can be used to debug it: breakpoints, variable inspection and step-by-step execution help to find communication and logic problems. The AdvancedHMI forum contains many answered questions about driver setup and typical connection issues, and sample projects show working configurations.
H. APIs
The communication drivers can also be used directly from Visual Basic or C# code, so developers can read and write PLC values in their own routines. The DataSubscriber component can subscribe to one or several PLC addresses and raise an event when values change, which makes it easy to extend the HMI with custom logic. Since the source code is open, the controls and drivers themselves can be modified as well.
I. Support and Resources
AdvancedHMI is supported mainly through its online documentation wiki, the community forum and sample projects. Training resources are offered on the official website, which also sells a 15-inch industrial panel PC that is prepared for running AdvancedHMI applications.
III. Conclusion
AdvancedHMI is a free, open-source toolkit for creating Human Machine Interfaces (HMIs) in Visual Studio. It combines drag-and-drop screen design with native drivers for Allen-Bradley, Modbus, Omron and Beckhoff controllers, OPC DA access, simple data logging and full access from VB.NET or C# code. For engineers who are comfortable with Visual Studio, AdvancedHMI provides a flexible and low-cost way to build and run HMIs on standard Windows hardware.