HMI Builder for Code-Free and Python

Prev Next

HMI Builder allows the rapid creation of Operator Interfaces.

Operator interface created using HMI Builder

HMI Builder in edit view

The following widgets are available in HMI Builder:

  • Edit Mode: toggles between edit and play mode. The application can be launched in Play mode.

  • Group: Allows the creation of additional pages when the plus icon is selected.

  • Information Console: Shows message in the console when an Add Message command is read,

  • Button: Sends an MQTT topic that can be used within the application to trigger events.
      For more information about Events and MQTT , click here.

  • Variable Input: Sets the value of a variable from the Operator Interface

  • Variable Display: Displays the current value of a variable.

  • Digital Input Display: Displays the current state of a digital Input.

  • Label: Add text to the operator interface

The Variable Input and variable Display widgets are only available in Code-free apps

Integrating HMI Builder in a Code-Free Application

In code-free applications, HMI builder can be used to send MQTT topics and events that can be received by the application. Use the Button widget in conjunction with Wait for MQTT message instruction or configure a State machine transition to fire on the reception of an MQTT topic.

It is also possible to assign an MQTT message to a variable (using the result variable input field) this can be handy when process parameters or communication strings are received from another device present on the network.

Wait for MQTT Message instruction

Configuration interface for an event button labeled 'Start Cycle' in a machine application.

Configurating a button to send an MQTT topic and message

Integrating HMI Builder in a Python Application

HMI builder uses the MQTT protocol to communicate between the automation control code and the Operator interface. To learn more about HMI builder

To link a functionality in the application with an MQTT event outputted by HMI builder, the on_mqtt_event method must be used. Click here for more information.

Here is example for using this method when the “Start” topic is received from the Operator Interface:

# Functions
        def Start_Conveyor(topic, message):
        my_conveyor.move_continuous_async(250, 1000) # speed of 250 mm/s and acceleration of 1000 mm/s^2
        ### Program ###
        machine.on_mqtt_event('Start', Start_Conveyor) # start event received from operator button press

In this example, we begin by creating a function containing both a topic and message argument. We then use the machine.on_mqtt_event to link the previously defined function as a callback when the ‘Start’ event is received