Cookies are important for this site to function properly, to guarantee your safety, and to provide you with the best experience. By clicking OK, you accept all cookies. For more information, please access our Privacy Policy.

The Complete Human Machine Interface (HMI) Starter Guide

Learn what is an HMI, what are the different HMI platforms, how to learn HMI development & programming, and everything else you need to know to get started on your way to HMI programming mastery.
Table content

What is HMI and HMI Programming

In the world of industrial automation, Programmable Logic Controllers, or PLCs, control plant floor equipment to manufacture certain goods. Although the field of automation has grown tremendously over the last few decades, humans play a significant role in the operation, troubleshooting, and maintaining these complex systems.

A Human Machine Interface, or HMI for short, is a device that allows a human to give directions and receive feedback from the PLC that is controlling the manufacturing process. In other words, it is a means to input commands into your machines and earn feedback about their status.

Put simply, an HMI is an industrial computer that is correctly put in place to communicate between the PLC and the operator of the manufacturing floor.

HMI Programming

HMI Programming is different from most other programming languages. The reason is that an HMI is a visual representation of what’s happening on the manufacturing floor. Therefore, the actual HMI programming is typically referred to as HMI development as most of the time is spent on designing the layout of the screens rather than writing code in the traditional sense of the definition

Furthermore, the programming that will control the inputs and outputs of an HMI will generally reside on the PLC, giving the PLC programmer most of the control over the functionality of how the HMI will operate. However, both of these functions are combined at most facilities, and the PLC programmer would either create the layouts of the HMI screens or be familiar enough with the process to dictate how HMI programming will take place.

--> Read our Getting Started in FactoryTalk View ME HMI Development tutorial

HMI systems and Design Good Practices

The primary function of an HMI system is to allow an operator to control the process. When implemented appropriately, and HMI should be:

  • Functionally sound
  • Efficient
  • Intuitive to use

Let's explore the distinction of each one separately.

HMI Functionality | Basics and Advanced Features

The most basic HMI will allow the operator to see the current status of a particular process. Imagine for a second that you have a grinding machine that you may start and stop with the press of either button. An HMI could be created to give a visual indication of the current status of the machine: stopped or running. However, a PLC could pull a lot more information from this machine, depending on the needs of the operation. Therefore, the HMI could be used to convey this information to the operator and allow him to make better decisions with regards to the process.

Imagine that the same grinding machine is capable of faulting out. It may stop due to a lack of maintenance (low oil level), unforeseen breakdown (jam at the infeed), or an operator mistake (safety door opened). Each one of these fault states is being displayed by an LED directly on the electrical panel. Since we have this information available, we may choose to add it to an HMI to provide a more granular feedback mechanism to the operator who will eliminate the inherent fault.

Now imagine that the machine has numerous features that may be adjusted by the operator. This may include settings of speed, temperature, pace, and more. Each one of these settings used to be adjusted through a series of potentiometers in the past. Now, most of these can be changed directly from an HMI. We do want to make a quick note that good HMI design practices would dictate that certain features of the HMI may be restricted to different users. For example, an operator should be able to start, stop, and select the speed for the machine. They shouldn’t be able to tweak the settings with regards to a temperature that may impact the final product. This setting may be restricted to a supervisor or engineering level personnel. More on this later.

Lastly, an HMI could include advanced features of the process such as batch controls, recipe management, line status, and much more.

--> Batching Tank Ladder Logic PLC and HMI Tutorial

As HMIs became more powerful, they started to transform from controlling a single machine to plant-wide control schemes which are sometimes described as Supervisory Control and Data Acquisition, or SCADA, systems. There’s a grey line at which an HMI will be considered a SCADA system, but for the purpose of your understanding, and HMI would control a single production line. In contrast, a SCADA system would supervise an entire area or the whole manufacturing plant.

HMI System Efficiency

HMI Design is easy to grasp, yet challenging to master. A well designed HMI would allow the user of that area to have access to the right information and control without the need to jump through multiple hoops.

In other words, the design should include the elements that are needed by the operator and eliminate those that aren’t. Furthermore, efficiency translates to HMI design best practices when it comes to the layout of each type of screen.

You must keep the following essential design considerations in mind during the HMI development and HMI programming stage of a systems integration project:

  • Are the buttons of the appropriate size?
  • Can every screen be accessed without excessive navigation loops?
  • Can the process be started and stopped from every relevant screen?
  • Can you make a change to the recipe that isn’t currently running?

HMI Design | Simple and Intuitive

The difficulty in creating a genuinely advanced HMI is placing yourself in the shoes of the person using your screens.

An experienced HMI programmer will take into account the limited knowledge of an operator when it comes to the systems controlling different machines, create an easy to follow navigation menu and allow the user to navigate to critical elements quickly.

Furthermore, the flow of the system would remain consistent and retain intimate details that will enable the user to have an easier time learning their way around the HMI. Lastly, the design of the system should mimic the real system enough to make the user comfortable using the interface without the need to access additional information. This may include appropriate names for the machines on the floor, icons that are easy to understand, and symbols that accurately represent the assets of the plant.

HMI Software | FactoryTalk View Studio

In the world of Allen Bradley control systems, FactoryTalk View Studio is the software development environment for Human Machine Interfaces. You can think of this software as the HMI equivalent of RSLogix or Studio 5000. FactoryTalk View Studio comes in several flavors of HMI Development suites, incorporates multiple tools, and can support HMI programming of sites of various scale and needs.

FactoryTalk View Studio Machine Edition [ME]

The Machine Edition version of FactoryTalk Studio is the most widely used variation of the software. It is used for programming standalone HMI terminals of the PanelView and PanelView Plus series. We will discuss the hardware a little further in this guide. The Machine Edition software will be deployed onto terminals that will interact uniquely to PLCs on the floor and function without the need for any additional equipment.

FactoryTalk View Studio ME is typically deployed in smaller facilities or standalone equipment such as a case packer, palletizer, or otherwise. Original Equipment Manufacturers (OEMs) would usually develop an application that would control their machine without the need to communicate to any hardware external to their system. The ME version of the software makes an excellent choice.

FactoryTalk View Studio Site Edition [SE]

The Site Edition version of FTView Studio is used to deploy distributed applications that will typically control an entire site. However, within the Site Edition suite of HMI software, there are three distinct versions offered to the user.

  1. The first option is to create a standalone client that will run on a windows PC
  2. The second option is to create a network distributed architecture that would pull the data from a server application and distribute it to clients across the manufacturing floor.
  3. The third option involves a network layout that would contain several HMI screens that would be networked together to provide a better experience to the operators on the floor.

FactoryTalk View Site Edition is typically seen at more substantial sites that are capable of supporting highly available network infrastructure. This software package is capable of gathering data from multiple PLCs, lines, and machines. It has features of redundancy, automatically replaces failed servers, and will distribute HMI screens across the floor as configured by the design engineers.

How to Choose Between FTView ME and SE for a New Project

The common question we receive and have to clarify for our customers looking to deploy HMI solutions is related to FactoryTalk View ME versus SE. The bottom line is that ME has a low upfront investment, but costs more on a per terminal basis. On the flip side, SE has a high fixed upfront cost in server and licenses to deploy, but is significantly cheaper than the ME alternative.

A rule of thumb we use based on the prices of terminals is that if you're looking to deploy less than 10 terminals it's going to cost less on ME; otherwise SE is a cost effective solution.

That being said, other factors may influence the selection process. For example, many of our customers would utilize the server for other functions once deployed. They would also shorten the repair time of the SE terminal and would be able to deploy additional HMIs much faster than they could otherwise.

--> Read our complete guide to choosing the perfect software for your needs

HMI Hardware | Selecting HMI Terminals

The applications built for HMI terminals will require different hardware depending on their nature. From our experience, HMIs will be typically deployed onto one of the three types of equipment:

  1. PC based HMI solution - an industrial grade personal computer is implemented with Windows or an industrial variation of the Operating System such as Windows IoT or Linux Core.
  2. Dedicated HMI solution - each vendor (Ex: Allen Bradley, Siemens, Automation Direct) has a specialized resolution that has an HMI software pre-installed on it. These terminals are only capable of running the software developed through the tools of their respective vendors. For example, a PanelView Plus terminal would only run an application built in FactoryTalk View Studio ME.
  3. Distributed HMI solution - similar to the dedicated version, each vendor, would specify the hardware that is capable of running their distributed version of tools. An example of this would be ThinManager from Allen Bradley. This distributed solution would dictate the specifications of the hardware it requires to run.

PanelView and PanelView Plus Terminals

The Allen Bradley standalone lines of HMI screens are the PanelView and PanelView Plus terminals. These HMI terminals are rugged, capable of running without interruption, and are pre-loaded with the software required to run FactoryTalk View Studio ME applications out of the box. As mentioned above, the standalone terminal is the fastest path to getting an HMI terminal onto the manufacturing floor as it comes pre-configured with the right software. However, the downside of having this capability is the cost of the terminal. Generally speaking, a standalone terminal would cost significantly more than a distributed client.

The panels from Allen Bradley come in multiple variations. Depending on the need of the facility, engineers may choose a board with external buttons, monochrome versus RGB complexion, different widths, different software packages allowing a single or multiple PLC connections, and more.

Getting Started in HMI Programming and Development

As PLC Programmers gain experience in programming a controller, they naturally start to require an interface that would simulate certain items. In this section, we will discuss the typical learning path on how to get into HMI development as well as recommend a few entry-level terminals one should consider using with their PLC.

FactoryTalk View Studio ME Edition

As discussed above, FactoryTalk View Studio Machine Edition is widely used across many plants in North America. This solution allows the user to create applications that would be deployed onto standalone PanelView and PanelView Plus terminals. Furthermore, FactoryTalk View Studio allows the user to simulate the entire application through the development software and experiment with the different configurations before uploading it to the terminal. Due to these reasons, it is the recommended path to learning HMI development.

How to learn HMI programming and development

  • Install the software and become familiar with it.
  • Create basic input and output structures tied to a PLC-based process.
  • Explore intermediate functions of an HMI terminal.
  • Work on both your design skills.

First, install the software and to become familiar with the essential drawing tools first. These tools are similar to what you would see in visual design software such as Microsoft Paint but do create a different way of interfacing with the elements.

Second, create basic input and output structures tied to a PLC-based process. A beginner project may be to create a simple Street Light System that would allow the user to start the process and display the appropriate street light depending on the direction of the road.

Third, once you become comfortable with that, we recommend exploring intermediate functions of an HMI terminal. In a real application, the user should design a navigation system, a way to enter screens based on button and/or icon presses, a way to display general faults of the system, and more.

Advanced features of a standalone HMI terminal may include alarms reported by the system, a security system based on the permissions for the users, a series of elements that are hidden from an operator but are available to the maintenance team and so on.

The mastery of HMI programming would require you to build your design skills in addition to the technical ones. Professional HMI developers would create layouts that are pleasing to the eye and reflect the status of the system.

For example, this could mean the difference between inserting a numeric value of the tank level and displaying the actual level through a filling scale.

What is the Difference Between HMI and SCADA?

SCADA stands for Supervisory Control and Data Acquisition. Although they are sometimes used interchangeably in casual conversations, there are components which would be more common to one than the other.

An HMI will typically be a stand-alone terminal that will communicate to one (most often) or several PLCs in the field. Such terminals may be distributed across the plant and often have no knowledge of each other.

A SCADA system will interface with a vast number of control systems. It will have a network access to the PLCs as well as HMIs across a plant. Based on the information collected, a SCADA system would process the information and deploy it to the appropriate terminals or HMIs. It is aware of all the HMIs in the field and will intelligently assign information to be displayed.

Key SCADA Components

  • Server Infrastructure - Allows the SCADA to collect and store data into a dedicated, redundant database. The SCADA can store and display historical data on the HMI terminals.
  • Plant Network - Allows the SCADA system to connect to every PLC, HMI and field device (typically through a PLC). Furthermore, a SCADA system would typically have access to the WAN in order to service data to outside users (remote access, email alerts, etc.)
  • Historical Data - Allows the users to view data that has been collected by the system over time.