Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI

Document Type: Tutorial
NI Supported: Yes
Publish Date: Aug 3, 2008

An HMI Architecture Overview

3 ratings | 5.00 out of 5
Print

Overview

This document describes the typical functionality of Human Machine Interfaces (HMIs) and provides resources for getting started with your LabVIEW-based HMI.

Introduction

This document continues the discussion of HMIs started in Choosing a Machine Control Architecture and A Reference Architecture for Local Machine Control. It is intended for programmers who want to learn more about building a LabVIEW-based HMI

An HMI provides the machine operator with a graphical user interface (GUI) for monitoring a machine's state and operating parameters and setting control parameters.  From the operator's perspective, an HMI:

  • Displays current machine state (alarms) and operating parameter (tag) values
  • Accepts operator inputs such as button pushes or keypad data entries


[+] Enlarge Image

Figure 1.  Example HMI User Interface

Under the hood, there are several software components that work together to do the job.  This document provides an overview of HMI software organization. 

The implementation recommendations are  specific to each target, and are covered in documents linked at the end of this article.

HMI Architecture

Figure 2 is a block diagram of an HMI architecture showing the relationships between the software components.

Figure 2.  HMI Architecture

Paged Display System

The typical machine control application involves hundreds of data tags.  Some of these tags are related to controller I/O, but the tag list also includes many internal tags for system state management, configuration, calibration, control, testing, and other purposes.  An HMI organizes tag values and presents them to the operator by grouping related tags by display page. 

Each page includes navigation buttons that allow the operator to view other pages.  Access to certain functionality (e.g. system testing or calibration) may be controlled by passwords or by enabling some navigation buttons according to user privilege.

Behind the scenes, the Navigation Engine handles transitions between display pages.

Display Objects

Standard indicators can be used to display analog and digital tag values using digital (boolean), numeric, or string indicators. 

Alarm displays have behaviors that require additional software support.  Common alarm display types include the Alarm Summary and the Alarm Footer types.  The alarm summary typically has its own page, which an operator can view to see a complete list of alarms.  An alarm footer is a one-line display that can be added to the bottom of any page to bring alarms to the operator's immediate attention.  The Alarm Displays Engine provides the behavior for alarm displays.

Data Entry Objects

HMI data entry can require more effort, particularly when the HMI is targeted to a touch panel device where the mouse and keyboard are not available.  Data entry objects must be oversized for ease of use with touch panels, and keypads must be created for entering most data types (numeric, date, password, enumerated, etc.). 

Digital control information can be entered using standard boolean controls.

Tag Engine

The tag engine is a mechanism for storing and retrieving current tag values. It is the hub that the other components use to exchange data as follows:

  • UI pages read tag values for display
  • Operators use data entry objects to enter tag values that are passed to the rest of the system
  • The Event Engine monitors current tag values for certain conditions
  • The Data Engine exchanges tag values with the machine controller

Event Engine

The Event Engine compares a subset of tag values to a set of pre-defined conditions (value equal to X, value in range or out of range, etc.) and logs an event when a tag value matches one of its event conditions. 

Some events are simply journaled in an event log file.  Other events require operator intervention, so they are configured as alarms.  When an alarm event occurs, it is journaled in an alarm log file.  The alarm event data is also sent to the Alarm Displays Engine, which manages how the alarm is presented to the operator. 

When the tag value goes out of alarm state, the Event Engine sends an alarm cancelling event to the Alarm Displays Engine.

Web Server

An HMI may provide internet access to the alarm and event logs, allowing remote users to read the log files using a web browser.

Data Engine

The HMI Data Engine exchanges tag values with the machine controller via a communication protocol supported by the controller. 

PLCs typically communicate by a proprietary protocol or using an industry standard protocol such as Modbus.

PAC communication can be based on Shared Variables or on an alternate protocol such as Simple TCP/IP Messaging.

Tag Configuration Editor

The tag configuration editor is a utility that developers use to create and maintain the application tag list and to configure tag properties such as text labels and alarm/event parameters.

The configuration editor creates a configuration file that the HMI uses to initialize the tag engine.

Where to Go from Here

To learn more about our recommendations for building an HMI for the Touch Panel Computer target, read HMI Architecture for the LabVIEW Touch Panel Module.

The following is a map of other documents that describe the machine control reference architecture.  You can click on the image to navigate directly to each document.

  

3 ratings | 5.00 out of 5
Print

Reader Comments | Submit a comment »

 

Legal
This tutorial (this "tutorial") was developed by National Instruments ("NI"). Although technical support of this tutorial may be made available by National Instruments, the content in this tutorial may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this content with each new revision of related products and drivers. THIS TUTORIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).