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

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

A HMI Navigation Engine for LabVIEW

0 ratings | 0.00 out of 5
Print

Overview

This document describes how the HMI Navigation Engine works and how to use it.

Background and Scope

For applications where operators interact with machines, there is a natural need for a Human Machine Interface (HMI) through which operators can monitor the status and control the operation of the machine.  There are several ways to implement this HMI functionality but the most common approach is to create “pages”.  

Each page is implemented as a VI, and contains the user interface (UI) elements needed to control or monitor a specific machine process.  The HMI functionality is divided into different UI Pages, depending on the machine functionality exposed to the operator.  For more information on how to build an HMI page, refer to the Creating HMI pages for LabVIEW Touch Panel Module document.

As the UI pages are defined and implemented, there is a need for a design pattern for managing the pages and navigating between them.  This document is intended for people who want to learn how to implement such an engine, specifically for HMI pages.  Although this engine was created for that purpose, this engine can be used in other type of applications.

This document will explain how to use and implement the HMI Navigation Engine (HNE) Component.

Implementation

An HMI is composed of several process loops that run in parallel.  One of those processes is the navigation loop, shown in Figure 1.  The Navigation Engine (HNE) executes inside the navigation loop.  For more information on other HMI components or the HMI architecture, refer to the document “An HMI Architecture for LabVIEW Touch Panel Module”.

HMIarchitecture.PNG

Figure 1. HMI Architecture – Navigation Loop

 

The navigation loop VI is implemented as a case structure enclosed in a while loop.  Each case contains a page VI.  The case selector is wired to the HNE Page Manager (Next) VI (see below), which provides the name of the next page to display. 

The HNE installs an API palette for initializing and managing the HMI pages.  The following paragraphs describe this API.

 

HNEpalette.PNG

Figure 2. HNE palette

 

HNE Page Manager (Init) – This VI initializes the HNE by setting the navigation history depth and setting the name of the first page to be displayed.

HNE Page Manager (Next) – This VI returns the name of the next page and passes it to the case structure in the HNE.

HNE Page Manager (Set) – This VI sets the name of the next page to be displayed.  This VI is used within HMI pages to support navigation buttons.

HNE Page Manager (Back) – This VI returns the name of the previous page from the page history.  This VI is used within HMI pages to support the operation of a “back” navigation button.

The Page Manager stores the page state and history in a functional global variable that each of these Vis accesses.  

Figure 3 shows the block diagram of the example that is installed with the HNE component. This example initializes the HNE with “Home” as the initial page and a maximum history of 10 pages. Once the engine is initialized, the HNE reads the name of the next page (Home) and opens the VI under the “Home” case.   The Home Page runs until the user exits the page by navigating to another page.   When any page is left, the navigation loop uses the HNE Page Manager (Next) VI to get the next page name, which is used to select the corresponding case.

 

 


[+] Enlarge Image

Figure 3. HNE example

The HNE component also installs a VI template that contains the basic structure of the HNE. This template can be used to create a new Navigation Loop.  It just requires adding the HMI pages for your application.

References

Overview:  An HMI Architecture Overview

Overview:  An HMI Architecture for LabVIEW Touch Panel Module

Component:  Creating HMI pages for LabVIEW Touch Panel Module

HNE Component Files: HMI Navigation Engine (HNE) Component

 

 

  

0 ratings | 0.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/).