Technical Article

Human Machine Interface (HMI): Controls and Data Types

October 04, 2023 by Shawn Dietrich

An overview of HMI data types, input controls, output indicators, and message functions, the building blocks used to construct informative and appealing HMI applications.

Simply put, an HMI is the operator’s portal into a control system. Typically, an HMI will allow for control of automated devices within equipment and will display helpful information about the equipment status or fault diagnostic information.

 

HMI Function

An HMI is similar in many ways to a SCADA system, except that a SCADA system might monitor multiple machines or an entire facility/process, compared to an HMI, only monitoring one small sub-process or device at a time.

Designing an HMI application requires a bit of artistic creativity along with common functional design practices.

 

HMI for a power generation application

Figure 1. HMI display for power generation performance. Image used courtesy of Adobe Stock

 

Data Types for HMIs

There are many different kinds of HMI software on the market today to build your HMI application. Most have a drag-and-drop interface that allows the user to simply build screens similar to a PowerPoint document.

All of the applications will have some way of mapping HMI tags or variables to PLC tags. Some applications will restrict the number of tags that can be mapped based on the license that was purchased. With these applications, it is important to choose tags wisely. The types of tags that can be mapped are identical to the most common PLC tags, such as boolean, integer (DINT or Word), and string. Arrays will sometimes be supported up to a specific array size, and user-defined tags will be supported with more popular HMI software.

Some software will use OPC UA for reading tag values, while other software will have its own software driver to read PLC tags.

 

HMIs with large, medium, and small screens

Figure 2. HMIs can be used for large, mid-size, and small screen applications. Image used courtesy of Automation Direct

 

Controls On The Screens

The whole point of an HMI is to allow an operator or user to interact with the control system. This requires control features on the screen, but there are different kinds of controls. A push button has multiple functions, inputs can be text or numeric. Below is a short description of the different kinds of inputs that most HMI screens make available to the programmer.

Momentary push button - This style of button sets a boolean tag while the button is pressed. Once the user releases the button, the value goes back to zero. Commonly used for acuating outputs within the PLC, such as pneumatic cylinders.

Maintained/latching push button - Similar to the momentary push button, except the tag value will be set until the button is reset

Toggle button - This style sets a tag value when the user touches the button, and the value will remain until the user presses the button again.

Text and numeric inputs - Allows an operator to enter a numeric or text string input. The value is sent to the PLC when the operator closes the popup keyboard or presses enter.

These controls allow designers to create screens that an operator can use to interact with the automation. Faults can be displayed and cleared, users can log in or out, and parameters can be sent to a PLC.

 

Developing an HMI screen application

Figure 3. Example of an HMI development software with several inputs and meter/graphical data displays. Image used courtesy of Control Automation

 

Indicators

When some event occurs within an automated process or device, the control system needs to inform the operator, and this is where indicators come in.

Typically, an indicator is driven by a boolean tag and will flash or change color when the tag is equal to 0 or 1, as configured by the programmer.

An indicator can be a simple circle that changes the fill color based on the value of a tag, or it can be more complex such as a progress bar. As the value of the tag increases, more of the progress bar background is filled in with a high-contrast color. An indicator should use bright colors that stand out from the rest of the screen. Common colors such as red, yellow, and green are used to indicate fault, warning, stopped, or running.

 

DOT road sign with a text display

Figure 4. Data like text strings can even be broadcast to remote locations, like this DOT road sign at the top of the awe-inspiring Rocky Mountains in Colorado. Image used courtesy of Adobe Stock

 

On-Screen Messages

When a programmer wants to send a message to the user through the HMI, like a fault message or a warning message, there are a couple of different ways to accomplish this. We could set the message via a string tag and then link a string message block.

Another method is to create a message list, which is a list of messages that associate a number to a message. The PLC then sends a specific fault number to the HMI, and a special display block is used to display the message associated with the number received from the HMI.

 

Example P&ID on an HMI screen

Figure 5. HMI with a complex P&ID (piping and inst diagram) for a large reactor process. Image used courtesy of Adobe Stock

 

Bringing It All Together

All of these controls, indicators, and message blocks are some of the common features used on HMIs to create interactive screens that operators and technicians can use to interact with the PLC and the equipment.

While these features are useful when used properly on a display, they can be rendered useless if the operator can’t easily figure out how to use the screen. HMIs need to be intuitive and easy-to-use. They also need to be ergonomic so that users do not fatigue if using or looking at the HMI for a long period of time.

Designing an HMI can take many hours, if not months, or even years of dedicated work in conjunction with a large engineering project. This is why most companies prefer to standardize HMI layout and design across projects and facilities for ease of future development.

 

Featured image used courtesy of Adobe Stock