HMI Programming and Development (Part 1)

Process system programming and controls 2

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. That led us to learn more about HMI Programming and Development.

SCADA System
HMI Programming and Development

A Human Machine Interface (HMI) is a device that allows a human to give directions and receive feedback from the PLC, which is controlling the manufacturing process. In other words, it is a means to input commands into your machines and earn feedback about their status. But, 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 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 controls the inputs and outputs of an HMI. This generally resides on the PLC, giving the PLC programmer most of the control over the functionality of the HMI operation. 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. This is to dictate how HMI programming will take place.

HMI Systems and Design Good Practices

As discussed above, the primary function of an HMI system is to allow an operator to control the process. However, a lot of components need to be implemented appropriately for an HMI to be functionally sound, efficient, and, most of all, intuitive to use. Let’s explore the distinction of each one separately.

5eef56690aad895e35e03c87 HMI%20Checklist
HMI programming system is to allow an operator to control the process

HMI Functionality | Basics and Advanced Features


The most basic HMI will allow the operator to see the current status of a particular process. 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 to make better decisions with regards to the process.

automation system integrator 500x500 1
An HMI could be created to give a visual indication of the current status of the machine: stopped or running.



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.


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.


Lastly, an HMI programming could include advanced features of the process such as batch controls, recipe management, line status, and much more. As HMIs became more powerful, they started to transform from controlling a single machine to plant-wide control schemes. They 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, 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. 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? All those are essential design considerations one would consider during the HMI development and HMI programming stage of the systems integration project.

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 takes into account the limited knowledge of an operator when it comes to the systems controlling different machines. He/She creates 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 enables the user to have an easier time learning their way around the HMI. Lastly, the design of the system mimic the real system enough to make the user comfortable using the interface without accessing additional information. This may include:

  • appropriate names for the machines on the floor
  • icons that are easy to understand
  • symbols that accurately represent the assets of the plant

Learn more in the next part…

Source: SolisPLC


CTI SUPPLY built up a group of well-qualified senior engineering teams with a great number of in-house experts and automation programmers in Vietnam. We are available to take on different projects in scale, even on short notice, and quickly ramp up by working as an extension of your internal team. Our vast experience allows us to offer custom and application specific training as an added benefit to our clients.

With over years of experience in high-tech machine programming, CTI SUPPLY’s design team are able to simplify PLC/SCADA/HMI prototype process as our main package of your choice. We can also supply you with drawings and documentation for all your equipment builds.

Engineered Solutions | Custom Control Systems | Programming Services

During the current economic uncertainty, CTI SUPPLY is still open for business to offer our full offsite service globally.

Hotline: (+84) 91 190 1717,

Gửi email Nhắn tin Zalo