Professional Documents
Culture Documents
QuickHMI Software
Modern SCADA/HMI visualization
Version 9 Gazelle
QuickHMI - V9 (Gazelle) R2 05.07.2021
Table of contents
2
QuickHMI - V9 (Gazelle) R2 05.07.2021
3
QuickHMI - V9 (Gazelle) R2 05.07.2021
4
QuickHMI - V9 (Gazelle) R2 05.07.2021
5
QuickHMI - V9 (Gazelle) R2 05.07.2021
1 Introduction
Thank you very much for buying QuickHMI.
To help you to get to know you are newly purchased product and to allow you to start using the software as quickly
as possible, we have compiled the most important information for you in this QuickHMI documentation. Please
read this information carefully. It contains important instructions on how to operate the software, which will help
you to take full advantage of our product.
Copyright:
All rights, in particular, the right to reproduce, distribute and translate this documentation, remain reserved.
Without prior written consent from the copyright holder, no part of this documentation may be reproduced by
means of photocopying, microfilm, or other processes,
All reproduction rights reserved. Indi.An Systems GmbH is not liable for any inaccuracies resulting from errors or
from subsequent changes to the content or program.
All product names or other names or brands referred to in this documentation are the trademarks or registered
trademarks of their respective owners.
and are the property of those copyright owners. All rights are reserved.
6
QuickHMI - V9 (Gazelle) R2 05.07.2021
Status variables
From version 9.1.0.0 Gazelle, you can display the status of variables in the visualization. You can interact
with these status variables as with all other variables. All about this topic you will find in the “Status
variables” chapter.
Database queries
Display entire table contents from databases on the interface.
All about this topic you will find in the “Database queries” chapter.
Corporate Design
Here you can define the complete design of the user login mask so that it fits your company or project. You
can customize the logo as well as the colors and the texts. This function is only available in QuickHMI
Professional. All about this topic you will find in the “Project settings” chapter.
7
QuickHMI - V9 (Gazelle) R2 05.07.2021
Darkmode
8
QuickHMI - V9 (Gazelle) R2 05.07.2021
3 QuickHMI Editor
Create your data or machine visualization with QuickHMI Editor in a few easy steps. Run your project in a Browser,
QuickHMI Android App or Desktop Application on Windows and Linux. With the scalable QuickHMI create small
projects with a Raspberry Pi up to a large visualization of industrial landscapes.
In addition to the graphical drag and drop environment, the possibilities of scripting with JavaScript have been
further developed. It is also possible to use external file and database content. Also, a comprehensive driver
collection is available for the connection of many data source types.
9
QuickHMI - V9 (Gazelle) R2 05.07.2021
3.1 Licenses
How to request and activate licenses you can see in the "Request a test license" and "Activation of licenses" sub
chapters.
To request a trial license, visit our website and log in with your data. If you don’t have any log-in data, you can
register for free.
10
QuickHMI - V9 (Gazelle) R2 05.07.2021
After login, you have direct quick access to the software download and the purchase of licenses. To download
QuickHMI and request a 14-day trial license, click on "DOWNLOAD".
11
QuickHMI - V9 (Gazelle) R2 05.07.2021
The download area contains QuickHMI Software Packages, Update Packages and the image for the Raspberry Pi.
You can also call the help here.
12
QuickHMI - V9 (Gazelle) R2 05.07.2021
In the following dialog click on "Request trial license bundle via email".
As described in the dialog, 3 different QuickHMI versions will be sent to you via email for testing. A private license
is provided for private use only, commercial use is prohibited.
With this trial license, you can use QuickHMI 14 days for free.
The private trial license can be converted to a private full license and the trial license for businesses can be
converted into a full license for businesses. Other combinations are not possible.
How to import and activate licenses, you will find in the "Activation of licenses" chapter.
13
QuickHMI - V9 (Gazelle) R2 05.07.2021
After downloading QuickHMI and staring the QuickHMI Editor, you must import a valid license to continue. Click
on the "Import" button and select your previously received license.
If you don´t have a license, you can get it on our website, or click on the "Request a trial license" link.
Then you have the option of deciding whether to activate the license automatically or manually.
Information:
There is no longer a separate license for the QuickHMI Runtime Manager. There is only ONE editor license
that applies to everything.
14
QuickHMI - V9 (Gazelle) R2 05.07.2021
To automatic activation, an existing connection to the Internet is required because the license will be registered on
our QuickHMI Server (Part of the QuickHMI Standalone Runtime).
If you have exceeded the maximum number of license activations, the following dialog will appear, and you will
need to purchase a new license.
Information:
A license can be activated up to 5 times per year. So, on 5 devices. A license is bound to the hardware
signature of a device.
15
QuickHMI - V9 (Gazelle) R2 05.07.2021
Do you want to activate your license manually, because you don't have access to the Internet, select “No” in the
“Confirmation” window.
The "License Activation" window opens with an "Activation key". You can enter it from another Internet-enabled
device on our QuickHMI activation website.
Then you will receive an "Activation Code", which you can then enter on your device again in the "Activation code"
area. Click "Activate" to continue.
This allows you to activate your license manually without an Internet connection.
16
QuickHMI - V9 (Gazelle) R2 05.07.2021
On this dynamic HTML start page, you will find the latest news about QuickHMI, as well as information about this
software. You will also find our program documentation and video tutorials.
Additional services:
FAQ
Request features
Report errors
Contact
17
QuickHMI - V9 (Gazelle) R2 05.07.2021
How to create headers and footers is explained in the "Header and footer" chapter.
Aspect ratio
In the "Presets" section, you can choose between many of preset aspect ratios. These are divided into dimensions
for the desktop version and for the mobile app version. Of course, you can also specify an individual aspect ratio by
simply entering the width and height manually. By disabling the lock icon, you can change the width and height
independently.
18
QuickHMI - V9 (Gazelle) R2 05.07.2021
You can create a header and footer directly in the first project page. You can also select a header and footer already
created in the other project, which should now also be available in the new project.
From a newly created header and footer, then the height can be determined. Created headers and footers appear
as red lines in the preview.
By activating the checkbox, you can reduce the page by the height of the header and footer. So, the set aspect ratio
includes the header and footer, and the effective page size shrinks.
19
QuickHMI - V9 (Gazelle) R2 05.07.2021
Alternatively, you can go to “File / Open” where you can choose between already existing projects. The “Recently
opened projects” appear here too.
20
QuickHMI - V9 (Gazelle) R2 05.07.2021
2. Layers
4. Project explorer
5. Properties
4
3
21
QuickHMI - V9 (Gazelle) R2 05.07.2021
3.6.1 File
If you click on “File” above on the left site, you will have the following options in the main menu:
New project
A new project will be created.
Open
An already existing project can be selected and opened.
Save
The project will be saved.
Save as…
The project will be saved using a name to be entered.
Information:
Server export
File needed by the QuickHMI Runtime Manager (Part of the QuickHMI Standalone Runtime) to configure
the project.
Close project
The project will be closed.
Exit
QuickHMI will close.
22
QuickHMI - V9 (Gazelle) R2 05.07.2021
3.6.2 Runtime
All information’s about the runtime mode, can be found in the “Runtime mode” chapter.
3.6.3 Project
All operations that you find in the "Project explorer" can also be called up directly in the main menu under
"Project".
3.6.4 Edit
Cut
Cuts selected control elements.
Copy
Copies selected control elements.
Paste
Paste copied and cut control elements with all before defined properties.
Delete
Deletes selected control elements.
Arrangement
Align multiple control elements
23
QuickHMI - V9 (Gazelle) R2 05.07.2021
Navigation
Shows all created views and sites from the project.
3.6.5 Editor
Click on "Editor" in the menu bar and you have the following options:
License information
To get information about your currently used license, click on "Editor" --> “License info” in the menu bar of the
QuickHMI Editor.
This will open the window "License info", with all information’s about the used license.
24
QuickHMI - V9 (Gazelle) R2 05.07.2021
Here you also have the option to change licenses, with click on the corresponding button. Because the license is
tied to the current hardware signature of the device when it is activated, it is necessary to deactivate the license
on the current system before the hardware will change or before installing QuickHMI on another computer. So, the
license can then be reactivated on the new system without any problems.
If you have made significant modifications to the layout to suit your needs, it may be necessary or practical to
restore the standard layout. This way, you have immediate access to all Editor windows.
Window
Here, you can reopen any windows you closed earlier to use the space for another purpose.
For instance, if you close the “Layers” window, you can restore the layers window in the Editor under “Window”.
25
QuickHMI - V9 (Gazelle) R2 05.07.2021
Log messages from the editor are logged in the designated “messages” window.
The QuickHMI Server and the QuickHMI Runtime Manager (Parts of the QuickHMI Standalone Runtime) are logging
to their respective files which are in the following directories:
Windows:
Linux:
Language
Select the desired language and restart the editor for the settings to take effect.
Theme
From QuickHMI Gazelle version, you can easily switch between the normal mode and a dark mode here.
26
QuickHMI - V9 (Gazelle) R2 05.07.2021
3.6.6 Help
Here, you can open the help file (QuickHMI Documentation) and information about the QuickHMI version you are
using with integrated diagnostic tools. In addition, you can check for available updates.
27
QuickHMI - V9 (Gazelle) R2 05.07.2021
You can, for instance, assign a new background color. Click on the color wheel at the right side of the “Settings”
window to assign a new color. Set the desired properties for your page. The “Default view” property lets you select
which page should be the start page at runtime.
If you right-click a vacant space on the Editor workspace, you can switch to View Manager. For a detailed
description of the View Manager, go to the link below.
You can also open the properties window by holding down the “Alt” key.
28
QuickHMI - V9 (Gazelle) R2 05.07.2021
Here you have the option to change the page size. In this case, proceed as follows: If you are in the "Side
properties", you will find "Page size" in the "Settings" area.
29
QuickHMI - V9 (Gazelle) R2 05.07.2021
If you click on "Change page Size", the current page ratios are displayed. These can be changed as desired. Please
note that components which are outside the new size range will be deleted.
Before the components which are outside the new size range will be deleted, you still have the option to cancel the
operation. In this case, click "No". Otherwise, continue with "Yes".
30
QuickHMI - V9 (Gazelle) R2 05.07.2021
In this example, only “Button 1” remains. All other buttons were outside the new size range.
31
QuickHMI - V9 (Gazelle) R2 05.07.2021
You have the options of dividing your project into organized sections to make navigation within the large project
significantly easier.
To set up a view, select “Edit” from the “Main menu” and then “Page properties”. Alternatively, hold down the ALT
key with the page selected on the Editor desktop.
The control elements can be hidden and replaced using the “Views” tab. The view can be placed on the Editor
desktop, where its size can be adjusted and selected like any other control element via Drag&Drop. Selected views,
like other objects in the Editor, have their own properties.
These can also be modified via the Properties window for the selected view.
All of the views can be selected under the menu item “Edit” / “Navigation”.
32
QuickHMI - V9 (Gazelle) R2 05.07.2021
33
QuickHMI - V9 (Gazelle) R2 05.07.2021
Select "Header/Footer" as "Type". Now you can choose one of the templates or enter individual values. Then
continue with "OK".
“Page2” has been defined as a page with a header and footer. You can edit these headers and footers and display
them on all other pages.
34
QuickHMI - V9 (Gazelle) R2 05.07.2021
In the “Properties” click the selection button in the “Header” line. Then all the pages that you have previously
defined as headers and footers will appear.
Proceed in the same way for the “Footer”. So, you can select which page should be shown as the header and which
as the footer.
The header is now displayed by default in “runtime mode”. The same would apply to the footer if you had defined
“Page2” as the footer in the properties beforehand.
35
QuickHMI - V9 (Gazelle) R2 05.07.2021
In QuickHMI it is possible to group several pages together. This guarantees an even better overview, especially in
larger projects. To do this, select a page and go to its settings. In the "Properties" window, set a group name in the
"Group" column and confirm with Enter. This will create the group and automatically assign the selected page to
that group.
In this example, the group “Group 1” was created and the selected “Page3” was assigned to it. Once a group has
been created, you can drag and drop additional pages into this group.
To delete groups again, simply remove the group name of the group folder. All pages contained in it are removed
from the group but are retained. These can then be deleted individually if necessary.
36
QuickHMI - V9 (Gazelle) R2 05.07.2021
In runtime mode, the group appears in the page overview and can be opened to get to the pages it contains.
37
QuickHMI - V9 (Gazelle) R2 05.07.2021
Information:
All project settings are saved in the project and automatically applied to the QuickHMI Runtime Manager
when it is executed.
Common
Here, you can set up project protection by assigning a password of your choosing.
Project ID:
Generating a project-dependent ID has the meaning that databases for saving the chart data no longer
depend on the saved project name, but on the generated "Project ID". So, the same data can be accessed
in several projects using the ID. (Previously, a new database was created for each new project.)
To do this, enter the "Project ID" of the project whose data is to be used and confirm with "Save". The
reverse case is also conceivable: If a project becomes "Save as", the “Project ID” is also included. By default,
the same data would be used as the basis for the charts, as for the old project.
If you want to start with the new project but with a fresh database, simply generate a new random "Project
ID" with the button "Generate".
38
QuickHMI - V9 (Gazelle) R2 05.07.2021
Runtime | Miscellaneous
Here you can set the initial zoom level. Choose “Fit” for display the full site or zoom to 100% (like in the
editor).
Runtime | Ports
Here you can specify which ports should be used. For each port, you can determine if it should be HTTPS
secured or not. This is done simply by activating or deactivating a check box.
39
QuickHMI - V9 (Gazelle) R2 05.07.2021
Runtime | Compression
Data sent between server and client, can be compressed to improve transfer speed. How the data is
compressed, is set here. The performance depends on the compression.
Runtime | Java
The Java maximal heap size determines how much memory the JVM (Java Virtual Machine), and therefore
our server, can allocate. Given too much memory the server might don´t start at all. Given to less it might
later. Java settings need only be changed if recommended by the software. Otherwise usually no changes
need to be made.
How much memory is needed mainly depends on the project size. We recommend to only these values with caution.
40
QuickHMI - V9 (Gazelle) R2 05.07.2021
Charts
Here you can specify how many days the data should be saved and thus be visible. "Save" your setting to
continue.
Corporate Design
Here you can define the complete design of the user login mask so that it fits your company or project. You
can customize the logo as well as the colors and the texts. By default, the QuickHMI design is active.
41
QuickHMI - V9 (Gazelle) R2 05.07.2021
42
QuickHMI - V9 (Gazelle) R2 05.07.2021
43
QuickHMI - V9 (Gazelle) R2 05.07.2021
44
QuickHMI - V9 (Gazelle) R2 05.07.2021
Communication
Create data sources, variables, and alarm variables.
Database
Here you can create database connections, as well as display entire table contents from databases on the
interface.
Translation texts
You can create translations for different languages here. Your project can thus be used by an international
team.
Charts
The chart manager is used to manage various chart configurations, which then can be displayed inside a
chart control element.
E-mail templates
In QuickHMI you have the possibility to send automatically generated e-mails by variable values change,
alarms are triggered, or communicating with controls.
Scripting
Create and link JavaScript functions. With the innovative HTML5 manager, individual representations and
scripting can also be implemented in just a few steps. It is possible to integrate external HTML services. For
more information, please refer to the HTML / JavaScript documentation.
Media
Imported images and audio files can be used for user-defined image control elements and variables. It’s
also possible to create your own SVG controls.
Security
In this area you can create users into groups and assign rights.
45
QuickHMI - V9 (Gazelle) R2 05.07.2021
PlugIns
Add and remove extensions with the PlugIn Manager.
Recipes
Create and select recipes with recipe management.
Project settings
Overview and editing of project-specific settings.
46
QuickHMI - V9 (Gazelle) R2 05.07.2021
The default controls elements are sorted into different groups. If you know
the name of your desired element, you can enter it into the search
function. Your searched control element is immediately available to you
without a long searching.
47
QuickHMI - V9 (Gazelle) R2 05.07.2021
Charts
Variety types of charts
Conveyor Systems
Conveyor technology elements
Cutaways
Variety types of cutaways
Displays
Variety types of displays
Fluidics
Variety types of guidance symbols
Graphic Symbol
Variety types of technical symbols
Graphics
Variety types of graphic symbols
HTML
Html Box
Lamps
Variety types of lamps
Motors
Variety types of motors
Pictures
Image control elements
Safety Signs
Variety types of warning and safety signs
Sensors
Variety types of sensors
SVG
Create your own SVG controls in QuickHMI
Tanks
Variety types of tanks
Valves
Variety types of valves
48
QuickHMI - V9 (Gazelle) R2 05.07.2021
Use the control elements by pulling the selected element on to the Editor desktop via Drag&Drop. Here, the control
elements can be arranged, combined, assigned functions, and linked in any way you wish. Control elements can
also be selected, edited, deleted, or copied in this environment.
Group selections and distribution of elements into different layers are also possible.
Now you can assign the control elements properties, actions, and rules.
49
QuickHMI - V9 (Gazelle) R2 05.07.2021
To assign properties, actions, and rules to a control element, which you want to edit, it must be marked at the
editor workspace. (A Red border appears) To select all elements that are on the surface at the same time, select
the key combination CTRL + A.
You can specify the properties in the window "settings", now. By choosing the tab "settings" you can specify all
the characteristics that your control element will receive. According to the control elements, those may vary. Use
the search function.
In addition, you can determine the "PositionX" and "PositionY". So, the elements can be arranged exactly on the
editor desktop. "PositionX" and "PositionY" can also be addressed via rules and scripts.
Information:
Name the control element in the opening window "Edit name" as desired. Continue with "OK".
50
QuickHMI - V9 (Gazelle) R2 05.07.2021
When a control element is selected, it can be moved with the mouse to a desired position.
However, if you want to position the control element more precisely, you can move it step-by-step with the arrow
keys.
To do this, you determine the "ElementRotationPoint" in the "Settings". This is the point from which the rotation
originates. Then you can rotate the element with the mouse wheel. If you use the mouse wheel without the shift
key, the element rotates 10 degrees per step. With pressed Shift key, it´s even more accurate with 1 degree per
step. Also, you can select the degree of rotation in the "ElementRotation" property. This is applied to the element.
Choose the
ElementRotationPoint.
51
QuickHMI - V9 (Gazelle) R2 05.07.2021
3.10.1.3 Rules
Assignment rules are used to link properties of controls with variables, properties etc.. For example, to display the
value of a string variable in a text field. Rules can be created for each property that has a gear icon.
Clicking on the gear icon for open the rule editor for the selected property.
The rule editor opens. Here, the property of the component with which the rule editor was opened is preselected
first ("Visible" in this case). To create a new rule, click on the plus icon in the toolbar.
52
QuickHMI - V9 (Gazelle) R2 05.07.2021
You have the possibility to add a condition to the rule. The input field for the conditions is permanently visible in
the rule editor. To create a new condition, use the plus icon next to "Condition".
By clicking on the arrow next to the text box opens a list of all available objects that are available for
selection. These can be identified by the corresponding symbol. This applies to all text boxes. The selection
is made by clicking. A search function is also possible here by writing directly into the text box to search
for terms. So, all matching objects of the search are displayed.
Constant HTML
Property View
53
QuickHMI - V9 (Gazelle) R2 05.07.2021
Depending on what was selected, the icon in front changes. In the example below the variable “System.hour” was
selected. With a click on the pipette symbol the selection can be made in the old input system, if this is desired. This
applies everywhere where the pipette symbol is displayed.
After defining the condition, another condition can be added from version Gazelle. This was not possible in previous
versions. For another condition, repeatedly use the plus icon next to "Condition". So, you can add as many
conditions as you like. With a click on the garbage can icon on the right, conditions can be deleted again.
In addition, you have the option to decide whether it is sufficient that at least ONE of the created conditions applies
or whether ALL conditions must apply. Use the "OR" and "AND" switches for this purpose. The use of the switch is
available from the second condition. Before it´s grayed out.
54
QuickHMI - V9 (Gazelle) R2 05.07.2021
Within the conditions you can also add groups. More conditions can then be added to the groups. In the following
example this would mean: Either if the time is 10 OR (switch to "OR") if the group block applies. Within a group it
is possible to choose between "OR" and "AND" again and to interact with the same options. If the first switch would
be set to "AND", then the first condition AND the group block would have to be fulfilled with at least ONE of the
conditions contained therein.
When all the entries have been made and the rule defined, click on the check-mark to create the rule.
Created rules can be edited or deleted via the toolbar. In addition, the order can
be changed. The order is important in that rule processing stops with the first
rule that either has no condition or whose condition applies. The rules are always
processed one after the other, in the order you have defined.
55
QuickHMI - V9 (Gazelle) R2 05.07.2021
For properties that have been assigned a rule, the name of the property is written in bold and the gear icon is
highlighted in blue.
To negate values, use the exclamation mark button to the left of the value when creating a rule. When this button
is clicked, it is highlighted in blue and the value is negated.
56
QuickHMI - V9 (Gazelle) R2 05.07.2021
If you want to output a value directly as text instead of as an element, it is enough to click on the element name.
The respective element symbol then changes to quotation marks. In the example below, a property becomes a text.
So, not the text that is in Button 2 is output, but the text “Page.Button2.Text” itself as a string. This would be useful
if two identifiers in the system have the same name and you don´t want to have the element itself, but the name
at this time.
57
QuickHMI - V9 (Gazelle) R2 05.07.2021
3.10.1.4 Actions
Actions are used to react to certain events. If you have selected a control and switch to the “Actions” tab in the
“Properties”, you will see all the actions available for this control.
To create an action, click the “Actions” tab for the selected control. Then select a click event by clicking on the
lightning bolt icon.
For example, to assign an action to a control that is triggered when the mouse button is clicked, select "Clicked".
In the action editor that opens next, you act in the same way as in the rule editor. It is structured in the same way.
For details, please refer to the chapter "Rules".
However, there is one difference. For the functions “SET_VARIABLE” and “SET_PROPERTY”, you will see the
following icon next to the value selection:
Additional functions can be selected here. Clicking on this icon opens the “Value manipulation” window.
58
QuickHMI - V9 (Gazelle) R2 05.07.2021
The drop-down menu is filled depending on the output value. If the output value is a Boolean, only logical operators
as AND, OR, XOR or NOT are available here.
If the value is not a Boolean, only mathematical functions such as ADD, SUB, MUL, DIV or MOD are available.
These additional functions have no effect on the original value, but only change the value that is written to the
target.
Another difference to the rules is that the processing of the actions is not aborted as soon as a condition of an
action is true. All actions are always executed.
The actions can also be assigned rights via the corresponding tab in the properties window.
How to add and manage rights, you see in the "Manage rights" chapter.
Actions added to a click event can be recognized by their bold name and lightning bolt icon.
59
QuickHMI - V9 (Gazelle) R2 05.07.2021
CHANGE_LANGUAGE
This command changes the language of the HMI. In order to be able to use this, translation texts must be
created in advance for the desired language. The language can then be selected in drop down box below.
How to create translation texts, you will learn in the “Translation texts” chapter.
CLOSE_DIALOG
This command closes a previously opened dialog, which can be selected in the drop-down boxes below.
CLOSE_PROJECT
EXECUTE_DATABASE_QUERY
To learn how to create database queries, see the “Database queries” chapter.
60
QuickHMI - V9 (Gazelle) R2 05.07.2021
LOGOUT
OPEN
This command can open a previously created view (using View Manager) or a dialog when the action is
triggered. These can be selected in the drop-down boxes below.
How to create views with the View Manager is shown in the "Adding views" chapter.
PLAY_AUDIO
You can also include audio files in QuickHMI and play these during runtime. In the down box below, you
can choose between previously included audio files.
How to integrate audio files (but also image files) in QuickHMI, you can see in the "Integrating and using
media resources" chapter.
SCRIPT
This command executes a previously defined JavaScript function as soon as the action is executed. In the
drop-down box below, you can select a previously defined function.
Everything about JavaScript and HTML can be found in the "JavaScript & HTML" chapter.
SEND_MAIL
All about automatically generated e-mails in QuickHMI, you will learn in the chapter “E-mail function”.
SET_VARIABLE
This command assigns a new value to a variable. Which value is assigned to which variable, can be set in
the drop down boxes below.
61
QuickHMI - V9 (Gazelle) R2 05.07.2021
SET_POINTER
This command assigns a new target variable to a pointer. Which variable is assigned to which pointer, can
be set in the drop down boxes below.
SET_PROPERTY
This command assigns a new value to a property of a component. Which value is assigned to which property
can be set in the drop down boxes below.
62
QuickHMI - V9 (Gazelle) R2 05.07.2021
You can drag a created variable to the editor workspace by Drag&Drop. This is a new feature in QuickHMI and
allows you to work with variables more easily.
By dragging the variable to the editor workspace, automatically creates a textbox control element which is already
linked to the selected variable in the properties.
63
QuickHMI - V9 (Gazelle) R2 05.07.2021
If you drag and drop with the right mouse button, several types of control elements are offered, which can be linked
to the variable. In this example, an LED has been selected as the control element.
Once a control element type is selected, it is the new standard for a Drag&Drop with the left mouse button. Until
this is changed again, a Drag&Drop of a variable is linked to an LED.
64
QuickHMI - V9 (Gazelle) R2 05.07.2021
In the QuickHMI Editor, you have the option of aligning several controls at the same time. To align controls, select
all the elements you want to align and use the arrangement buttons under "Edit" / “Arrangement”.
65
QuickHMI - V9 (Gazelle) R2 05.07.2021
Via the arrangement buttons now you can align your controls either left-justified, right-justified or centered. Either
vertically or horizontally. In this example, the controls are vertically aligned with each other, so the top 3
arrangement buttons (for vertical alignment) are relevant.
66
QuickHMI - V9 (Gazelle) R2 05.07.2021
With the QuickHMI PlugIn Manager, as well as having access to the elements already in the editor, you can add
additional control elements.
Now you can select the "Available" extensions by clicking. Selected extensions are marked in blue. Once you are
satisfied with the selection, select the green arrow for "add".
67
QuickHMI - V9 (Gazelle) R2 05.07.2021
The selected extensions have been added and the control elements which contained in them are available. If you
want to remove selected control elements, select them in the "Installed" section and click the red arrow for
"remove".
Information:
It is recommended that you do not enable all extensions at once, which can significantly increase the load
times of the editor.
68
QuickHMI - V9 (Gazelle) R2 05.07.2021
In addition to the large selection of integrated controls, you have the option to create your own controls too. After
this you can define properties and actions for the new controls. So, you are completely independent in your project
visualization.
In the following chapters you will learn everything about the creating your own control svg elements.
SVG (Scalable Vector Graphics) are special vector-based drawings that can be created even in a simple text editor
(with a little skill). But there are also some free or inexpensive tools, that make your job easier.
SVG's offers the advantage over "normal" pixel graphics, that they can be scaled to any size. So, you can zoom in as
far as you want in such a graphic, without it being pixelated. In addition, SVG´s offer the possibility to address and
edit individual parts of the graphic. (If these have been developed accordingly.)
Here's an example of what such an SVG can look like. Above, the source code of the SVG, and below the
representation, as you can expect in the editor, viewer or browser:
The picture shows the three parts (1 to 3) of the SVG in a color matching the highlighting in the source code above.
3
3
3
2 3
Coloring to explain the different parts within
the SVG.
1
69
QuickHMI - V9 (Gazelle) R2 05.07.2021
All parts of the graphic that will later be controlled by properties are therefore contain as individual elements in the
SVG. This is important because otherwise, for example, the arm of the barrier wouldn´t rotate separately from the
rest of the graphic. Or the color of the arm couldn´t be changed separately to the color of the post.
For further explanation of the individual elements of an SVG graphic, you can visit the following external website:
* https://www.w3schools.com/graphics/svg_intro.asp
This basic knowledge is necessary if SVG´s are to be created without the help of an appropriate editor.
But even without this basic knowledge it is possible to easily create SVG´s. For example, with tools like “Boxy SVG”:
* https://boxy-svg.com/ ---> this is a cheap tool for developing SVG´s.
QuickHMI doesn´t support a DTD for XML. If you receive an error message related to DTD when saving / importing
an SVG, please remove the reference to the DTD document. (Usually at the beginning of the XML file)
For more information about DTD, visit the following external website:
* https://www.w3schools.com/xml/xml_dtd.asp
70
QuickHMI - V9 (Gazelle) R2 05.07.2021
ViewBox
The ViewBox defines an internal coordinate system for the SVG. Without a defined ViewBox, all measurements
within the SVG are understood to be absolute pixels:
<svg style="height:100vh;width:100vw;">
<qhmi>
<!-- QHMI features and actions here -->
</qhmi>
<g>
<rect width="200" height="100" fill="#8AC5E1" />
</g>
</svg>
The red frame (300px x 300px) represents the total size of the SVG. As you can see in the picture, the rectangle
takes up only a part (200px x 100px) of the total size.
To get a rectangle that adapts to the size of the control element, a ViewBox must be defined to translate the
absolute size (300px x 300px) to an internal coordinate system.
71
QuickHMI - V9 (Gazelle) R2 05.07.2021
In principle the red frame now has 2 sizes. On the outside it has the dimensions of 300px x 300px, which it takes
both in the editor, as well as at runtime. Inside, the frame for the SVG has a size of 200 x 100 units defined by the
ViewBox.
Now you would think that a rectangle of 200 x 100 units, completely fills a frame of 200 x 100 units. In the example
above, this is not the case.
Why? The ViewBox, in its default setting, tries to preserve the aspect ratio of the elements in it. If this behavior is
not desired, this can be changed by another attribute "preserveAspectRatio":
72
QuickHMI - V9 (Gazelle) R2 05.07.2021
These are the basics of ViewBox. For further understanding, you can learn more about this topic at the following
website:
* https://css-tricks.com/scale-svg/
Create easily your own custom controls with the QuickHMI Editor. How to do this you will learn in the following
chapters.
73
QuickHMI - V9 (Gazelle) R2 05.07.2021
To create a new SVG control, click on "SVG controls" in the Project explorer.
It opens the „SVG Control Manager“, which is like the HTML Manager. With the plus icon you have the option to
create a new SVG.
Then determine the name of your new SVG and continue with "OK".
74
QuickHMI - V9 (Gazelle) R2 05.07.2021
An empty SVG is created for which properties, actions and contents can be defined via syntax. This happens in the
"SVG" area of the "SVG Control Manager". QuickHMI shows you which code lines are responsible for this.
How you define actions and properties you see in the “Add actions and properties” chapter.
75
QuickHMI - V9 (Gazelle) R2 05.07.2021
The SVG can now be defined via syntax. All changes are applied in real time and are visible in the "Preview" area.
Here the control element is displayed as an image. The “Detected properties” section lists all the properties and
actions that you have defined for the SVG.
Information:
The following code line causes the element in the editor to adapt to the desired scaling range. Otherwise, it
may cause elements to be cropped graphically.
76
QuickHMI - V9 (Gazelle) R2 05.07.2021
In addition, you can specify which section of the "SVG Control Manager" should be highlighted. Use the small frame
icon in the top corner of each section.
77
QuickHMI - V9 (Gazelle) R2 05.07.2021
To finally create the SVG control, click on the disk button in the toolbar of the SVG Control Manager. With the undo
button to the right, you can undo previously made entries and changes.
The created SVG control appears under "SVG" with the other controls. With these SVG controls you can interact
like all the other controls.
How to use SVG controls and standard controls, you see in the “Using the control elements” chapter.
78
QuickHMI - V9 (Gazelle) R2 05.07.2021
To export a created control, simply click the export button within the toolbar. Then select the file path and export
the SVG. This will be exported under the same name as created in the "SVG Control Manager".
To import an existing control, click on the import button. Then select your desired SVG and confirm. This will be
loaded into the "SVG Control Manager" and can be edited.
79
QuickHMI - V9 (Gazelle) R2 05.07.2021
Actions and properties are defined directly in the SVG. There must be a qhmi element at any point within the SVG.
This element can contain several property or action elements that define individual properties and actions.
<svg>
<qhmi>
<action … />
<proprety … >…</property>
<proprety … >…</property>
</qhmi>
Like properties, actions are also defined directly in the SVG. For these to be interpreted correctly by QuickHMI, the
syntax explained here must be adhered to.
This diagram illustrates the general syntax of all actions. Square brackets behind attributes/elements indicate how
often an element or attribute must occur. If no quantity is specified, the element/attribute must exist exactly once.
<action
name
elements
triggers >
80
QuickHMI - V9 (Gazelle) R2 05.07.2021
Element: Action
An action element can be present any number of times in the qhmi element.
This example action is listed in the editor named OnPaletteClicked and triggered when you click (click) on an
element with the class palette inside the SVG.
All actions have the same structure and differ only in the values of the three attributes name, triggers and
elements.
The name attribute determines under which name this action is displayed in the editor. The example of the action
from above would look like this in the editor:
Specifies one or more elements within this SVG which trigger this action. The assignment is done via class names.
So, in this example Within the SVG, there must be at least one element with the class palette.
Specifies one or more events (in example. “click“ or “mousedown”) that should trigger this action. JavaScript events
can be specified here with spaces separated. A list of JavaScript events, you can find within the following website:
* https://www.w3schools.com/jsref/dom_obj_event.asp
* | We have no influence on the content of external websites
81
QuickHMI - V9 (Gazelle) R2 05.07.2021
The property syntax is more extensive than the actions because of the wide variety of different property
requirements.
This diagram illustrates the general syntax of all properties. Square brackets behind attributes or elements indicate
how often an element/attribute must occur. If no quantity is specified, the element/attribute must exist exactly
once.
<property
name
datatype
defaultvalue >
<target
type
element
selector
template >
<linearmap
inmin
inmax
outmin
outmax
precision />
<condition
eq
neq
gt
gte
lt
lte
output />
</target>
</property>
82
QuickHMI - V9 (Gazelle) R2 05.07.2021
Element: Property
Like the action element, the property element can appear any often.
So, defines a property called BoomColor. This has the data type Color, which ensures that in the editor a color picker
for this property is available. If no other value has been set, this property is # FF9523.
All properties have the same 3 mandatory attributes name, datatype and defaultvalue. The content of the
properties (shown above by ...) differs from property to property.
The attribute name identifies the property in the editor. The name is displayed in the lower right corner of the
“Properties” window:
The defaultvalue attribute specifies the default value of this property. This value initializes the control when it
loads for the first time.
83
QuickHMI - V9 (Gazelle) R2 05.07.2021
Element: Target
The target element, which must occur at least once within a property, specifies a specific section of the SVG, which
should be changed with this property. If several parts of a SVG are to be changed, then simply several target
elements can be used in parallel.
This example describes that by changing this property (BoomColor) changes all elements with the class name
boombg. More precisely, the fill attribute is changed for all these elements.
Since neither a template, linearmap nor condition is defined for this target element, the input value is written
unchanged to the fill attribute.
The element attribute refers to one or more elements within this SVG. This reference works by class name. In the
above example, SVG must have an element with the class name boombg. Otherwise, the editor will issue an error
message.
The type attribute specifies what is to be changed within the per element attribute selected element. There are 3
possible values for this attribute:
Attribute
Style
Content
So, it can be controlled whether with this target a certain attribute, a certain style or the content of the element
should be changed. In the chase that an attribute or style is to be changed, a third attribute (the selector attribute)
must be specified which determines the specific attribute or style.
The selector attribute is only used if as type selected is either Attribute or Style. In these cases it is still necessary
to define which attribute or which style should be changed.
84
QuickHMI - V9 (Gazelle) R2 05.07.2021
The template attribute can be used to further edit the value before it is written to an attribute, style, or content.
In the example above, this attribute is not used because the value should be given unchanged to the attribute.
The expression {value} is a placeholder, which is replaced with the received value. So, in the example above, the
value 90 in the above example will rotate (90 25,60). This corresponds to a rotation of 90 ° about the point 25.60.
Element: Linearmap
The linearmap element is used to linearly translate a value from one scale to another.
As an explanation here's an example, the slightly more complex property Level of our example SVG control RGB,
which you can find in the "Examples" chapter of this documentation:
<linearmap
inmin="0"
inmax="100"
outmin="300"
outmax="-400"
precision="0" />
The input value here is expected to be 0 to 100. This value should be translated linearly to an output value in the
range of 300 to -400. An input value of 0 results in an output value of 300 and an input value of 100 results in an
output value of -400.
Information:
85
QuickHMI - V9 (Gazelle) R2 05.07.2021
Specifies the number of decimal places to which the result of the translation is rounded. This attribute is optional.
If omitted, the result will not be rounded.
Element: Condition
condition elements are used to write a specific value (usually deviating from the input value) to the target
depending on the input value.
This condition causes the value rgb(246, 0, 0) to be written to the target if the input value is True instead of the
input value.
However, this would mean that nothing is done when an input value of False because the condition eq="True" is
not fulfilled. For this case, there is the possibility of hanging any number of condition elements together:
86
QuickHMI - V9 (Gazelle) R2 05.07.2021
So, the problem would be solved and all possible input values for this property (These are only True and False since
this is a property of the Boolean type) are covered. However, the following example would have the same result:
Because a condition element doesn´t need a single consumption operator. In that case, this condition acts as an
else case and defines the value that is written if no previously tested condition was met.
A condition element without any attribute also serves as an else case. Since no output is defined here, the input
value remains unchanged.
All conditions are processed from top to bottom. Once a condition is met, the following conditions will not be
checked.
Thus, this example would result in always writing rgb(170, 170, 170). Even if the input value is True:
Information:
All condition elements are only checked after applying a possibly existing linearmap.
87
QuickHMI - V9 (Gazelle) R2 05.07.2021
There are 6 attributes for the condition element that are used to check the input value.
eq (=)
neq (!=)
lt (<)
lte (<=)
gt (>)
gte (>=)
Since several of these attributes can be used at the same time, contradictions can occur. Such contradictions are
not displayed as errors but cause this condition to never be executed.
Defines which value should be written when the condition applies. If no output is specified, the input value is
adopted unchanged.
3.10.3.4 Constants
String
Boolean
Color
Single
Double
Int8
Int16
Int32
Int64
88
QuickHMI - V9 (Gazelle) R2 05.07.2021
Attribute
Changes the value of an attribute of the element.
Style
Changes the value of the style of the element.
Content
Changes the content of the element.
eq
=
neq
!=
lt
<
lte
<=
gt
>
gte
>=
89
QuickHMI - V9 (Gazelle) R2 05.07.2021
If you use classes or ID´s, either to specify styles or to link to other parts of the SVG within the SVG, problems can
occur if an SVG control is used multiple times in the project.
The problem arises because the SVG content is loaded multiple times in the browser/viewer when using multiple
controls, resulting in multiple definitions of the same class or ID.
To prevent this, you can add the prefix _elementid_ to class and ID names. This prefix is automatically replaced at
runtime by the unique ID of each control. This results in unique classes and ID names for each individual control.
<g>
<defs>
<radialGradient id="_elementid_c1" cx="0.5" cy="0.5" r="0.5">
<stop offset="0" stop-color="#F7F7F7"></stop>
<stop offset=".5" stop-color="#C0C0C0"></stop>
<stop offset="1" stop-color="#898989"></stop>
</radialGradient>
<linearGradient id="_elementid_c2" x1="0" y1="0.5" x2="1.2" y2="0.6">
<stop offset="0" stop-color="#F7F7F7"></stop>
<stop offset=".5" stop-color="#C0C0C0"></stop>
<stop offset="1" stop-color="#898989"></stop>
</linearGradient>
<linearGradient id="_elementid_c3" x1="0" y1="0.5" x2="1.2" y2="0.6">
<stop offset="0" stop-color="#FF0000"></stop>
<stop offset=".3" stop-color="#F2F2F2"></stop>
<stop offset=".4" stop-color="#FFFFFF"></stop>
</linearGradient>
</defs>
90
QuickHMI - V9 (Gazelle) R2 05.07.2021
Properties Actions
Color
None
Set the color of the barrier.
Open
Sets whether the barrier is open or closed.
Barrier code:
91
QuickHMI - V9 (Gazelle) R2 05.07.2021
Properties Actions
AccentColor OnPaletteClicked
Sets the color of various SVG elements. Triggered when the palette is clicked.
RBGName
Sets the name of the RBG that will be displayed above
the graphic.
VerticalMovement
Sets the vertical speed. Depending on the value (less
than 0, 0, greater than 0), the color of the motor and
the direction of an arrow are adjusted.
HasPalette
Sets if a palette is on the RBG.
PaletteStuck
Sets if the palette is wedged. This condition is
represented by a red frame and a rotation of the
palette.
Level
Sets the height of the slide. To do this, translate a
percentage value to another value space to position
the carriage and cables in the graphic
92
QuickHMI - V9 (Gazelle) R2 05.07.2021
93
QuickHMI - V9 (Gazelle) R2 05.07.2021
In this example, a switch and an LED have been added to the page. These control elements appear in the “Layers”
section.
Click the right mouse button in the "Layers" section. So, you can create a new folder.
Then, name the folder you want to create and continue with “OK”.
94
QuickHMI - V9 (Gazelle) R2 05.07.2021
Now 2 more control elements and a new folder "Project 2" have been added.
95
QuickHMI - V9 (Gazelle) R2 05.07.2021
Now you have the option to move the control elements to desired folders. You can do this via drag & drop. In this
example, "BreakerButton1" and "LEDTop1" were moved to the "Project 1" folder and "BreakerButton2" and
"LEDTop2" were moved to the "Project 2" folder.
Now you can hide individual items as well as the complete contents of folders. This is done via the eye icon next to
the elements and folders. You can activate or deactivate it. You can also access these functions via the right mouse
button by right-clicking on an item or folder.
In this example the folder "Project 2" has been hidden and with it all control elements contained within it as well
as individually the element "BreakerButton1".
96
QuickHMI - V9 (Gazelle) R2 05.07.2021
3.12 Communication
This chapter discusses the communication between and between database connections, data sources, and
variables. All of these can be set up, edited, or deleted.
International users can also create and manage translation texts here.
In the following chapters, you will learn all about communication between database connections, data sources,
and variables.
A variety of types of database connections can be set up here. For instance, Oracle and MSSQL databases. Data-
base connections that have been set up can be modified or deleted at any time.
To create a database connection, click "Connections" under "Database" in the Project explorer.
Name the data source. Depending on the database type, select the correct JDBC string.
97
QuickHMI - V9 (Gazelle) R2 05.07.2021
Also listed are the installed JDBC drivers whose folders you can view with "Open driver directory".
Other new feature in QuickHMI is the possibility to integrate JDBC-driver for SQL Databases.
98
QuickHMI - V9 (Gazelle) R2 05.07.2021
QuickHMI contains the following JDBC drivers whose strings must be configured as follows:
MariaDB (MySQL)
jdbc:mariadb://<host>:<port>/DB?user=<MyUser>&password=<MyPassword>
Oracle
jdbc:oracle:thin:<MyUser>/<MyPassword>@<host>:<port>:< MyService>
SQL Server
jdbc:sqlserver://<host>:<port>;databaseName=<MyDBName>;user=<MyUser>;password=<MyPassword>
Firebird
jdbc:firebirdsql:<host>/<port>:<PfadInklusiveDatenbankName>?encoding=UTF8&userName=<MyUser>&pass-
word=<MyPassword
PostgresSQL
jdbc:postgresql://<host>/test?user=<MyUser>&password=<MyPassword>&ssl=true
Sqlite
jdbc:sqlite:<PfadInklusiveDatenbankName>
Information:
If you create a new database connection in the QuickHMI Editor, you can open the driver directory to access
the JDBC drivers are installed in QuickHMI.
99
QuickHMI - V9 (Gazelle) R2 05.07.2021
You can create various data sources in QuickHMI. The following data source types are available for selection:
S7
OPC UA
TWINCAT *1)
KNX
DataBase
Filesystem
MQTT
Allen-Bradley
*1) TWINCAT data sources are not executable under Linux. If these are to be executable under Linux, the use of OPC UA data
sources is recommended.
To add data sources, click in the Project explorer in the Communication section on “Data sources”.
How to create different types of data sources, you will learn in the following chapters.
100
QuickHMI - V9 (Gazelle) R2 05.07.2021
After selecting “Data sources” in the Project explorer, click on the button for "Add data source" button for creating
the S7 data source.
The data source input mask opens, in which you can select the S7 data source as "Type" as a first step. However, if
you first assign a name to the data source and if this contains the word "s7", then "S7_Compatible" is already
preselected as the data source type. (This works with all data source types)
After this, the data source-specific settings adapt automatically to the S7 data source.
Information:
101
QuickHMI - V9 (Gazelle) R2 05.07.2021
Now you have the following settings options, for creating the data source:
Active
Via checkbox you can activate or deactivate the data source. Deactivating a data source is useful to avoid
that data sources that are not accessible constantly try to reconnect, cause error messages and thus
unnecessarily fill up the log. All controls that then want to use this data source will get a one-time message
that the data source is disabled. During the startup process (loading window), a corresponding icon shows
the deactivations of the data source. By default, the data source is always activated.
Name
Name the data source.
Type
You have the possibility to create different data sources in QuickHMI.
Simulation
If you do not have access to the data source, you have the option of having it simulated. To do this, select
the "True" property under "Simulation". In this case, when starting the runtime, you will be able to
manually fill the variables you created later with values to check the correctness of your functionalities.
(Created data sources can also be released for simulation by activating them in the simulation
configurations for runtime mode.)
Text encoding
Here you can select the text encoding selected in the S7. This is set to "Western European (Windows)" by
default and therefore does not need to be customized.
102
QuickHMI - V9 (Gazelle) R2 05.07.2021
S7 Specific:
Model
Select which S7 model you want to connect to.
Connection type
Here you can decide between the connection type "TCP" and "MPI". Whether both or only one of the
connection types is available depends on the selected "model".
Connection details
Here you assign the connection information that is relevant for the desired S7.
Enter the "IP address", "Rack" and "Slot".
The default value for „Rack“ is „0“.
The default value for „Slot“ is „0“
Read timeout
The "Read timeout", which can also be set, always involves milliseconds. By default, this stands on 200
milliseconds. After this time, the read attempt would be aborted if the variable could not be read within
these 200 milliseconds. A to slow controller responses, connection errors to the controller, or non-existence
of the variable, may be grounds for a read abort. The "Read timeout" thus indicates, how long the variable
is searched until the read attempt is aborted.
Information:
200 milliseconds until the "Read timeout" is a recommended value. Only if you know that more is
needed, we recommend changing the value.
Read optimization
Here you can choose between different optimization methods:
NONE
No read optimization, all requests are not written one after the other, stable but slow. Only
recommended for troubleshooting.
CROSS_AREAS
Read requests are merged across areas. Advantage: Fragmented areas (e.g., data across multiple
data blocks) can be read and written simultaneously.
COMBINE_AREAS
Read requests from identical areas are combined. Advantage: Fast and high-performance access to
data of the same areas (for example, data in the same data block).
AUTO
Selects the best optimization method. Only the minimum required PLC read access are carried out.
103
QuickHMI - V9 (Gazelle) R2 05.07.2021
After entering the information relevant for the connection, click on "Add". And after editing an already created
data source, click on "Save".
The S7 data source is created and subsequently displayed in the data source overview.
104
QuickHMI - V9 (Gazelle) R2 05.07.2021
Created data sources can be edited or deleted. You do this via the corresponding buttons. You also have the option
of viewing all internal data sources. This works by activating the checkbox "Show internal data sources".
You can find out how to add variables for the S7 data source in the “Adding S7 variables” chapter.
This chapter is intended to provide you with information about the functionalities provided to connect to a Logo!
0BA7 or 0BA8 controller. This is not a complete documentation, but a guide to help you getting started.
All information is supplied without any liability. All rights reserved and subject to change. The contents of this
document are protected under international copyright laws. Without prior written consent from the copyright
holder, no part of this documentation may be reproduced by means of photocopying, microfilm or other processes,
or transcribed or translated into another language or computer language in any form.
Information:
All product names or other names or brands referred to in this documentation are the trademarks or
registered trademarks of their respective owners and are the property of those copyright owners. There is
no connection between any of the mentioned trademarks or trademark owner and the Fa. Indi.An Systems
GmbH. Any mention of brands serves purely as an indication to the intended purpose.
105
QuickHMI - V9 (Gazelle) R2 05.07.2021
With QuickHMI it’s possible to access input, output, and flags as well as accessible data blocks. The access of Logo!
controllers is deactivated by default. You need to perform the following steps to allow the access.
1. Choose Extras -> Ethernet connection and create a new connection by right clicking:
106
QuickHMI - V9 (Gazelle) R2 05.07.2021
Information:
When using a Logo! 0BA7 you can only establish one connection at a time.
107
QuickHMI - V9 (Gazelle) R2 05.07.2021
When using a Logo! 0BA8 please note that the controller will close the connection after 10 seconds if no data was
requested from the PLC. The countdown resets after each request. We recommend to not open the connection
manually, but letting the driver manage the connection via auto-connect.
The memory organization of Logo! controllers is significantly different to that of other Siemens controllers. The
main difference is that all variable ranges are within the VM memory. The VM memory can be accessed with
QuickHMI via DB1.
The following table shows the memory ranges of a Logo! 0BA7 controller. VM memory can be accessed with
QuickHMI by reading or writing to data block 1 (DB1). Furthermore, you can access memory ranges directly via the
QuickHMI library and data types.
108
QuickHMI - V9 (Gazelle) R2 05.07.2021
The following table shows the memory ranges of a Logo! 0BA8 controller. In contrast to the Logo! 0BA7 controller
memory ranges have been expanded.
VM memory can be accessed with QuickHMI by reading or writing to data block 1 (DB1). Furthermore, you can
access memory ranges directly via the QuickHMI library and data types.
With PLCcom it’s possible to access input, output, and flags as well as accessible data blocks. The access of S7-1200
and S7-1500 controller is deactivated by default. You need to perform the following steps to allow the access.
1. Allow general access. To do so, activate the option “Connection mechanism - Allow access PUT/GET
communication from remote partner” in the protection settings.
2. Enable access to you DBs. For this you have to deactivate the “optimized access” in the DB properties.
109
QuickHMI - V9 (Gazelle) R2 05.07.2021
After selecting “Data sources” in the Project explorer, click on the button for "Add data source" button for creating
the OPC data source.
The data source input mask opens, in which you can select the OPC data source as "Type" as a first step. However,
if you first assign a name to the data source and if this contains the word "opc", then "OPC" is already preselected
as the data source type. (This works with all data source types)
After this, the data source-specific settings adapt automatically to the OPC data source.
110
QuickHMI - V9 (Gazelle) R2 05.07.2021
Now you have the following settings options, for creating the data source:
Active
Via checkbox you can activate or deactivate the data source. Deactivating a data source is useful to avoid
that data sources that are not accessible constantly try to reconnect, cause error messages and thus
unnecessarily fill up the log. All controls that then want to use this data source will get a one-time message
that the data source is disabled. During the startup process (loading window), a corresponding icon shows
the deactivations of the data source. By default, the data source is always activated.
Name
Name the data source.
Type
You have the possibility to create different data sources in QuickHMI.
Simulation
If you do not have access to the data source, you have the option of having it simulated. To do this, select
the "True" property under "Simulation". In this case, when starting the runtime, you will be able to
manually fill the variables you created later with values in order to check the correctness of your
functionalities. (Created data sources can also be released for simulation by activating them in the
simulation configurations for runtime mode.)
111
QuickHMI - V9 (Gazelle) R2 05.07.2021
OPC Specific:
Connection type
Here OPC "UA" is preselected.
Discovery URL
The Discovery URL connects you to the server and provides information about which destination addresses
are available with which settings.
Endpoint URL
The endpoint URL describes the server network address.
Security mode
Various security modes for communication with the server.
You can choose between "None", "Sign" and "Sign & Encrypt".
Authentication
This regulates the possibilities of authentication.
You can choose between "Anonymous", "UserName" and "Certificate".
If the "Connection type" "UA" is selected, the server address can be entered under "Discovery URL". The same will
automatically appear under "Endpoint URL". If you then click on the parenthesis icon, you will see in a separate
window all the endpoints provided by the server with the different security levels.
112
QuickHMI - V9 (Gazelle) R2 05.07.2021
If you select a security level, either via the "Select" button or double-click, the security mode in the main screen
automatically changes to "Sign". Now, under the "Authentication" "UserName", a username can be entered, as
well as a password.
If the authentication "Certificate" is selected, the user will use a certificate to log in. The same applies to the
"SignAndEncrypt" security mode, in which it is also possible to select whether anonym, with user name, or via
certificate is logged on.
After entering the information relevant for the connection, click on "Add". And after editing an already created
data source, click on "Save".
113
QuickHMI - V9 (Gazelle) R2 05.07.2021
The OPC UA data source is created and subsequently displayed in the data source overview.
Created data sources can be edited or deleted. You do this via the corresponding buttons. You also have the option
of viewing all internal data sources. This works by activating the checkbox "Show internal data sources".
Below you can create variables for the OPC UA data source.
You can find out how to add variables for the OPC UA data source in the “Adding OPC UA variables” chapter.
A more detailed explanation of the individual security modes can be found in the “Explanation of the security
modes of the OPC data sources” chapter.
114
QuickHMI - V9 (Gazelle) R2 05.07.2021
The main screen provides 3 different security modes for communicating with the server.
115
QuickHMI - V9 (Gazelle) R2 05.07.2021
After selecting “Data sources” in the Project explorer, click on the button for "Add data source" button for creating
the TWINCAT data source.
The data source input mask opens, in which you can select the TWINCAT data source as "Type" as a first step.
However, if you first assign a name to the data source and if this contains the word "twin", then "TWINCAT" is
already preselected as the data source type. (This works with all data source types)
After this, the data source-specific settings adapt automatically to the TWINCAT data source.
116
QuickHMI - V9 (Gazelle) R2 05.07.2021
Now you have the following settings options, for creating the data source:
Active
Via checkbox you can activate or deactivate the data source. Deactivating a data source is useful to avoid
that data sources that are not accessible constantly try to reconnect, cause error messages and thus
unnecessarily fill up the log. All controls that then want to use this data source will get a one-time message
that the data source is disabled. During the startup process (loading window), a corresponding icon shows
the deactivations of the data source. By default, the data source is always activated.
Name
Name the data source.
Type
You have the possibility to create different data sources in QuickHMI.
Simulation
If you do not have access to the data source, you have the option of having it simulated. To do this, select
the "True" property under "Simulation". In this case, when starting the runtime, you will be able to
manually fill the variables you created later with values to check the correctness of your functionalities.
(Created data sources can also be released for simulation by activating them in the simulation
configurations for runtime mode.)
TWINCAT Specific:
Connection type:
Here you can choose between "TWINCAT2" and "TWINCAT3". This is only differentiated by the "Port" to
be used. (TWINCAT2 = Port 801 / TWINCAT3 = Port 851)
AMS address:
The AMS address is usually the address of the server or the address of the TWINCAT device.
Port:
The port depends on the "Connection type".
117
QuickHMI - V9 (Gazelle) R2 05.07.2021
After entering the information relevant for the connection, click on "Add". And after editing an already created
data source, click on "Save".
The TWINCAT data source is created and subsequently displayed in the data source overview.
Created data sources can be edited or deleted. You do this via the corresponding buttons. You also have the option
of viewing all internal data sources. This works by activating the checkbox "Show internal data sources".
Below you can create variables for the TWINCAT data source.
You can find out how to add variables for the TWINCAT data source in the “Adding TWINCAT variables” chapter.
118
QuickHMI - V9 (Gazelle) R2 05.07.2021
After selecting “Data sources” in the Project explorer, click on the button for "Add data source" button for creating
the MODBUS data source.
The data source input mask opens, in which you can select the MODBUS data source as "Type" as a first step.
However, if you first assign a name to the data source and if this contains the word "modbus", then "MODBUS" is
already preselected as the data source type. (This works with all data source types)
After this, the data source-specific settings adapt automatically to the MODBUS data source.
119
QuickHMI - V9 (Gazelle) R2 05.07.2021
Now you have the following settings options, for creating the data source:
Active
Via checkbox you can activate or deactivate the data source. Deactivating a data source is useful to avoid
that data sources that are not accessible constantly try to reconnect, cause error messages and thus
unnecessarily fill up the log. All controls that then want to use this data source will get a one-time message
that the data source is disabled. During the startup process (loading window), a corresponding icon shows
the deactivations of the data source. By default, the data source is always activated.
Name
Name the data source.
Type
You have the possibility to create different data sources in QuickHMI.
Simulation
If you do not have access to the data source, you have the option of having it simulated. To do this, select
the "True" property under "Simulation". In this case, when starting the runtime, you will be able to
manually fill the variables you created later with values to check the correctness of your functionalities.
(Created data sources can also be released for simulation by activating them in the simulation
configurations for runtime mode.)
Text encoding
Here you can select the text encoding selected in the S7. This is set to "Western European (Windows)" by
default and therefore does not need to be customized.
MODBUS Specific:
Role:
From the MODBUS data source there are 2 variations. The MODBUS Master and the MODBUS Slave. The
master is the client, and the slave is the server. The master gives commands to the slave.
120
QuickHMI - V9 (Gazelle) R2 05.07.2021
Connection type
TCP
Connection via a network in direct communication.
RTU
Runs through a Com port and the data is transmitted in RTU format.
All settings must be taken from the counterpart specifications here.
ASCII
Runs on a Com port and the data is transmitted in Ascii format.
All settings must be taken from the counterpart specifications here.
UDP
Network connection without guarantee that it will receive.
Connection details
Here, both the IP address to the server (slave) are specified, as well as the port of the slave.
Advanced settings
Address offset
The entered value is added here as an offset to the base address.
Byte order
Also stored in the slave and ensures data exchange. Here you can set the order in which the bytes
are transmitted. Either in the normal order (AB_CD_BigEndian), or backwards
(DC_BA_LittleEndian).
Slave ID
Enter the slave ID set at the slave.
Registermode
Sets the register size set on the slave.
121
QuickHMI - V9 (Gazelle) R2 05.07.2021
PDU Limitation
Sets the register size set on the slave.
After entering the information relevant for the connection, click on "Add". And after editing an already created
data source, click on "Save".
The MODBUS Master data source is created and subsequently displayed in the data source overview.
Created data sources can be edited or deleted. You do this via the corresponding buttons. You also have the option
of viewing all internal data sources. This works by activating the checkbox "Show internal data sources".
Below you can create variables for the MODBUS Master data source.
You can find out how to add variables for the MODBUS Master data source in the “Adding MODBUS Master
variables” chapter.
122
QuickHMI - V9 (Gazelle) R2 05.07.2021
Connection type
TCPIP
Connection via a network in direct communication.
RTU
Runs through a Com port and the data is transmitted in RTU format.
All settings must be taken from the counterpart specifications here.
ASCII
Runs on a Com port and the data is transmitted in Ascii format.
All settings must be taken from the counterpart specifications here.
UDP
Network connection without guarantee that it will receive.
Connection details
Port
502 is the default port here.
Advanced settings
Address offset
The entered value is added here as an offset to the base address.
Byte order
Also stored in the slave and ensures data exchange. Here you can set the order in which the bytes
are transmitted. Either in the normal order (AB_CD_BigEndian), or backwards
(DC_BA_LittleEndian).
Slave ID
Enter the slave ID set at the slave.
Registermode
Sets the register size set on the slave.
123
QuickHMI - V9 (Gazelle) R2 05.07.2021
The offset within an array or data structure object is an integer indicating the distance (displacement) between the
beginning of the object and a given element or point, presumably within the same object.
After entering the information relevant for the connection, click on "Add". And after editing an already created
data source, click on "Save".
124
QuickHMI - V9 (Gazelle) R2 05.07.2021
The MODBUS Slave data source is created and subsequently displayed in the data source overview.
Created data sources can be edited or deleted. You do this via the corresponding buttons. You also have the option
of viewing all internal data sources. This works by activating the checkbox "Show internal data sources".
Below you can create variables for the MODBUS Slave data source.
You can find out how to add variables for the MODBUS Slave data source in the “Adding MODBUS Slave
variables” chapter.
125
QuickHMI - V9 (Gazelle) R2 05.07.2021
This option allows the merging of multiple data sources into one on server side.
This is most important for RTU and ASCII MODBUS data sources which are accessed via the same COM-Port but
with different Slave-IDs. Since every COM-Port can only be opened once, those data source have to be merged into
a single data source. This merging has no effect on the functionality of those data source. They will operate like
they are single entities.
The option „Merge datasources“ is only available for TCP/IP and UDP data source. That is because only for those
data sources this procedure is optional. This options effects all TCP/IP and UDP data sources in the project that have
the exact same settings except for the Slave-ID.
With this option enabled all data sources with identical options (except for the Slave-ID) will be merged to a single
entity. This way only one connection is established to the data source. If the option is disabled, all data sources will
establish their own connection.
126
QuickHMI - V9 (Gazelle) R2 05.07.2021
After selecting “Data sources” in the Project explorer, click on the button for "Add data source" button for creating
the KNX data source.
The data source input mask opens, in which you can select the KNX data source as "Type" as a first step. However,
if you first assign a name to the data source and if this contains the word "knx", then "KNX" is already preselected
as the data source type. (This works with all data source types)
After this, the data source-specific settings adapt automatically to the KNX data source.
127
QuickHMI - V9 (Gazelle) R2 05.07.2021
Now you have the following settings options, for creating the data source:
Active
Via checkbox you can activate or deactivate the data source. Deactivating a data source is useful to avoid
that data sources that are not accessible constantly try to reconnect, cause error messages and thus
unnecessarily fill up the log. All controls that then want to use this data source will get a one-time message
that the data source is disabled. During the startup process (loading window), a corresponding icon shows
the deactivations of the data source. By default, the data source is always activated.
Name
Name the data source.
Type
You have the possibility to create different data sources in QuickHMI.
Simulation
If you do not have access to the data source, you have the option of having it simulated. To do this, select
the "True" property under "Simulation". In this case, when starting the runtime, you will be able to
manually fill the variables you created later with values to check the correctness of your functionalities.
(Created data sources can also be released for simulation by activating them in the simulation
configurations for runtime mode.)
KNX Specific
IP adresse:
Here, the IP address is entered from the starting point of the bus.
Port:
Here the port to be used is specified.
128
QuickHMI - V9 (Gazelle) R2 05.07.2021
After entering the information relevant for the connection, click on "Add". And after editing an already created
data source, click on "Save".
The KNX data source is created and subsequently displayed in the data source overview.
Created data sources can be edited or deleted. You do this via the corresponding buttons. You also have the option
of viewing all internal data sources. This works by activating the checkbox "Show internal data sources".
Below you can create variables for the KNX data source.
You can find out how to add variables for the KNX data source in the “Adding KNX variables” chapter.
129
QuickHMI - V9 (Gazelle) R2 05.07.2021
Before you can create a DataBase data source, you must first create a DataBase connection. You can find out how
to create DataBase connections in the "Creating DataBase connections" chapter.
After selecting “Data sources” in the Project explorer, click on the button for "Add data source" button for creating
the DataBase data source.
The data source input mask opens, in which you can select the DataBase data source as "Type" as a first step.
However, if you first assign a name to the data source and if this contains the word " DataBase ", then " DataBase
" is already preselected as the data source type. (This works with all data source types)
After this, the data source-specific settings adapt automatically to the DataBase data source.
130
QuickHMI - V9 (Gazelle) R2 05.07.2021
Now you have the following settings options, for creating the data source:
Active
Via checkbox you can activate or deactivate the data source. Deactivating a data source is useful to avoid
that data sources that are not accessible constantly try to reconnect, cause error messages and thus
unnecessarily fill up the log. All controls that then want to use this data source will get a one-time message
that the data source is disabled. During the startup process (loading window), a corresponding icon shows
the deactivations of the data source. By default, the data source is always activated.
Name
Name the data source.
Type
You have the possibility to create different data sources in QuickHMI.
Simulation
If you do not have access to the data source, you have the option of having it simulated. To do this, select
the "True" property under "Simulation". In this case, when starting the runtime, you will be able to
manually fill the variables you created later with values in order to check the correctness of your
functionalities. (Created data sources can also be released for simulation by activating them in the
simulation configurations for runtime mode.)
DataBase Specific:
Connection
Select the previously created DataBase connection here.
131
QuickHMI - V9 (Gazelle) R2 05.07.2021
After entering the information relevant for the connection, click on "Add". And after editing an already created
data source, click on "Save".
The DataBase data source is created and subsequently displayed in the data source overview.
Created data sources can be edited or deleted. You do this via the corresponding buttons. You also have the option
of viewing all internal data sources. This works by activating the checkbox "Show internal data sources".
Below you can create variables for the DataBase data source.
You can find out how to add variables for the DataBase data source in the “Adding DataBase variables” chapter.
You can find out how to perform external logging for the DataBase data source in the “External logging in the
dataBase” chapter.
132
QuickHMI - V9 (Gazelle) R2 05.07.2021
3.12.2.6.1 What is the intended purpose for the database data source?
You can storage external data to a database table and the QuickHMI system will use this data for visualization.
For example:
You want to show statistic company data on your QuickHMI visualization. You just need the database table
“QHMI_VARIABLES” and update rights on this database table. Transfer your data to this table and connect the data
to your QuickHMI project.
3.12.2.6.2 What are the requirements for the database data source?
To use the QuickHMI database data source you have to have an existing and administered database and a
corresponding JDBC driver.
The database has to be accessible by the QuickHMI processes. The connection must not interrupt by a firewall or
likewise things. The network connection between QuickHMI and database should use the speed of 100Mbit/s.
Information:
QuickHMI do not provide database servers or database licenses. It only gives access possibilities to existing
databases. Requisite database licenses and access licenses must be given by the customer.
Before you can use the QuickHMI database data source you have to create a database object.
Table QHMI_VARIABLES
The connection created in QuickHMI project needs update rights. Are these rights missing data source malfunctions
are possible.
133
QuickHMI - V9 (Gazelle) R2 05.07.2021
Settings
In the Project explorer, click on “Database connection” in the “Communication” section, to create a new database
connection.
How to create a new database connection is described in the "Creating database connections" chapter.
Example:
134
QuickHMI - V9 (Gazelle) R2 05.07.2021
Create a matching data source by clicking on "Data source" in the Project explorer.
You can find out how to create a new data source in the "Creating data sources" section.
Example:
You can relate the variables with control elements on your project and the data will be shown or written.
135
QuickHMI - V9 (Gazelle) R2 05.07.2021
After selecting “Data sources” in the Project explorer, click on the button for "Add data source" button for creating
the File system data source.
The data source input mask opens, in which you can select the File system data source as "Type" as a first step.
However, if you first assign a name to the data source and if this contains the word "file", then "Filesystem" is
already preselected as the data source type. (This works with all data source types)
After this, the data source-specific settings adapt automatically to the File system data source.
136
QuickHMI - V9 (Gazelle) R2 05.07.2021
Now you have the following settings options, for creating the data source:
Active
Via checkbox you can activate or deactivate the data source. Deactivating a data source is useful to avoid
that data sources that are not accessible constantly try to reconnect, cause error messages and thus
unnecessarily fill up the log. All controls that then want to use this data source will get a one-time message
that the data source is disabled. During the startup process (loading window), a corresponding icon shows
the deactivations of the data source. By default, the data source is always activated.
Name
Name the data source.
Type
You have the possibility to create different data sources in QuickHMI.
Simulation
If you do not have access to the data source, you have the option of having it simulated. To do this, select
the "True" property under "Simulation". In this case, when starting the runtime, you will be able to
manually fill the variables you created later with values to check the correctness of your functionalities.
(Created data sources can also be released for simulation by activating them in the simulation
configurations for runtime mode.)
Text encoding
Here you can select the text encoding selected in the S7. This is set to "Western European (Windows)" by
default and therefore does not need to be customized.
Filesystem Specific:
File
Select here via "..." button, an existing file.
Separator
Here you can enter with which separator the contents of the file should be separated. (Also * VariableName
* * Separator * * Value of the variable *) This is freely selectable. The standard separator is the semicolon.
137
QuickHMI - V9 (Gazelle) R2 05.07.2021
After entering the information relevant for the connection, click on "Add". And after editing an already created
data source, click on "Save".
The File system data source is created and subsequently displayed in the data source overview.
138
QuickHMI - V9 (Gazelle) R2 05.07.2021
Created data sources can be edited or deleted. You do this via the corresponding buttons. You also have the option
of viewing all internal data sources. This works by activating the checkbox "Show internal data sources".
Below you can create variables for the File system data source.
You can find out how to add variables for the File system data source in the “Adding File system variables”
chapter.
You can find out how to perform external logging for the File system data source in the “External logging in the
file system” chapter.
Information:
Note that the path to the selected file must be the same on the server. There are no data types in a .csv file
or in your file system data source --> It is always a string. For example, if you create a Boolean, all you need
to know is that it should be a Boolean.
139
QuickHMI - V9 (Gazelle) R2 05.07.2021
3.12.2.7.1 What is the intended purpose for the file system data source?
The .csv-file can be filled and updated by external applications. QuickHMI will then use the variables to display the
desired output in your visualization.
This obviously is one of the simplest forms of a data source. It can be created and used without and additional tools.
Furthermore, there are a lot of tools which are able to export data as .csv-files. These files, if formatted correctly,
can then be used to feed your visualization with data.
3.12.2.7.2 What are the requirements for the file system data source?
In principle every operating system can fulfill the requirements to run a filesystem data source. All you need is a
.csv file in a location on that the QuickHMI Server (Part of the QuickHMI Standalone Runtime) can access.
In the first case, you must make sure that the file is formatted accordingly. QuickHMI expects variable names and
values in a specific format. One variable is expected per line. Name and value must be separated according to the
data source settings (see Making settings).
140
QuickHMI - V9 (Gazelle) R2 05.07.2021
Settings
In the opening window “Create or edit data source”, you can determine the following things:
5 Select a separator which separated the variable name from its value within the file.
1
2
3
4
5
141
QuickHMI - V9 (Gazelle) R2 05.07.2021
After selecting “Data sources” in the Project explorer, click on the button for "Add data source" button for creating
the MQTT data source.
The data source input mask opens, in which you can select the MQTT data source as "Type" as a first step. However,
if you first assign a name to the data source and if this contains the word "mqtt", then "MQTT" is already
preselected as the data source type. (This works with all data source types)
After this, the data source-specific settings adapt automatically to the MQTT data source.
142
QuickHMI - V9 (Gazelle) R2 05.07.2021
Now you have the following settings options, for creating the data source:
Active
Via checkbox you can activate or deactivate the data source. Deactivating a data source is useful to avoid
that data sources that are not accessible constantly try to reconnect, cause error messages and thus
unnecessarily fill up the log. All controls that then want to use this data source will get a one-time message
that the data source is disabled. During the startup process (loading window), a corresponding icon shows
the deactivations of the data source. By default, the data source is always activated.
Name
Name the data source.
Type
You have the possibility to create different data sources in QuickHMI.
Simulation
If you do not have access to the data source, you have the option of having it simulated. To do this, select
the "True" property under "Simulation". In this case, when starting the runtime, you will be able to
manually fill the variables you created later with values to check the correctness of your functionalities.
(Created data sources can also be released for simulation by activating them in the simulation
configurations for runtime mode.)
Text encoding
Here you can select the text encoding selected in the S7. This is set to "Western European (Windows)" by
default and therefore does not need to be customized.
143
QuickHMI - V9 (Gazelle) R2 05.07.2021
MQTT Specific:
Host
Enter here the host (broker) to be used with the corresponding port.
User name
Enter your username
Password
Enter your desired password.
Persistent Session
Here you can activate the persistent session with the checkbox. You can also activate the "Persistent
Session". When using a persistent session, an identifier is exchanged between the QuickHMI Server and
the MQTT broker. This identifier is used to recognize the QuickHMI Server from the MQTT broker if you
temporarily shut down the QuickHMI Server or if a connection is lost. When reconnecting to the broker,
any variable changes that have been missed in the meantime are transferred.
After entering the information relevant for the connection, click on "Add". And after editing an already created
data source, click on "Save".
144
QuickHMI - V9 (Gazelle) R2 05.07.2021
The MQTT data source is created and subsequently displayed in the data source overview.
Created data sources can be edited or deleted. You do this via the corresponding buttons. You also have the option
of viewing all internal data sources. This works by activating the checkbox "Show internal data sources".
Below you can create variables for the MQTT data source.
You can find out how to add variables for the MQTT data source in the “Adding MQTT variables” chapter.
145
QuickHMI - V9 (Gazelle) R2 05.07.2021
After selecting “Data sources” in the Project explorer, click on the button for "Add data source" button for creating
the Allen-Bradley data source.
The data source input mask opens, in which you can select the Allen-Bradley data source as "Type" as a first step.
However, if you first assign a name to the data source and if this contains the word "allen", then "Allen-Bradley" is
already preselected as the data source type. (This works with all data source types)
After this, the data source-specific settings adapt automatically to the Allen-Bradley data source.
146
QuickHMI - V9 (Gazelle) R2 05.07.2021
Now you have the following settings options, for creating the data source:
Active
Via checkbox you can activate or deactivate the data source. Deactivating a data source is useful to avoid
that data sources that are not accessible constantly try to reconnect, cause error messages and thus
unnecessarily fill up the log. All controls that then want to use this data source will get a one-time message
that the data source is disabled. During the startup process (loading window), a corresponding icon shows
the deactivations of the data source. By default, the data source is always activated.
Name
Name the data source.
Type
You have the possibility to create different data sources in QuickHMI.
Simulation
If you do not have access to the data source, you have the option of having it simulated. To do this, select
the "True" property under "Simulation". In this case, when starting the runtime, you will be able to
manually fill the variables you created later with values in order to check the correctness of your
functionalities. (Created data sources can also be released for simulation by activating them in the
simulation configurations for runtime mode.)
Allen-Bradley Specific:
IP adress
Enter the desired destination IP address.
Slot
Enter the slot of the data source.
147
QuickHMI - V9 (Gazelle) R2 05.07.2021
After entering the information relevant for the connection, click on "Add". And after editing an already created
data source, click on "Save".
The Allen-Bradley data source is created and subsequently displayed in the data source overview.
Created data sources can be edited or deleted. You do this via the corresponding buttons. You also have the option
of viewing all internal data sources. This works by activating the checkbox "Show internal data sources".
Below you can create variables for the Allen-Bradley data source.
You can find out how to add variables for the Allen-Bradley data source in the “Adding Allen-Bradley variables”
chapter.
148
QuickHMI - V9 (Gazelle) R2 05.07.2021
After selecting “Data sources” in the Project explorer, click on the button for "Add data source" button for creating
the Webservice data source.
The data source input mask opens, in which you can select the Webservice data source as "Type" as a first step.
However, if you first assign a name to the data source and if this contains the word "webservice", then
"Webservice" is already preselected as the data source type. (This works with all data source types)
After this, the data source-specific settings adapt automatically to the Webservice data source.
149
QuickHMI - V9 (Gazelle) R2 05.07.2021
Now you have the following settings options, for creating the data source:
Active
Via checkbox you can activate or deactivate the data source. Deactivating a data source is useful to avoid
that data sources that are not accessible constantly try to reconnect, cause error messages and thus
unnecessarily fill up the log. All controls that then want to use this data source will get a one-time message
that the data source is disabled. During the startup process (loading window), a corresponding icon shows
the deactivations of the data source. By default, the data source is always activated.
Name
Name the data source.
Type
You have the possibility to create different data sources in QuickHMI.
Simulation
If you do not have access to the data source, you have the option of having it simulated. To do this, select
the "True" property under "Simulation". In this case, when starting the runtime, you will be able to
manually fill the variables you created later with values in order to check the correctness of your
functionalities. (Created data sources can also be released for simulation by activating them in the
simulation configurations for runtime mode.)
150
QuickHMI - V9 (Gazelle) R2 05.07.2021
Webservice Specific:
The Webservice data source is used to exchange information with a web service. Data must be transferred in
“JSON”, “XML” or “URLEncoded” format.
- READ -
Request Method
Some web services expect certain request methods for reading data. Here you determine the request
method for reading the data source. The request methods “GET”, and “POST” are available here.
URL
The URL that will be called to read data from the web service.
The use of placeholders (see below) is allowed.
Parameters
Additional parameters to be transferred to the web service together with the read request. Supported
formats here are also “JSON “, “XML”, and “URLEncoded”. The use of placeholders (see below) is allowed.
To enlarge the input field and thus write better, use the glass icon next to the text field.
- WRITE -
Request Method
Some web services expect certain request methods for writing data. Here you determine the request
method for writing the data source. The request methods “GET”, “POST” and “PUT” are available here.
URL
The URL that will be called to send data to the web service (write variables). If no different write URL is
specified, the read URL will also be used for writing. The use of placeholders (see below) is allowed.
If there are problems processing the data in the web service, this can be communicated to the QuickHMI
system so that it can display a corresponding error message. For this, the server's response is expected in
a certain format. Response examples in the 3 supported formats can be found below. As soon as the
transmitted Quality deviates from “GOOD”, an error message with corresponding message is displayed in
QuickHMI.
151
QuickHMI - V9 (Gazelle) R2 05.07.2021
Parameters
Parameters that are sent to the web service together with a write request. By using placeholders (see
below) the variable to be written as well as the value to be written can be passed.
To enlarge the input field and thus write better, use the glass icon next to the text field.
Information:
If the data source is also to be used for writing, this logic must be implemented accordingly by you
on the web server.
QuickHMI only calls the defined URL with the defined parameters.
152
QuickHMI - V9 (Gazelle) R2 05.07.2021
- PLACEHOLDERS -
Placeholders can be used in the URLs and parameters to call up variable-specific URL´s or send variable-specific
parameters.
@var_name
Contains the name of the variable in the QuickHMI system.
@var_path
Contains the path within the “JSON” or” XML” structure. In case of “URLEncoded” data only the key is
included.
By using placeholders in the read URL or the read parameters, a separate request is sent to the web server for each
variable. For many variables, the use of such placeholders can lead to performance losses. This restriction does not
apply to writing, since a single request is sent for each variable anyway, regardless of the use of placeholders.
153
QuickHMI - V9 (Gazelle) R2 05.07.2021
After entering the information relevant for the connection, click on "Add". And after editing an already created
data source, click on "Save".
The Webservice data source is created and subsequently displayed in the data source overview.
Created data sources can be edited or deleted. You do this via the corresponding buttons. You also have the option
of viewing all internal data sources. This works by activating the checkbox "Show internal data sources".
Below you can create variables for the Webservice data source.
You can find out how to add variables for the Webservice data source in the “Adding Webservice variables”
chapter.
154
QuickHMI - V9 (Gazelle) R2 05.07.2021
The external logging describes the possibility of creating a data image. You can log into a database as well as into a
file system. External logging is always set to the entire data source, with all its variables included. There are 2 options
for external logging:
1. Data image
A subtraction of the current value of the variable from the data source is created.
2. Data log
A log is created which shows the changes of the variables.
The interface for databases gives the QuickHMI developer an easy way to provide an interface for an existing
database with following features:
Data-Archiving
Every QuickHMI incoming data from devices will be written in a table.
Data-Image
Complete Image of variables their current value and timestamp of last change.
There are countless possibilities of using the interface. Every time if you need an “outside” access to the QuickHMI
or connected devices (e.g. PLCs or MODBUS devices) you can use this interface. You can use the data for analyses,
charting, reporting or just to archiving.
155
QuickHMI - V9 (Gazelle) R2 05.07.2021
How to do this, you will learn in the "Creating database connections" chapter.
To use the QuickHMI interface you have to have an existing and administered database and a corresponding JDBC
driver.
The database must be accessible by the QuickHMI processes. The connection must not interrupt by a firewall or
likewise things. The network connection between QuickHMI and database should use the speed of 100Mbit/s.
Downscaled speed can courses lower performance to write archive data.
Please note:
QuickHMI do not provide database servers or database licenses. It only gives access possibilities to existing
databases. Requisite database licenses and access licenses must be given by the customer.
If the amount of data from the QuickHMI is too high and the data cannot be written to the archive, the data will be
held on RAM by the system and write the data back-to-back. If the data reaches more than 50000 data records for
each data source, new data will be deleted. This problem could appear while hardware working to capacity or
missing resources (e.g., virtual servers).
Before using check, the performance of your target database system. It is also necessary that the target system has
enough (at least 20 GB) free disk space. This always depends on the incoming data and the time of archiving.
156
QuickHMI - V9 (Gazelle) R2 05.07.2021
Before you can use the QuickHMI database interface you have to create a set of database objects.
The following database objects will be created after executing the script:
Index IDX_QHMI_DATAIMAGE_DATASO_NAME
Index IX_QHMI_DATALOG_DATASOURCE
Index IX_QHMI_DATALOG_TS
Trigger TR_QHMI_DATALOG_BI
Sequence SEQ_QHMI_DATALOG
The database connection configured in the project requires insert, update and delete rights within the created
tables. If these rights are not available, malfunctioning of the interface processes may occur.
157
QuickHMI - V9 (Gazelle) R2 05.07.2021
Click on “Data sources” in the Project explorer and select "Add data source" or "Edit data source". Then continue
with click on "External logging".
158
QuickHMI - V9 (Gazelle) R2 05.07.2021
If you activate the checkbox in the "Database" area in the window that opens, you will get the log. If you also want
to have the image of the current variables, you can activate "Create Image". In other words: the data log is always
executed, the data image only if you want it.
By the data archiving all incoming data changes will be logged in the archive table. You can use this data for any
purposes.
159
QuickHMI - V9 (Gazelle) R2 05.07.2021
The data image provides the QuickHMI variables and their current value for external applications.
160
QuickHMI - V9 (Gazelle) R2 05.07.2021
The interface for File system gives QuickHMI developer an easy way to provide an interface for an existing Oracle
database with following features:
Data-Archiving
Every QuickHMI incoming data form devices will be written in Files day by day. The maximum size and the
maximum count of records are adjustable.
Data-Image
Complete Image of variables their current value and time stamp of last change. One File for each data
source.
Optional encrypting
Incoming data will be encrypted. Tools for an easy decrypting are added.
For example: A self-created application could get access to the data of the QuickHMI and connected devices. It
could use the data for analyses.
It is possible to encrypt all data with a 256-Bit AES-cryption, for best protection. Only user/application who knows
the decryption key have access to the data.
3.12.3.2.1 What is the intended purpose for the file system interface?
There are countless possibilities of using the interface. Every time if you need an ‘outside’ access to the QuickHMI
or connected devices (e.g. PLCs or MODBUS devices) you can use this interface. You can use the data for analyses,
charting, reporting or just to archiving.
For example: A self-created application could get access to the data of the QuickHMI and connected devices. It
could use the data for analyses.
You do not have to learn different scripting languages, just use your favorite programming language.
161
QuickHMI - V9 (Gazelle) R2 05.07.2021
You have to create an available folder in you file system. The folder should be existing if it is not the system try to
create it.
The process needs read, write, and delete access to this folder. Are these rights missing it could course
malfunctions?
Particularly the delete rights are needed to reorganize the old data. This could course a full disk or a windows crash.
The same could happened if external processes blocking the tables permanently. Check if the target system has
enough free disk space.
The rights have to be existed for the current windows user while development, therefore the file can be written
and read while Editor’s runtime.
Additionally, these rights are necessary for the production environment for the user which runs the data source
service.
The archiving to the file system high performed and tested with merchantable hardware and 1000 variable changes
per 100 milliseconds. If the amount of data from the QuickHMI much higher and the data cannot be written to the
archive, the data will be held on RAM by the system and write the data back-to-back. If the data reaches more than
50000 data records for each data source, new data will be deleted. This problem could appear while hardware
working to capacity or missing resources (e.g., virtual servers).
Before using check, the performance of your target Oracle database system. It is also necessary that the target
system has enough (at least 20 GB) free disk space. This always depends on the incoming data and the time of
archiving.
162
QuickHMI - V9 (Gazelle) R2 05.07.2021
1. Target path (Note, that the destination path is also present on the server.)
3. (Option) max count data records within target table. While reaching this count the old data records will be
deleted.
4. (Option) max age of files indication in hours. While reaching the age range the old files will be deleted.
5. Maximum size of each archive file indication in MB. If the file reaches the size, a new file will be created
with next sequence number. If you do not set a max size the file will reach a max size of 2 GB.
6. Automatic reorganize the archive on/off. If deactivated, the old data records stay in the table. The user has
to delete the old data by themselves.
8. Enable or disable the receipt of write commands through the file system.
10. (Option) Passing a password for encryption. When switching on the encryption, the password transfer is
obligatory. Please keep the password inaccessible to others and do not give it away.
163
QuickHMI - V9 (Gazelle) R2 05.07.2021
You can find the options for archiving in the “Data sources” window accessible through the Project explorer. By
creating or editing a data source the options will be opened by pressing the “External logging” button.
In the opened window you can select “File” by activate the checkbox and choose the path where the file should be
saved.
Determine if an image should be created, set the different settings, and set a password.
164
QuickHMI - V9 (Gazelle) R2 05.07.2021
By the data archiving all incoming data changes will be logged in the archive table. You can use this data for any
purposes.
The fields in the file are separated with a semicolon. The first row gives you the column names.
3. Data type
4. Name of Variable
5. Current Value
6. Quality (“GOOD”, if QuickHMI-connection to target device regulatory works, “BAD”, if problems appear, e.g.
Timeouts.)
165
QuickHMI - V9 (Gazelle) R2 05.07.2021
The data image provides the QuickHMI variables and their current value for external applications there are two
options for the data image format. Text file or XML-file.
The fields in the file are separated with a semicolon. The first row gives you the column names.
3. Data type
4. Name of Variable
5. Current Value
6. Quality (“GOOD”, if QuickHMI-connection to target device regulatory works, “BAD”, if problems appear, e.g.
Timeouts.)
166
QuickHMI - V9 (Gazelle) R2 05.07.2021
4. Data type
5. Name of Variable
6. Current Value
7. Quality (“GOOD”, if QuickHMI-connection to target device regulatory works, “BAD”, if problems appear,
e.g. Timeouts.)
For encrypted files, the XML format has remained preserved. Only the field contents are encrypted.
167
QuickHMI - V9 (Gazelle) R2 05.07.2021
To provide optimal data security, the QuickHMI file interfaces are equipped with optional encryption. Encryption is
carried out directly if you have set up the necessary settings within the data sources.
Please note:
You must assign a password for encryption. Please keep this password up! If it is lost, the encrypted files can no
longer be opened. We can´t help in this case. The encryption routines require CPU resources! Plan slightly higher
computing power. Especially when you are very many variables are changed in very short intervals. However, you
can test the load in the editor during the runtime mode.
Your QuickHMI system includes a command line program for encryption and decryption. You can find it under
[QuickHMI-Home] /qhmisecu.exe within the editor or server installation.
168
QuickHMI - V9 (Gazelle) R2 05.07.2021
You have the option to add variables for all previously created data sources.
The following chapters will show you how to create variables for the different data sources.
To add variables to the S7 data source, it must be selected in the variable input mask under "Data source".
Depending on which data source type is selected, the input mask adjusts automatically.
Then, enter a name for the variable under "Name" and select the "Data type.
If this button is activated (button is highlighted in blue), the name automatically adjusts to the
variable address. If the variable name and the address are to be different, the button must be
deactivated.
For more information on fast entry, go to the "S7 syntax for fast entry" chapter.
169
QuickHMI - V9 (Gazelle) R2 05.07.2021
If all entries have been made, click on "Add" to create the variable. The window remains open so that you can
create additional variables. If you finish, “Close” the window.
The variable for the S7 data source was created successfully and can now be used.
170
QuickHMI - V9 (Gazelle) R2 05.07.2021
S7 variables can also be added with a fast entry. With a correct syntax, a variable can be created here with a single
field entry.
For variables from the data block and instance data block areas, the number of the data block must be separated
from the data type with a Point(.):
If it is a string or Boolean variable, the length of the string or the position of the bit must be specified at the end:
Regions:
171
QuickHMI - V9 (Gazelle) R2 05.07.2021
Data types:
172
QuickHMI - V9 (Gazelle) R2 05.07.2021
To add variables to the OPC UA data source, it must be selected in the variable input mask under "Data source".
Depending on which data source type is selected, the input mask adjusts automatically.
The variable can be created manually by assigning it a "Name" and entering the "NodeID". However, since this is a
bit cumbersome, you also have the option to browse the server by clicking on "Browse". In the window that opens,
all variables are listed (displayed as a tree structure), which you can then simply select via checkbox. Then confirm
your selection by clicking on "Import" and close the window with "Close".
If this button is activated (button is highlighted in blue), the name automatically adjusts to the
variable address. If the variable name and the address are to be different, the button must be
deactivated.
173
QuickHMI - V9 (Gazelle) R2 05.07.2021
The variables for the OPC UA data source have been created successfully and can now be used.
174
QuickHMI - V9 (Gazelle) R2 05.07.2021
OPC variables can also be created using the Variable Import button.
In the following window you can choose between already created TwinCat, OPC UA, Allen Bradley, or Webservice
data sources.
175
QuickHMI - V9 (Gazelle) R2 05.07.2021
OPC variables can also be added with a fast entry. With a correct syntax, a variable can be created here with a single
field entry.
[Data type].[NodeID]
Data types:
176
QuickHMI - V9 (Gazelle) R2 05.07.2021
To add variables to the TWINCAT data source, it must be selected in the variable input mask under "Data source".
Depending on which data source type is selected, the input mask adjusts automatically.
Under "Name" you can enter the name of the variable directly if it is known.
If this button is activated (button is highlighted in blue), the name automatically adjusts to the
variable address. If the variable name and the address are to be different, the button must be
deactivated.
177
QuickHMI - V9 (Gazelle) R2 05.07.2021
You also have the option to search for the variable. Click on "Browse". Everything the controller has is listed below.
Here you can now select a desired variable.
When all entries have been made, click on "Import" to create the variable.
The variables for the TWINCAT data source have been created successfully and can now be used.
178
QuickHMI - V9 (Gazelle) R2 05.07.2021
TwinCat variables can also be created using the Variable Import button.
In the following window you can choose between already created TwinCat, OPC UA, Allen Bradley, or Webservice
data sources.
179
QuickHMI - V9 (Gazelle) R2 05.07.2021
TWINCAT variables can also be added with a fast entry. With a correct syntax, a variable can be created here with
a single field entry.
[Data type].[SymbolPath]
Data types:
180
QuickHMI - V9 (Gazelle) R2 05.07.2021
To add variables to the MODBUS Master data source, it must be selected in the variable input mask under "Data
source". Depending on which data source type is selected, the input mask adjusts automatically.
MODBUS has areas in the control that are read only and cannot be written. If this is the case, an indication of this
appears. Then enter a name for the variable under "Name" and select the "Data type".
If this button is activated (button is highlighted in blue), the name automatically adjusts to the
variable address. If the variable name and the address are to be different, the button must be
deactivated.
You also have the option of selecting the individual areas of the controller. In this example, we have a string named
"string1". This is located in the "HoldingRegister" 10, with a "Length" of 15. Once all entries have been made, click
on "Add" to create the variable. The window remains open so that you can add additional variables. “Close” the
window to finish.
181
QuickHMI - V9 (Gazelle) R2 05.07.2021
The variables for the MODBUS Master data source have been created successfully and can now be used.
182
QuickHMI - V9 (Gazelle) R2 05.07.2021
MODBUS variables can also be added with a fast entry. With a correct syntax, a variable can be created here with
a single field entry.
[Region][Address].[Data type]
If it is a string or Boolean variable, the length of the string or the position of the bit must be specified at the end:
[Region][Address].[Data type].[BitPositionOrLength]
Are they variables from the coil or input regions, the syntax is simplified as follows:
[Regions][Address]
Regions:
Data types:
183
QuickHMI - V9 (Gazelle) R2 05.07.2021
To add variables to the MODBUS Slave data source, it must be selected in the variable input mask under "Data
source". Depending on which data source type is selected, the input mask adjusts automatically.
Creating a variable for MODBUS slave data sources works like creating a variable for MODBUS master data sources.
184
QuickHMI - V9 (Gazelle) R2 05.07.2021
To add variables to the KNX data source, it must be selected in the variable input mask under "Data source".
Depending on which data source type is selected, the input mask adjusts automatically.
Then give a “Name” to the variable and select the "Data type". To complete the entry, enter the KNX - specific
address (Bus / Device ID / Addressing of the variable).
If this button is activated (button is highlighted in blue), the name automatically adjusts to the
variable address. If the variable name and the address are to be different, the button must be
deactivated.
To confirm your entries, continue with "Add". The window remains open so that you can create additional variables.
"Close" the window for finish.
185
QuickHMI - V9 (Gazelle) R2 05.07.2021
The variables for the KNX data source have been created successfully and can now be used.
KNX variables can also be added with a fast entry. With a correct syntax, a variable can be created here with a single
field entry.
[Data type].[Adrdess1].[Adrdess2].[Address3]
Data types:
186
QuickHMI - V9 (Gazelle) R2 05.07.2021
To add variables to the DataBase data source, it must be selected in the variable input mask under "Data source".
Depending on which data source type is selected, the input mask adjusts automatically.
Now all you must do is give a "Name". By clicking on "Add" the variable is created. The window remains open to
create additional variables. “Close” the window to finish the entry.
If this button is activated (button is highlighted in blue), the name automatically adjusts to the
variable address. If the variable name and the address are to be different, the button must be
deactivated.
The “Key” value is used to uniquely identify a single table row of which the value of the “VAR_VALUE” column is
used as the value for the variable.
187
QuickHMI - V9 (Gazelle) R2 05.07.2021
The variables for the DataBase data source have been created successfully and can now be used.
Information:
In contrast to the file system data source, the variables for the DataBase data source cannot simply be
created, but the name of the variable must be entered in the SQL Server to be able to query it.
How to prepare the database can be found in the chapter for adding DataBase data sources:
188
QuickHMI - V9 (Gazelle) R2 05.07.2021
DataBase variables can also be added with a fast entry. With a correct syntax, a variable can be created here with
a single field entry.
[Data type].[Key]
Data types:
189
QuickHMI - V9 (Gazelle) R2 05.07.2021
To add variables to the File system data source, it must be selected in the variable input mask under "Data source".
Depending on which data source type is selected, the input mask adjusts automatically.
Choose a “Name” for your variable and click "Add". Once added, the window remains open, and you can add more
variables. “Close” the window to finish typing.
If this button is activated (button is highlighted in blue), the name automatically adjusts to the
variable address. If the variable name and the address are to be different, the button must be
deactivated.
The “Key” value is used to uniquely identify a single row of the file of which the value of the “VALUE” column is
used as the value for the variable.
190
QuickHMI - V9 (Gazelle) R2 05.07.2021
The variables for the File system data source have been created successfully and can now be used.
Filesystem variables can also be added with a fast entry. With a correct syntax, a variable can be created here with
a single field entry.
[Data type].[Key]
Data types:
191
QuickHMI - V9 (Gazelle) R2 05.07.2021
To add variables to the MQTT data source, it must be selected in the variable input mask under "Data source".
Depending on which data source type is selected, the input mask adjusts automatically.
Now all you must do is give a "Name". By clicking on "Add" the variable is created. The window remains open to
create additional variables. “Close” the window to finish the entry.
If this button is activated (button is highlighted in blue), the name automatically adjusts to the
variable address. If the variable name and the address are to be different, the button must be
deactivated.
It's easier if you click on "Browse" to use the "Search Topic" function to select the existing variables. The "Search
Topic" works by tree structure. If only a "#" is entered, all will be searched, which may take some time. So, it is
recommended if you already know in which topic you want to search for the variables.
192
QuickHMI - V9 (Gazelle) R2 05.07.2021
Enter the desired topic (*Name of topic**Slash**#*) and click on "Update". Thus, the topic is searched for the
variables (all variables are strings) from which you can select the desired ones. By clicking on "Import" the selected
variables are created and the window closes.
The variables for the MQTT data source have been created successfully and can now be used.
193
QuickHMI - V9 (Gazelle) R2 05.07.2021
MQTT variables can also be added with a fast entry. With a correct syntax, a variable can be created here with a
single field entry.
[Data typ].[Topic]
Data types:
194
QuickHMI - V9 (Gazelle) R2 05.07.2021
To add variables to the Allen-Bradley data source, it must be selected in the variable input mask under "Data
source". Depending on which data source type is selected, the input mask adjusts automatically.
If this button is activated (button is highlighted in blue), the name automatically adjusts to the
variable address. If the variable name and the address are to be different, the button must be
deactivated.
It is easier if you click on "Browse" and select the existing variable and confirm with "Import".
195
QuickHMI - V9 (Gazelle) R2 05.07.2021
The variables for the Allen-Bradley data source have been created successfully and can now be used.
When entering manually, enter the name of the variable in the "Address" field (The address is the name stored in
the Allen-Bradley data source). In the field "Name" you can rename the variable internally and set the "File type"
in the line below. With "Add" you create the variable.
Allen-Bradley variables can also be added with a fast entry. With a correct syntax, a variable can be created here
with a single field entry.
[Data type].[Path]
Data types:
196
QuickHMI - V9 (Gazelle) R2 05.07.2021
To add variables to the Webservice data source, it must be selected in the variable input mask under "Data source".
Depending on which data source type is selected, the input mask adjusts automatically.
Assign a name for the variable and specify the "Path". Now the variables can be imported via the "Browse" button,
or you know the path of the desired node and can enter it manually.
For the JSON format, sub nodes are separated from the main node with a dot (.). Individual elements in an array
are accessed with curly brackets and by specifying the index X. ([X])
The path for accessing the variable marked in the graphic is to serve as an illustration:
Path: LOREM.SIT.ELIT[1].UTILITATIS
197
QuickHMI - V9 (Gazelle) R2 05.07.2021
If this button is activated (button is highlighted in blue), the name automatically adjusts to the
variable address. If the variable name and the address are to be different, the button must be
deactivated.
By a variable import, the data type in which the selected variables are to be imported can be selected. Per variable
import, only one data type can be selected. If variable A is to be imported as string and variable B as Boolean, the
import procedure must be start again for each variable. If both variables are to be imported as the same data type,
this is done all at once.
The variables for the Webservice data source were created successfully and can now be used.
198
QuickHMI - V9 (Gazelle) R2 05.07.2021
Webservice variables can also be added with a fast entry. With a correct syntax, a variable can be created here with
a single field entry.
[Data type].[Path]
Data types:
199
QuickHMI - V9 (Gazelle) R2 05.07.2021
In QuickHMI, from version 9.1.0.0 Gazelle, you can display the status of data sources in the visualization. For each
data source created, corresponding system variables are automatically created in the background.
The status variables can now be used like all variables in QuickHMI. For example, a breaker button can be used to
indicate whether a data source is running or not. For this purpose, a rule must be created for the control.
200
QuickHMI - V9 (Gazelle) R2 05.07.2021
In the rules of the element, the system variable to be accessed must be selected at “Value”. Thus, a rule is created
on the “On” property of the control, which displays the “ds_webservice dq_is_running” status of the web service
variable.
These variables are read-only -> So, they cannot be written. Switching the data source is therefore not possible
with this.
201
QuickHMI - V9 (Gazelle) R2 05.07.2021
In QuickHMI it is possible to manipulate values of variables. This is useful whenever values from a data source needs
to be converted prior to rendering it on the visualization. To do so click on the formula icon when creating or editing
a variable. This will open the “Value manipulation” window.
Then select the operation to be applied to the variable. Finally, specify the value with which the operation should
be performed. In this case the variable value is always multiplied by 2.7 before further processing. Click “Save” to
complete the process.
Information:
If the value of this variable is written back, the counteraction is executed beforehand. This is, in this case,
before writing to the controller, the value would be divided by 2.7. If the data source outputs a 10 a 27 is
displayed in the visualization. If the value is changed to 54 by the user and is written back to the data source
the value will be divided by 2.7 beforehand. A 20 is therefore written to the data source.
202
QuickHMI - V9 (Gazelle) R2 05.07.2021
Alarm notification
To create alarm variables, you need to have created at least one data source. This can be assigned to the new alarm
variables. You can do this under “Data sources” in the Project explorer.
How to create data sources, you will learn in the "Creating data sources" chapter.
To add alarm variables, click on “Variables” in the “Project explorer”. After this click the button for “Add variables”.
Then select your "Data source" and set a "Name" for the variable. In order to define the created variable to be an
alarm variable, select the type of alarm under "Alarm type". Here you can decide between "Message", "Warning"
and "Error". By default, "No alarm" is selected here and thus no alarm variable.
203
QuickHMI - V9 (Gazelle) R2 05.07.2021
By clicking on the button that activates afterwards, you will be taken to the further alarm settings. Here you have
the following options:
Make the alarm variable "Linkable". This will be made available for rules and actions.
Another feature is the option to use "Messages" from translation texts. To do this, you can use the
corresponding button, or you can write before and after the text "%" in order to use translation texts
manually.
It is also possible for you to specify a "Location". This is just a text for information about where the alarm
is triggered.
Determine a "Navigation target". This navigates when selecting the alarm directly to a component (for
example, a control) on the surface or to a desired view.
A sound created under "Audio resources" can be selected, which will be played when the alarm variable is
triggered.
Select a created e-mail template that you want to link to the alarm.
More about the QuickHMI E-mail function you will find in the “E-Mail-Function” chapter.
204
QuickHMI - V9 (Gazelle) R2 05.07.2021
Created alarm variables can be edited, updated, and deleted. They can then be used by control elements.
205
QuickHMI - V9 (Gazelle) R2 05.07.2021
Internal variables are only available in QuickHMI and can only be used in there. To communicate with external data
sources, use external variables.
You have the choice between local and global variables. Whereas local variables only refer to a selected client on
the server, global variables are directed to all clients on the server.
Changes to local variables only affect the client on which the change was made. Changes to global variables, are
visible for all clients.
So, select whether you want to create a local or a global variable. Use the corresponding buttons.
Then select all the specifications for the variable, such as "Name", "Data type" and "Value". The value here is the
initial value of the variable.
An overview of the different data types can be found below in this sub-chapter.
Click on "Add" to create the variable. If you do not want to create further variables "Close" the window.
206
QuickHMI - V9 (Gazelle) R2 05.07.2021
All created variables appear detailed in the table. Here you will also see the start value of the individual variables.
To edit or delete a created variable, select it and interact with the corresponding buttons. Alternatively, you can
also double-click (edit) or use the Delete (delete) key.
207
QuickHMI - V9 (Gazelle) R2 05.07.2021
Data types:
Internal variables can also be added with a fast entry. With a correct syntax, a variable can be created here with a
single field entry.
[Data type]
Data types:
208
QuickHMI - V9 (Gazelle) R2 05.07.2021
Created variables can be displayed both in the table view and in the text view in a list. In this text view, new variables
can be created faster, for example by copying, pasting and redefining existing variables.
To switch from the regular table view to the text view, use the corresponding button. All previously created
variables, which are displayed by default in a table, are then listed as a text line in a list.
In addition, you can also change the text size. For this, use the text size buttons.
209
QuickHMI - V9 (Gazelle) R2 05.07.2021
The text view offers the possibility to create variables even faster. For this it is absolutely necessary that you exactly
familiar with the matter, since it can come here faster to mistakes.
Open the text view for variables as described in the previous chapter. You can simply copy and paste an existing
variable (the complete text line). Then, you can redefine added variable by changing the all required values of the
new variable.
A variable is divided into the following elements, which can be defined manually.
| ---> Pipe
1018 ---> ID
The ID is the number for uniquely identifying a variable. However, when copying a line or writing a new line, you
don´t have to assign a new ID yourself. Just leave the field empty (so that the line starts with a pipe) or just leave
the copied ID standing. By saving the software automatically assigns the next free ID.
210
QuickHMI - V9 (Gazelle) R2 05.07.2021
Only interesting for data types. The syntax for this is based on the Java date formatting syntax.
This area must contain the operation, space key, and then the value. So, for example ADD 5.
If an alarm variable is created, the alarm type must be specified here. This can be "Message", "Warning" or "Error".
If it´s not an alarm variable, simply enter "None" here. Then, the following steps will be omitted.
Indicates whether the variable should be linkable or not. This will be defined here by "True" or "False". Variables
are thereby made available for rules and actions.
Set here the message to be output when the alarm is active (alarm type "Message").
This is just a text for information about where the alarm is triggered.
Here, the navigation target is specified. This navigates when selecting the alarm directly to a component (for
example, a control element) on the surface or to a desired view.
Here, a sound can select that will be played when the alarm sounds. The complete name of the sound file must be
entered including file extension.
211
QuickHMI - V9 (Gazelle) R2 05.07.2021
It is also possible to create the variables from the beginning within the text view. To do this, click directly on the
text view and start creating the variables by manual entry as described.
Created variables can be linked to control elements via rules and actions.
The reading of variables can be done by rules and by JavaScript (Variable-Change and API function "getVariable")
For the desired option, see the sup chapters “Rules”, “Scripts for variable change events” and “API functions” in
this documentation.
Variables can be written using actions (SET_VARIABLE) and the JavaScript API function "setVariable" and
"setVariableSync".
For the desired option, see the sup chapters “Actions” and “API functions” in this documentation.
212
QuickHMI - V9 (Gazelle) R2 05.07.2021
In the window that opens, click on the plus icon to create a new database query.
Then assign a "Name", select the "Connection" and choose the execution mode. Then enter the desired SQL and
save your entries.
There are 2 execution modes available for database queries. The modes differ on the one hand in when and by
whom they are triggered and on the other hand in which users get which data displayed.
Interval
The database query is automatically executed by the server at a specified interval (fastest interval 500ms). All users
always get the same current data automatically.
Manual
The database query is executed once when the server is started to obtain an initial data status. After that, this query
is only executed during a user interaction (by means of a created action, e.g. when a button is pressed).
The table is now filled with the current data of the database and is not updated until the action is executed again.
If other users perform an action that affects this database query during this time, this has no effect on other users.
In SQL, you can use placeholders that are replaced by the contents of variables at the time of query execution. In
this example we want to use the number of currently connected clients in an email.
We can find this value in the system variable "current_session_count". The data source name of the system data
source is "System".
213
QuickHMI - V9 (Gazelle) R2 05.07.2021
Placeholders for variables consist of curly brackets into which an "@" + data source name + variable name is written.
Data source name and variable name are separated by a dot. So, in this case {@System.current_session_count}.
Information:
Not all variables can be used in placeholders! Only global variables can be used.
1. Variables from data sources that have been created by the user, i.e., by you.
2. Internal variables that have been created as global.
3. The system variables "current_session_count", "active_alarm_count" and all data source status
variables.
1. all variables of the system data source (except those mentioned above).
2. internal variables that have been created as local.
Placeholders can only be used where JDBC parameters (?) can normally be used. At runtime, all placeholders
are replaced by JDBC parameters. So, data types of variables play a role here.
214
QuickHMI - V9 (Gazelle) R2 05.07.2021
Under "Controls" on the left side, the new element "DatabaseTable" appears, which can be dragged onto the
surface like all the other elements. In the “Properties” for the control under "DatabaseQuery", select the previously
created database query.
When all entries have been made and the runtime has been executed, the table from the database is displayed.
The datas can be sorted by the columns as desired. (The representation can vary in the detail in the future)
215
QuickHMI - V9 (Gazelle) R2 05.07.2021
Info
When this option is enabled, information’s about the table are displayed, including information about
filtered data. This option can be used to enable or disable this function.
Ordering
Enables or disables the ability to sort the data in the table by desired column.
Filtering
Paging
Controls whether the user can change the number of records displayed on a page at runtime. If this option
is disabled, all records are always displayed.
PageSize
A sequence of numbers (separated by commas) can be specified here to indicate which selection options
the user has when paging is enabled.
In the example below, paging is enabled, and the page size is set to 50. So, the user is not given the option
to adjust the page size at runtime.
By entering "50, 100, -1", a selection could be made between 50, 100, and all entries. With the exception
of -1 (This represents all records on a page), numbers must be positive.
216
QuickHMI - V9 (Gazelle) R2 05.07.2021
To define an area in your project where HTML is to be displayed, drag an HtmlBox onto the editor desktop. This can
be found in the controls, in the category “HTML”. HTML content can now be displayed in this box. However, only if
these were defined before in the “HTML Manager”.
In the HTML Manager, which can be accessed via the Project explorer, HTML blocks can be created, edited, and
deleted. HTML blocks can be displayed later in the HtmlBox. Click on “HTML” under “Scripting” in the Project
explorer to open the HTML Manager.
217
QuickHMI - V9 (Gazelle) R2 05.07.2021
On the right side of the HTML Manager, you can now enter a “Name” for the new HTML block to be created, as
well as the code. To save the entries, use the disk button in the toolbar. You can either save the individual HTML
block by selecting it, or all blocks created in the HTML Manager together.
To edit HTML blocks, click on the desired entry on the left side and simply edit the entries on the right side. After
this, save the entries. You can delete the entries selected on the left side via the trash can button in the toolbar.
218
QuickHMI - V9 (Gazelle) R2 05.07.2021
To link the HTML box with a created HTML block, select the HTML box and choose the desired entry in the
“Properties” under “Html”.
The content of the HTML block is now displayed in the HTML box as a preview and can then be executed in runtime.
219
QuickHMI - V9 (Gazelle) R2 05.07.2021
3.14.2 JavaScript
Like the HTML blocks, JavaScript is also maintained in a central location. For JavaScript, two masks are available to
us. One is the definition mask and the other is the assignment mask.
3.14.2.1 Definition
The mask for the “Definition” of the JavaScript can be reached via the Project explorer under “Scripting” /
“JavaScript” / "Definition". It consists of a JavaScript editor.
By clicking the - button, you can access API function we have provided so you can interact with the project.
The dropdown box above the editor offers quick access to all declared functions.
With the of the Script Definition toolbar, you can create a new script, change font sizes, save scripts, change the
order of multiple scripts (make sure they are in the correct order), and delete created scripts.
220
QuickHMI - V9 (Gazelle) R2 05.07.2021
JavaScript functions which are to be executed as an action function - that is, called up as the result of an event -
must correspond with a specific pattern. Such functions must either have no parameters or only one specific
parameter. This parameter is the args parameter which is filled with information about the current event (page,
component, event).
function showSlotData(args)
function anyFunctionName(args)
function anyFunctionName()
But not:
The args parameter can be read out within the function as follows:
args[„page“] Returns the name of the page on which the component triggering the event is located.
(args.page) If this component does not have a name, only the ID of the page will be returned.
args[„element“] Returns the name of the component triggering the event. If this component does not
(args.element) have a name, only its ID will be returned.
args[„event“] Returns the name of the event. E.g. “Clicked”, “OnMouseDown”, etc.
(args.event)
221
QuickHMI - V9 (Gazelle) R2 05.07.2021
In QuickHMI it´s possible to execute JavaScript’s because of a variable changed event. These functions must follow
the same regulations as Scripts for component events.
The only difference is the content of the args-parameter. In the case of a variable change event, it contains a
variable object. Its properties can be accessed as follows:
222
QuickHMI - V9 (Gazelle) R2 05.07.2021
mainInterface.getProperty(property)
This function returns the value of a component property.
Parameter
property
The property parameter specifies the name of a property.
o pagename.componentname.propertyname
o componentId.propertyname
In order to, for instance, read out the text from a text box with the name edit1 on the main page,
the parameter to be transmitted must be: “Mainpage.edit1.Text“
The syntax including the IDs only comes in to play when using the args-parameter mentioned earlier.
(This parameter provides you with the needed IDs, in case you didn’t specify a name for the
questioned component.)
mainInterface.setProperty(property, value)
This function sets the value of a component property to a specific value. To set a value, the component must have
a name.
Parameters
property
The full name of the property to be set. (See function getProperty)
value
The value to be assigned to the property
mainInterface.getVariable(variable)
This function returns the value of a variable.
Parameter
variable
The name with which the variable was created.
If the variable name exists in several data sources, the data source name must be specified
beforehand.
Example: DataSourceName.VariableName
223
QuickHMI - V9 (Gazelle) R2 05.07.2021
mainInterface.setVariable(variable, value)
This function sets the value of a variable asynchronously.
This process is asychron. This means that a call for “getVariable” immediately afterwards might not return the
updated value. Best practice to work with this behavior is to save the value beforehand in a local JavaScript-Variable
to use it later in the script.
If, for some reason, you really need the function “getVariable” to return the updated value immediately afterwards
there is a (highly discouraged) way of doing this: Using “setVariableSync” instead of “setVariable”. The big
disadvantage of setting a variable synchronously is the impact on the user interface. If the synchronous function is
called frequently it might lead to the user interface freezing for a few seconds.
Parameters
variable
The name with which the variable was created.
If the variable name exists in several data sources, the data source name must be specified
beforehand.
Example: DataSourceName.VariableName
value
The value to be assigned to the variable
mainInterface.setVariableSync(variable, value)
This function sets the value of a variable synchronously.
Information:
Only use this function when absolutely necessary. (See the important note for the function „setVariable“.)
Parameters
variable
The name with which the variable was created.
If the variable name exists in several data sources, the data source name must be specified
beforehand.
Example: DataSourceName.VariableName
value
The value to be assigned to the variable
224
QuickHMI - V9 (Gazelle) R2 05.07.2021
This function writes a log entry. The log can be opened in the QuickHMI Desktop Viewer & Web Viewer via the
- button.
Parameters
logtype
As log types, the constants “I” for information, “W” for warning and “E” for error are available.
These are displayed in different colors in the log.
tag
Specifies the origin of the log entry
message
The message to be logged
mainInterface.playAudio(filename)
Parameter
filename
The name of the audio file (including file extension) that was previously imported in the QuickHMI
Editor.
mainInterface.openView(viewname)
Parameter
viewname
The name of a page or a view.
If a view (a smaller part of a page) is to be displayed, the syntax for this is as follows:
Pagename.Viewname
225
QuickHMI - V9 (Gazelle) R2 05.07.2021
3.14.2.1.4 Events
Using events, you can execute code once certain events are happening in QuickHMI. At the moment there are two
events in QuickHMI. Those two are ProjectLoaded and PageLoaded.
The ProjectLoaded event is fired once the project is initially done loading. Only after that moment it is possible to
use the mainInterface for example to manipulate variable values.
The PageLoaded event is fired every time a page is loaded. This event function can be given a parameter which
contains the name of the page loaded when called.
Usage:
Events.onProjectLoaded.push(function);
Events.onPageLoaded.push(function);
Function can either be declared inline directly in the function call or be declared elsewhere. Here is a little demo
code showing both options:
Events.onPageLoaded.push(function(pagename) {
alert(pagename);
});
Or
Events.onPageLoaded.push(pageLoaded);
function pageLoaded(pagename) {
alert(pagename);
}
Both codes are equally in function. They both show the loaded pages name in a popup message.
226
QuickHMI - V9 (Gazelle) R2 05.07.2021
3.14.2.2 Assignment
You have two options for assigning JavaScript functions to events for different components.
Proceed as you would for all other action functions and manually create a new action function for a specific event
assigned to a specific component. As a command for this action function, you can now select SCRIPT. In the
dropdown box, you can see all available functions from your defined JavaScript which correspond to the pattern.
(no parameters or only args parameters)
If, however, you want to use a JavaScript function on several events of different components, there is an easier
option. Open the assignment mask, which you can also access via the Project explorer under “Scripting”/
“JavaScript” / “Assignment”
227
QuickHMI - V9 (Gazelle) R2 05.07.2021
1
3
2
Area 1: displays an overview of all the JavaScript functions that can be used as actions. Here, you can select
the function which you want to assign to the events.
Information:
Renaming functions does not automatically affect already assigned functions. These must
be manually relinked.
Area 2: displays the content of the selected functions. Changes at this point are not possible.
Area 3: lists pages that are currently open and the components on those pages. Via the context menu
(which can be accessed with a right-click), events and functions can be added or deleted.
Caution:
If an event is deleted at this point, this will affect all action functions assigned to that event. Since,
at this point, only script action functions are displayed, it is possible that there are additional action
functions, that are not visible here, associated with an event. These will also be lost if the event is
deleted.
228
QuickHMI - V9 (Gazelle) R2 05.07.2021
To assign several events to a JavaScript function at once, these first have to be selected in Area 1. Then the “Trigger”
button can be pressed. The following dialog box will open:
In the top line, the name of the selected function can be seen. Below that is a dropdown box showing the events.
Depending on which event has been selected, the list of components in the lower section will change since not all
components have the same events. If the event “OnVariableChange” is selected the list will contain all available
variables.
To further filter the list, there is a name filter, as well as the option of only showing components that either do or
do not already have an assignment.
All components with a checkmark have already linked this function to this event. If the checkmark is unmarked, the
link will be removed when saved. Of course, new links can also create in reverse.
229
QuickHMI - V9 (Gazelle) R2 05.07.2021
To find possible errors in your own defined JavaScript, it is a good idea to use the debugging function of your
browser. How this works with the most common browsers is explained in the following chapters.
It is important to note that any changes you make within the debugger at runtime only affect the current browser
session. After refreshing the page or restarting the runtime these changes would be lost.
It is therefore important to copy any changes that you make directly in the Debugger to the editor so that they are
permanent.
1. If you become an error message "Error in user Javascript:" at runtime, this always indicates for an error
that was triggered within a user-defined function. The error message contains a description of the error, in
this case "textVariable is not defined" and the name of the function that was called before the error
occurred.
2. If your script does not work as you expect it to. If wrong values are written or read. In this case it helps to
debug the code to get the error faster.
230
QuickHMI - V9 (Gazelle) R2 05.07.2021
The following instructions refer to version 83.0.4103.61 of Google Chrome. This process may vary for future
versions.
To do JavaScript debugging, you need to access the browser's "developer tools". You can do this in Google Chrome
simply by pressing "F12" or via the browser settings:
The developer tool opens and displays each JavaScript that has been created in a .ujs file (User JavaScript) at the
top level in plain text. The name of the file corresponds to the name under which the JavaScript block created in
the editor was saved. In this example it´s saved as "Main". So, for every saved JavaScript block, a separate file would
be created.
231
QuickHMI - V9 (Gazelle) R2 05.07.2021
JavaScript-Block „Main“
Now, the debugging can be done. Breakpoints can be set, and errors can be corrected. In this simple example, you
can already see by highlighting that something is faulty and needs to be corrected.
232
QuickHMI - V9 (Gazelle) R2 05.07.2021
The following instructions refer to version 76.0.1 of Firefox. This process may vary for future versions.
To do JavaScript debugging, you need to access the browser's "developer tools". You can do this in Firefox simply
by pressing "F12" or via the browser settings:
233
QuickHMI - V9 (Gazelle) R2 05.07.2021
The developer tool opens and displays each JavaScript that has been created in a .ujs file (User JavaScript) at the
top level in plain text. The name of the file corresponds to the name under which the JavaScript block created in
the editor was saved. In this example it is saved as "Main". So, for every saved JavaScript block, a separate file
would be created.
JavaScript-Block „Main“
Now, the debugging can be done. Breakpoints can be set, and errors can be corrected. In this simple example, you
can already see by highlighting that something is faulty and needs to be corrected.
234
QuickHMI - V9 (Gazelle) R2 05.07.2021
To do JavaScript debugging, you need to access the browser's "developer tools". You can do this in the Internet
Explorer simply by pressing "F12" or via the browser settings:
235
QuickHMI - V9 (Gazelle) R2 05.07.2021
The developer tool opens and displays each JavaScript that has been created in a .ujs file (User JavaScript) at the
top level in plain text. The name of the file corresponds to the name under which the JavaScript block created in
the editor was saved. In this example it´s saved as "Main". So, for every saved JavaScript block, a separate file would
be created.
JavaScript-Block „Main“
Now, the debugging can be done. Breakpoints can be set, and errors can be corrected. In this simple example, you
can already see by highlighting that something is faulty and needs to be corrected.
236
QuickHMI - V9 (Gazelle) R2 05.07.2021
The following instructions refer to version 81.0.416.77 of Microsoft Edge. This process may vary for future versions.
To do JavaScript debugging, you need to access the browser's "developer tools". You can do this in MS Edge simply
by pressing "F12" or via the browser settings:
237
QuickHMI - V9 (Gazelle) R2 05.07.2021
The developer tool opens and displays each JavaScript that has been created in a .ujs file (User JavaScript) at the
top level in plain text. The name of the file corresponds to the name under which the JavaScript block created in
the editor was saved. In this example it´s saved as "Main". So, for every saved JavaScript block, a separate file would
be created.
JavaScript-Block „Main“
Now, the debugging can be done. Breakpoints can be set, and errors can be corrected. In this simple example, you
can already see by highlighting that something is faulty and needs to be corrected.
238
QuickHMI - V9 (Gazelle) R2 05.07.2021
The following instructions refer to version 68.0.3618.125 of Opera. This process may vary for future versions.
To do JavaScript debugging, you need to access the browser's "developer tools". In Opera, this is simply done by
using the key combination "Ctrl + Shift + i".
JavaScript-Block „Main“
Now, the debugging can be done. Breakpoints can be set, and errors can be corrected. In this simple example, you
can already see by highlighting that something is faulty and needs to be corrected.
239
QuickHMI - V9 (Gazelle) R2 05.07.2021
First, name the e-mail under "Common" (Connection data) and set the “Cooldown”. Then enter the login data for
the SMTP server from which the e-mail is to be sent. A more detailed explanation of the *Cooldown (s) can be
found at the end of the “Sending e-mail by activating alarms” chapter.
240
QuickHMI - V9 (Gazelle) R2 05.07.2021
Under "Message" you formulate the actual message with subject. At least one subject is necessary to send an e-
mail. For formatting the text (e.g. bold, italics, color etc.), you must activate HTML via checkbox. Then you can
format the text by using HMTL tags. It is important that if HTML is deactivated, the tags must also be removed
again, otherwise they will be written out as plain text.
Information:
If HTML is activated, HTML-typical, no "normal" line breaks via ENTER are recognized. For a line break please
use the tag "<br/>".
Then select the addresses under "Addressing" (from, to, CC, BCC). Several addresses are separated by a comma.
To check your entries, you can send a test message at any time.
If all entries have been made, confirm with "Add" to save the e-mail template. This template can now be used to
automatically send an e-mail when certain events occur. To do this, first a “Trigger” must be specified. An e-mail
can be sent on events of a control element (for example when a button is clicked), when a variable value is changed,
and when an alarm is activated.
241
QuickHMI - V9 (Gazelle) R2 05.07.2021
Select a control for which you want to send an email when it interacts. In this example a button is selected. Add a
desired click event in the "Settings" under "Action" and create a new action function.
A detailed description of the actions of controls can be found in the "Actions" chapter.
Use the command "SEND_EMAIL" and select the previously saved e-mail template.
Confirm the entries with the green Check Icon to save. After this, close the window.
Now, every time you click the button, you will receive an email, with the content you defined. This is the simplest
example of using email templates.
242
QuickHMI - V9 (Gazelle) R2 05.07.2021
To have an e-mail sent when a variable value is changed, click on "E-mail" in the Project explorer. Here you select
the desired variable under "Triggers" by clicking the same named button.
243
QuickHMI - V9 (Gazelle) R2 05.07.2021
To have an e-mail sent when an alarm condition changes, you must assign an e-mail template to the desired alarm.
To do this, go to the alarm settings when creating an alarm variable and select the template under "E-Mail". Then
click "Save" and "Add" to create the alarm variable. Of course, you can add the e-mail function to an already created
alarm variable by editing the variable.
More about alarm variables can be found in the "Adding alarm variables" chapter.
If an alarm is now activated, an e-mail will be sent with the content you defined.
By using appropriate placeholders (see "Placeholders" subchapter) information about the triggered alarm can be
added to the mail.
Information:
*Cooldown (s)
With the QuickHMI e-mail function, mails are sent automatically as described above. In extreme cases, this
would mean that if, for example, a variable changes 20 times per second, 20 mails are also sent per second.
To prevent this, a cooldown can be set. If "10" is entered here as an example, only one mail is sent every 10
seconds.
If further mail-triggering events occur within these 10 seconds, the sending of mails is blocked for this time.
But the information’s are not lost. They are temporarily stored and either written at the end of the mail as
a summary or attached as an attachment (From a size of 5 MB).
To determine where exactly the information should be placed as a summary within the mail, you can use
the placeholder "@cache". More about this in the "Placeholder: @cache" subchapter ".
The cooldown is only relevant for mails that are sent automatically. That is, for variable changes and when
alarms are triggered. When a control is triggered by the user, the mail is sent immediately. From this
moment on, the cooldown time for automatic mails starts from the beginning.
244
QuickHMI - V9 (Gazelle) R2 05.07.2021
3.15.4 Placeholders
In QuickHMI you have the possibility to use placeholders for the e-mails. Placeholders are certain commands that
read a value or property, for example of a variable, and send this status as information in the e-mail. They ensure
that the contents of e-mails are automatically written, depending on the situation. Placeholders can be used both
in the subject of an e-mail and in the message text. There are several placeholders that can be used. They only work
if they are written within curly brackets.
The placeholder “@changedvariable” is replaced when a variable value is changed, by all information of the
changing variable. However, this only works if the mail is sent due to a variable change, as described in the chapter
before. In other cases, this placeholder is not replaced, but written out as plain text.
* Received e-mail
245
QuickHMI - V9 (Gazelle) R2 05.07.2021
The placeholder “@triggeredalarm” will be replaced with all information of the alarm when the state of an alarm
changes. However, this only works if the mail is sent due to the state change of an alarm, as described in the above
chapter. In other cases, this placeholder is not replaced but written out as plain text.
* Received e-mail
246
QuickHMI - V9 (Gazelle) R2 05.07.2021
This placeholder is especially useful to use in the e-mail subject. It will be replaced by a short description why the
e-mail was sent. These saves entering a new subject each time and it prevents the same default subject being used
all the time. So, the subject changes automatically, depending on the reason of the mail.
* Received e-mail
247
QuickHMI - V9 (Gazelle) R2 05.07.2021
As seen in the previous chapters, the placeholders “@changedvariable” and “@triggeredalarm” are replaced by
whole information blocks. Thus, it is unfavorable to use these placeholders in a continuous text. To avoid large
blocks of information and to be able to read out only individual information of the block, you can add a single value
to one of the placeholders explained.
For example, the placeholder "@changedvariable" is replaced by the information block consisting of "Name",
"Value", "Quality", "Message" and "Timestamp". Now it is possible to read individual information from this block.
For example, if you only want to have the name and value of the variable, write the following placeholders in the
e-mail:
*
Received e-mail
248
QuickHMI - V9 (Gazelle) R2 05.07.2021
@changedvariable.name
@changedvariable.value
@changedvariable.quality
@changedvariable.message
@changedvariable.timestamp
@triggeredalarm.name
@triggeredalarm.type
@triggeredalarm.is_active
@triggeredalarm.message
@triggeredalarm.begin
@triggeredalarm.end
249
QuickHMI - V9 (Gazelle) R2 05.07.2021
By using placeholders, the values of individual variables can also be read out and inserted into the e-mail. To use a
variable as a placeholder, you need the name of the variable as well as the name of the data source to which this
variable belongs. In this example we want to use the number of currently connected clients in an e-mail.
We find this value in the system variable "current_session_count". The data source name of the system data source
is "System".
Information:
Not all variables can be used in placeholders! Only global variables can be used.
1. Variables from data sources that have been created by the user, i.e., you.
2. Internal variables that have been created as global.
3. The system variables "current_session_count", "active_alarm_count" and all data source status
variables.
250
QuickHMI - V9 (Gazelle) R2 05.07.2021
Placeholders for variables consist of curly brackets into which an "@" + data source name + variable name is
written. Data source name and variable name are separated by a dot. So, in this case
@System.current_session_count.
* Received e-mail
251
QuickHMI - V9 (Gazelle) R2 05.07.2021
The placeholder “@System.current_session_count” has been replaced with the value of the variable.
Incidentally, placeholders for variables work for control actions as well as for variable changes and triggered alarms.
If you make a mistake or write variables that do not exist, the placeholder is written out in plain text with the
addition that the variable was not found.
This placeholder refers to the possibility to set a cooldown time when creating a mail. It will be replaced by all
information that is created during the cooldown time. If this placeholder is missing, the information will be
written at the end of the mail or attached (From a size of 5 MB).
What is cooldown?
With the QuickHMI e-mail function, mails are sent automatically as described above. In extreme cases, this would
mean that if, for example, a variable changes 20 times per second, 20 mails are also sent per second. To prevent
this, a cooldown can be set. If "10" is entered here as an example, only one mail is sent every 10 seconds.
If further mail-triggering events occur within these 10 seconds, the sending of mails is blocked for this time. But
the information’s are not lost. They are temporarily stored and either written at the end of the mail as a summary
or attached as an attachment (From a size of 5 MB).
252
QuickHMI - V9 (Gazelle) R2 05.07.2021
In this menu, within Project explorer, you can create the translations for different languages. This allows your
project to be used by an international team. To create a translation text, at least one language must be set up.
In the “Select language” window that opens, you can set the desired language.
Now you can use the following functions: “Add entry”, “Delete entry”, “Update”, or “Add language”.
253
QuickHMI - V9 (Gazelle) R2 05.07.2021
3.17 Security
This is the center for user and rights management. Users can be created, assigned rights, and arranged into groups.
How to add users, groups, and rights, you will learn in the following sub-chapters.
In the Project explorer, click on “User” in the Security section, to add new users.
Make sure the security system is activated; this is required in order to use the “User management” functions. To
do this, the checkbox must be activated. Now a new user can be created.
Create a new user in the “User properties” window that appears. Here, you can assign a password to the user. Click
“Save changes” and the “OK” to create the user. Now you can add additional users or edit existing users.
In addition, you can assign the user a "Default language" and a "Default view", to which the user is automatically
directed when they log in. You can choose from the different views you created in advance.
254
QuickHMI - V9 (Gazelle) R2 05.07.2021
Groups can be created here in which existing rights and users can be combined. To create and manage groups, click
“Groups” under “Security” in the Project explorer.
255
QuickHMI - V9 (Gazelle) R2 05.07.2021
In the “Group properties” window that then opens, first select a “Group name” in the “Common” tab and, if
necessary, a “Description”. The entries can be “Saved” at any time. It does not matter in which tab you save the
entries. All tabs are always saved.
In the “Rights” tab, all “Available rights” are listed on the right side of the window. You can assign these to the
created group. This is done by selecting one or more rights and clicking on the left arrow. Then they will be
transferred to “Added rights”. To remove the rights from the group again, select the rights to be removed and use
the right arrow.
256
QuickHMI - V9 (Gazelle) R2 05.07.2021
Following exactly the same principle, you can assign previously created users to the created group or remove them
again. This is done in the “Members” tab of the group properties.
257
QuickHMI - V9 (Gazelle) R2 05.07.2021
To subsequently assign a group to a user, navigate to the “User properties” of the selected user and click on the
“Groups” tab. Via checkbox you can then select a previously created group to which the user should belong. (In this
example only one group is available, because only one group was created).
At this point you can also create a new group without having to go back to the “Group management”. From here,
you can immediately access the “Group properties” and save yourself this small detour. Here you proceed again as
described before.
258
QuickHMI - V9 (Gazelle) R2 05.07.2021
Here, new rights can be created, edited, or deleted. Created rights can be assigned to a group under “Groups” as
described above.
In the Project explorer, click on “Right” in the “Security” section, to manage rights.
In the “Right properties” window you can set your new permission or edit existing ones. Continue with “Save”.
259
QuickHMI - V9 (Gazelle) R2 05.07.2021
In the Project explorer, click on “Image resources” in the Media section, to add images.
260
QuickHMI - V9 (Gazelle) R2 05.07.2021
Here you can find the file dialog box, using which you can access the path to your image files. Import the desired
images by selecting individual image files. You can select several image files by holding down the “CTRL key”.
Make sure that image files can have a maximum size of 10 MB.
The images have been successfully imported and appear in the “Master data image selection” window. These
images can be deleted as needed. To do this, select one or more images and click “Delete images”. Once you have
selected the desired images, “Close” the window.
Information:
It is not possible to delete an image that is currently in use. Images that are in use are marked with a red
border.
261
QuickHMI - V9 (Gazelle) R2 05.07.2021
After you have imported the images via “Image resources”, they can then be used as image control elements.
In the Project explorer, click on “Image control” in the Media section, to create new image control elements.
In the “Image controls management”, you can generate a “New image control” by clicking on the button with that
name. You can also create several image control elements in sequence by clicking several times in a row.
262
QuickHMI - V9 (Gazelle) R2 05.07.2021
In this example, three image control elements were created. A new image control element is initially created
without a name or assigned images. To assign a name and an image to a control element, first select the relevant
image control element.
The selected image control element will appear, maximized in the image control management while the others are
minimized on the left side of the window in a list. To edit, for instance, the “Unnamed (1)” image control element,
click on the “Maximize” icon” for the corresponding control element.
Once you have selected the control element, click “Change name”.
Change the name of the image control element and continue with “OK”.
263
QuickHMI - V9 (Gazelle) R2 05.07.2021
Click “Select images” to open the “Image control - selection of images” window. Here, you can assign the images
previously imported using “Image resources” to the control element. To do this, pull the “Available images” via
Drag&Drop into the “Assigned of images”. You can also double assign the images, change their order, or pull them
into the “Recycle bin” to delete them. Once you have made the selection, “Close” the window.
When the image selection is complete, you will see a preview of the selection. Using the “Slider”, to switch between
the selected images. You will also see the numbers assigned to the images. You can perform this process with
additional image control elements.
264
QuickHMI - V9 (Gazelle) R2 05.07.2021
You will find the image control elements you created in the “Pictures” control element group after leaving the
“Image controls management”. As with the other control elements, these can be pulled, via Drag&Drop, onto the
Editor desktop.
Once the control element is selected, go to “Settings”, to e.g. set which image the control element should
represent. The first image is always assigned the number “0”.
Using the “Slider” in the “Image controls management”, you can see which image is assigned to which number.
You can change this order in any way you like, as described above.
265
QuickHMI - V9 (Gazelle) R2 05.07.2021
For this, click in the Project explorer on “Audio resources” in the Media section.
In the open dialog, select the plus icon to load the desired audio files into the software.
Select the files and click "Open". Accepted formats are .wav and .mp3.
The files have been implemented in the software and can be used with control elements and alarm variables.
266
QuickHMI - V9 (Gazelle) R2 05.07.2021
Created audio resources can be used in with control elements. For example, a sound can play when you click a
button. To do this, select the control element (in this case, a button) and create a new click event by "Actions" in
the element settings.
Then you determine which audio file is to be played when the button is clicked.
267
QuickHMI - V9 (Gazelle) R2 05.07.2021
It is also useful to use sounds in conjunction with alarms. This requires only one click.
If you create a new alarm variable, you can already assign a tone to the variable in the create window.
268
QuickHMI - V9 (Gazelle) R2 05.07.2021
If you run a project in the browser that contains audio resources, it may be that you first must activate the
authorization to play sounds in the browser settings. Due to some guidelines, the automatic playing of sounds in
the browser is prevented.
Sounds that are activated via the user are not blocked. For example, if the user pushes a button, which activate a
sound. The reason behind this is that when you open several websites, not all of them start playing sounds (music,
effects, etc.) at the same time.
But in the QuickHMI runtime mode, however, this is desired. Alarms with signal tones must be able to activate
themselves as soon as an alarm is triggered.
To give the browser permission to automatically play sounds, proceed as follows: -> The following example relates
to Google Chrome version 80.0.3987.106. With other browsers or future Google Chrome versions, the procedure
can differ from this example!
If a sound is to be played and the authorization has not yet been granted, the following message appears in the
browser: Now you can click on "Confirm" so that the sound can be played.
269
QuickHMI - V9 (Gazelle) R2 05.07.2021
In order to your browser can generally play sounds without requesting authorization again, proceed as follows in
the browser settings:
Settings / Advanced / Site Settings / Sound / Mute sites that play sound --> activate
You can also decide directly which websites may and may not
allow the automatic playing of sounds. To do this, click on "Add"
and insert the relevant URL. Internet Explorer can currently only
play Mp3's.
270
QuickHMI - V9 (Gazelle) R2 05.07.2021
How to create and edit new charts is explained in the sub-chapter “Adding and edit charts”.
With the plus button in the toolbar of the chart manager, new chart configurations can be created, or existing
configurations can be edited, duplicated, or deleted. To do this, click on the created chart and select one of the
operations via the corresponding buttons. The same can be done by right-click on the created chart.
After clicking the button to create a new configuration, a new window will pop up. You will have to choose a chart
type first. This can be either a “Colum/Line Chart” or a “Pie chart”.
271
QuickHMI - V9 (Gazelle) R2 05.07.2021
Name
Every chart configuration needs a unique name. Should you choose an already taken name an incrementing
number will be added.
Advanced settings
Legend
Determines if a legend is shown. If it is shown the position can be changed as well.
Show title
Determines if the name of the chart configuration is shown above the chart.
272
QuickHMI - V9 (Gazelle) R2 05.07.2021
Disable animations
Disables the animations of the chart to conserve system resources.
Toolbox
The toolbox offers some tools useful for using the chart. These tools can be switched on or off
independently:
Data view
Shows the in the chart visualized data as plain text. Useful for copying data to Excel for
example since columns are already present.
Restore
Restores zoom and pan.
Save as image
Saves the current chart as a PNG file
Reset data
Deletes existing records from the charts
273
QuickHMI - V9 (Gazelle) R2 05.07.2021
In the user interface for adding or editing line and bar charts you can see three columns. One column for X-Axis, Y-
Axis, and Data series, respectively. A button located above each column is used to add a new item to the list below.
These elements can be edited and deleted either via their context menu or by pressing the Delete key or double-
clicking
The graphic above shows the configuration of a simple graph representing the value of a single variable over
time.
274
QuickHMI - V9 (Gazelle) R2 05.07.2021
3.19.1.1.1 X-Axis
For now, only a single x-axis is supported. Whether or not multiple x-axis are supported in the future is currently in
discussion.
There are three types of x-axis: Time, category and value. These are their common settings:
Name
Each x-axis needs a name. Whether this name is shown in the chart later is determined by the checkbox
“Show” right next to the input field.
Grid lines
Grid lines are lines originating from the corresponding axis. Grid lines help reading values of data points.
To hide grid lines the width can be set to 0.
Color
The color of the axis line as well as its labels.
Time axis
The displayed range of a time axis can be changed. If and if so, how the range can be changed by the user is
determined in the tab “Zoom & Pan”.
The slider is a useful tool to quickly change the zoom level as well as the displayed range.
Instead of using the slider the mouse can also be used to change the displayed range. Different hot keys can be
selected for the zoom and pan features.
275
QuickHMI - V9 (Gazelle) R2 05.07.2021
Category axis
Categories
To better understand what is meant by “categories” here a little demonstration:
In this example the categories are “Tank1”, “Tank2”, and “Tank3”. Each category has 2 values assigned to it
(pressure and heat).
Value axis
The value axis is the last supported type of x-axis. It is used to show the correlation between two independent
values. So, instead of showing the change of a value over the course of time this type can be used to show the
change of a value over the change of another value.
Other than other x-axis types the value axis can have a determined value range. For example, the temperature of
liquid water will (under normal conditions) never exceed 100° Celsius or fall below 0°C. So, it’d make sense to limit
the axis to these values.
By default, the range is dynamic and will change depending on the values displayed.
The zoom & pan features are the same as those for the time axis.
276
QuickHMI - V9 (Gazelle) R2 05.07.2021
3.19.1.1.2 Y-Axis
Name
Since a chart can have multiple y-axis it is necessary for every axis to have unique name. If a name is already
taken you will be notified when trying to save.
Whether this name is shown in the chart later is determined by the checkbox “Show” right next to the input
field.
Position
Determines whether the axis is displayed to the left or the right of the chart.
Range
Just like the x-axis (of type value) the y-axis can either have a dynamic or static range. By default, the range
is set to be dynamic.
Color
The color of the axis line as well as its labels.
Grid lines
Grid lines are lines originating from the corresponding axis. Grid lines help reading values of data points.
To hide grid lines the width can be set to 0.
277
QuickHMI - V9 (Gazelle) R2 05.07.2021
The options available for data series depend on the selected x-axis type. So, please note the comments in the
documentation below describing which options are available for which types.
Name
The name of a data series must be unique within a chart configuration. This name will be used in the legend.
X-axis
Determines which x-axis to use for this data series.
Y-axis
Determines which y-axis to use for this data series.
Value
Determines the variable which value will be used.
Properties of the line can be changed under the line tab. Furthermore, there are options to limit the maximum
amount of data stored in a single series.
In the upper part there are options to change the “Width”, “Color” and “Type” of the line. Also, you can set whether
the area under the lines should be filled in or not. For this, use the relevant checkbox.
278
QuickHMI - V9 (Gazelle) R2 05.07.2021
The data limit determines the maximum age of data points and/or the amount of all data points in this series. These
options can be used to limit the amount of data for a single series. This is useful since very large amounts of data
can affect the performance of the Viewer.
By default, there is a time limit set as well as a maximum amount. Whatever limit is reached first will lead to the
first data points being deleted. To disable this limitation use “0” as the limit.
In the lower part there are options to customize the “markers”. The size as well as the shape of markers can be
changed. To hide markers the size can be set to “0”.
The checkbox “Show values” determines whether the value of the corresponding data point is shown next to the
marker.
Pie charts are a lot simpler to configure. There is only one column on the user interface to add data areas. Every
data area represents a single value.
Name
The name must be unique within this chart configuration. This name will also be displayed in the legend.
Value
Determines the variable which value will be used.
Color
Determines the color of the data area.
279
QuickHMI - V9 (Gazelle) R2 05.07.2021
The chart control element can be dragged and dropped on a page like every other control element.
The chart control element has a property called “ChartConfiguration”. This property is used to determine which
configuration to display on this control element.
To create a new chart, a data source with variable must be created in advance, which can be displayed in the chart.
After this, the new chart can be created by clicking on the "Chartmanager".
At first set a name for the chart. (In this example "Test".)
280
QuickHMI - V9 (Gazelle) R2 05.07.2021
Set the values for the X-axis and continue with "OK".
Set the values for the Y-axis and continue with "OK".
Finally, under "Data series" in the "Common" tab, select the previously created data source with variable whose
values are to be accessed.
281
QuickHMI - V9 (Gazelle) R2 05.07.2021
In the "Line" tab, you can set further specifications for the diagram. Set both the "Width", "Color" and "Type" of
the chart, as well as the size of the dots on the data lines ("Markers"). Also, you can set whether the area under the
lines should be filled in or not. For this, use the relevant checkbox.
In addition, you can set the "Time" and "Amount" of data for the "Live data limit". The live mode of the chart is the
mode in which the chart is updated every second. Because updating for large amounts of data would require
considerable resources every second, the data volume for live charts can be limited here.
When all entries have been set, continue with "OK" and close the "Chart manager".
In the "Project settings" you can also set, how many days the data should be saved and thus be visible. "Save" your
setting to continue.
282
QuickHMI - V9 (Gazelle) R2 05.07.2021
Project ID:
Generating a project-dependent ID has the meaning that databases for saving the chart data no longer depend on
the saved project name, but on the generated "Project ID". So, the same data can be accessed in several projects
using the ID. (Previously, a new database was created for each new project.)
To do this, enter the "Project ID" of the project whose data is to be used and confirm with "Save". The reverse case
is also conceivable: If a project becomes "Save as", the “Project ID” is also included. By default, the same data
would be used as the basis for the charts, as for the old project.
If you want to start with the new project but with a fresh database, simply generate a new random "Project ID"
with the button "Generate".
283
QuickHMI - V9 (Gazelle) R2 05.07.2021
To display the data in a chart, select the chart control element under "Controls" and drag and drop it onto the
editor desktop. In the "Properties" of this control element, assign the created "ChartConfiguration" "Test".
284
QuickHMI - V9 (Gazelle) R2 05.07.2021
Start the runtime mode in the QuickHMI Viewer or in a browser of your choice.
Everything about the runtime mode, you will find in “Runtime mode” sub-chapter.
The runtime mode is executed, and the incoming data are displayed in real time in the chart.
285
QuickHMI - V9 (Gazelle) R2 05.07.2021
Also, you can set which time period is displayed in the diagram. Click with the left mouse button on the diagram
and select the desired period.
286
QuickHMI - V9 (Gazelle) R2 05.07.2021
For an even better overview, you can "Show server downtimes". To do this, set the relevant check mark in the
advanced settings of the chart editing. It is also possible to disable the animations of the diagram to save system
resources.
287
QuickHMI - V9 (Gazelle) R2 05.07.2021
Information:
In the opened "recipe editor" you can create a new recipe. At first you can set the name. Continue with clicking on
the Green Cross icon for "Add recipes entry".
288
QuickHMI - V9 (Gazelle) R2 05.07.2021
By clicking on the user icon, you will be taken directly to the user management. Here, you can determine which user
has access to created recipes.
Information:
The administrator is assigned by default the login "admin" and the password "admin". To change the
password, click in the user's column "Administrator" and select "Change admin password ...".
289
QuickHMI - V9 (Gazelle) R2 05.07.2021
In addition, you can determine by the activation of the checkbox, to authorize the user only a readability. If all
information about the new user has been entered, "Apply" the data.
To carry out the saving process, the user has to log in.
The recipe is saved as a .qre file and can be loaded in
the recipe management.
290
QuickHMI - V9 (Gazelle) R2 05.07.2021
To run and test the application, click on "Runtime" in the menu. Here you can start the runtime in different modes.
You have the choice between "Web Viewer", "Desktop Viewer" and "Server only". The 3 runtime buttons are
available for this.
Web Viewer:
The visualization server starts and shows the user interface in a selected browser.
You can set with which browser installed on your system the project is displayed. The selected browser is displayed
as an image for the Web Viewer button.
291
QuickHMI - V9 (Gazelle) R2 05.07.2021
Desktop Viewer:
The visualization server starts and shows the user interface in the QuickHMI Viewer desktop application.
Server only:
The visualization server starts without showing the use interface. You can connect to the server using any browser,
our QuickHMI Desktop Viewer or our QuickHMI Android App.
Ports:
In addition, you have the option to determine which initial zoom level is to be used and which ports are to be used.
You can also set the data compression between the server and the browser and set the maximal java heap size.
A detailed description of the settings can be found in the "Project settings" sub-chapter.
292
QuickHMI - V9 (Gazelle) R2 05.07.2021
Simulation:
You can use the "Simulation" button to activate the data source simulation. Have random values of your variables
simulated or set them manually. In this window all created data sources appears and can be activated for the
simulation via the checkbox.
293
QuickHMI - V9 (Gazelle) R2 05.07.2021
On-screen keyboard:
For devices without physical keyboards, it´s possible to show an on-screen keyboard as soon as an input field is
market. Here you can set the layout to be used for this keyboard.
The layout can also be changed directly during runtime. This is done by using a parameter in the URL. How this
works you can find out in the "On-screen keyboard" chapter of this documentation.
294
QuickHMI - V9 (Gazelle) R2 05.07.2021
Directly after starting the runtime mode, a loading window opens with various functions. It shows the status of the
ports and the status of the data sources that were created.
You have the option to click on the red X to return to the data
source settings in order to make changes here. Changes will
activate when the runtime is restarted!
295
QuickHMI - V9 (Gazelle) R2 05.07.2021
The runtime mode starts automatically when all components have been loaded. You can also access the log entries
in the loading window. For stop the runtime mode, use the “Stop” button.
For example, if you start the runtime mode in the browser, it will open automatically when all components are
loaded. You can also open the browser by clicking directly on the active port or copying the web address by clicking
the Document Icon.
This is useful if you want to open the project in a browser other than the default one. Here the address can be
simply inserted, and the project is started.
296
QuickHMI - V9 (Gazelle) R2 05.07.2021
To configure a project with the QuickHMI Runtime Manager (Part of the QuickHMI Standalone Runtime) on a
server, the project file must be exported.
Select the save location and a name for the .qexp file and click Save.
Information:
If you have created own JDBC drivers, they are automatically exported and imported into the server. When
using the security system, users are automatically exported. If users already exist in the Runtime Manager,
in import process will asked if they should be overwritten or not.
297
QuickHMI - V9 (Gazelle) R2 05.07.2021
Shortcut Function
Crt + N New project
Crt + O Open project
Crt + S Save project
Crt + Shift + S Save as
Crt + P Print displayed page
Crt + C Copy selected elements
Crt + X Cut out selected elements
Crt + V Paste elements
Crt + A Selected all elements
Arrow Key (Left) Move selected element to the left
Arrow Key (Right) Move selected element to the right
Arrow Key (Up) Move selected element to the up
Arrow Key (Down) Move selected element to the down
Delete Delete selected element
F1 Open the online help
F7 Starting runtime
F8 Closing runtime
Crt + Mouse wheel up Zoom in
Crt + Mouse wheel down Zoom out
Crt + Mouse wheel up (by selected element) Rotation + 10°
Crt + Mouse wheel down (by selected element) Rotation - 10°
Crt + Shift + Mouse wheel up (by selected element) Rotation + 1°
Crt + Shift + Mouse wheel down (by selected element) Rotation - 1°
298
QuickHMI - V9 (Gazelle) R2 05.07.2021
and all about using the QuickHMI Server (Part of the QuickHMI Standalone Runtime) on the Raspberry Pi.
You must configure the project on a server to make it accessible by QuickHMI Viewer clients. For this you’ll need
the .qexp file of your project. This can be exported from the QuickHMI Editor. The configuration of a project is done
with the QuickHMI Runtime Manager.
How to export a .qexp file is explained in the "Export the project for the server" chapter.
The QuickHMI Runtime Manager is divided into the regions "Server" and "Project".
299
QuickHMI - V9 (Gazelle) R2 05.07.2021
In the "Server" section, you have the option to import your own certificates. Licenses, especially for the QuickHMI
Runtime Manager, no longer have to be imported. There is only ONE Editor license that applies to everything.
Therefore, no extra runtime license is needed anymore, and the license tab is greyed out and can no longer be
selected.
You have the option to receive your license as a Dongle (a copy-protected USB stick). When the Dongle is connected
to the PC or server, the license is automatically activated. Until the Dongle is removed again.
Adding certificates
In the "Certificates" region, you can "Select" your own certificates. Standard certificates are included with the
software.
300
QuickHMI - V9 (Gazelle) R2 05.07.2021
In the "project" region of the QuickHMI Runtime Manager projects can be configured and start their service. In
addition, users and recipes can be managed. If you are in the "Project" area, you can configure a project created
with the QuickHMI Editor in the "Info" tab.
To do this, click on "Configure project" and select the previously exported qexp. File.
The service is running and can be stopped at any time. So, your project has been successfully set up and can be
executed with the QuickHMI Viewer.
301
QuickHMI - V9 (Gazelle) R2 05.07.2021
If the service is started, any errors that occur in the data sources are displayed. You can view these in detail by
clicking on the warning symbol.
If the configured project and the QuickHMI Runtime Manager have a different version, a corresponding info will
show. This usually does not affect the function but should be corrected by a software update.
302
QuickHMI - V9 (Gazelle) R2 05.07.2021
If you have created users in your project, you can access the user management directly.
Double-click on a “user” to edit their user data. Assign a new password to the user and set the maximum number
of incorrect login attempts. "Save" to continue.
303
QuickHMI - V9 (Gazelle) R2 05.07.2021
"Recipes" gives you the possibility to select recipes which were created in advance. Click “Browse” and navigate to
the location where the recipe is saved.
304
QuickHMI - V9 (Gazelle) R2 05.07.2021
Here you get to the settings and have the following options:
Ports:
Set the ports over which your project should be accessible. Multiple ports must be separated by semicolons.
Compression:
Data sent between server and client, can be compressed to improve transfer speed. How the data is compressed,
is set here. The performance depends on the compression.
305
QuickHMI - V9 (Gazelle) R2 05.07.2021
Java:
The Java maximal heap size determines how much memory the JVM (Java Virtual Machine), and therefore our
server, can allocate. Given too much memory the server might don´t start at all. Given to less it might later.
Java settings need only be changed if recommended by the software. Otherwise usually no changes need to be
made.
How much memory is needed mainly depends on the project size. We recommend to only these values with
caution.
306
QuickHMI - V9 (Gazelle) R2 05.07.2021
Here you will find all data sources of the project. You can edit these at any time. Change the IP, as well as the rack
and slot values. When you finish, click on "Refresh".
307
QuickHMI - V9 (Gazelle) R2 05.07.2021
Here you will find information about the current version of the QuickHMI Runtime Manager, contact details and
support.
Log files
Log messages from the editor are logged in the designated “messages” window.
The QuickHMI Server and the QuickHMI Runtime Manager are logging to their respective files which are
located in the following directories:
Windows:
Linux:
308
QuickHMI - V9 (Gazelle) R2 05.07.2021
You can find the download for the image in our download section at
https://www.quickhmi.com/download.html
The image is delivered with the following standard login information for theuser "pi":
User: pi
Password: raspberry
Of course, you can also perform the manual installation on a Raspberry as described below.
The installation of the QuickHMI - Server on a Linux distribution is done via the terminal. Please note the system
requirements for Linux! Open a terminal or connect to your Linux system via SSH access.
The commands to be executed may differ from distribution to distribution. The commands in this manual are based
on Linux Ubuntu.
1. Install an openJDK runtime environment. Runtime environments from version 11 on are supported.
2. If you want to use the graphical runtime manager, install openjfx. Otherwise, you can skip this step.
sudo apt-get install openjfx
3. Create a new user quickhmi with the password indi. This user will be used to start the QuickHMI Server.
username="quickhmi"
password="indi"
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
sudo useradd -m -p $pass $username
309
QuickHMI - V9 (Gazelle) R2 05.07.2021
5. Download the QuickHMI Server package. Instead of using the wget command, you can of course
download the file on another computer first, and then copy it into the current directory
(/home/quickhmi).
sudo rm QuickHMIServer.tar
11. You can now delete the folder /home/quickhmi/QuickHMIServer/usr. It is no longer needed here.
sudo rm -rf QuickHMIServer/usr
310
QuickHMI - V9 (Gazelle) R2 05.07.2021
13. You can now delete the order /home/quickhmi/QuickHMIServer/etc. It is no longer needed here.
sudo rm -rf QuickHMIServer/etc
311
QuickHMI - V9 (Gazelle) R2 05.07.2021
5 QuickHMI Viewer
The QuickHMI Viewer allows you to view and simulate the projects configured in the QuickHMI Runtime Manager
(Part of the QuickHMI Standalone Runtime) to check their functions. Projects can be viewed using the QuickHMI
Desktop Viewer, the QuickHMI Android App, or in the browser.
The QuickHMI Viewer is now available to you as an open source project and can be freely adapted to your
corporate design or integrated into your existing software.
312
QuickHMI - V9 (Gazelle) R2 05.07.2021
After starting the QuickHMI Desktop Viewer you are on the home page, from which you can execute basic
functions.
These include:
Open a connection
313
QuickHMI - V9 (Gazelle) R2 05.07.2021
The main menu offers you quick access to the basic program and project functions.
File
Here you will find the settings for selecting a language as well as determining the update behavior. After changing
the language, the QuickHMI Viewer has to be restarted. Now it effectively changed.
Help
By clicking on “Help” / “Info”, you can display information on the QuickHMI version you are using. You can also
contact us here. You can exit the “Info” by clicking on “OK” or closing the window.
314
QuickHMI - V9 (Gazelle) R2 05.07.2021
Now you can determine the name, the host, and the desired port.
315
QuickHMI - V9 (Gazelle) R2 05.07.2021
In the window that then opens, you have the option of choosing between the existing connections.
In addition, recently opened connections appear on the home page for quick access.
If you hover the mouse over the displayed connections, icons will appear via which you can edit or remove the
connection.
316
QuickHMI - V9 (Gazelle) R2 05.07.2021
Now you can execute and visualize the actions you have assigned to the control elements. To exit the runtime
mode, stop the application as described in the "Loading screen" chapter.
317
QuickHMI - V9 (Gazelle) R2 05.07.2021
1 2 3 4
3. Here you have the option of navigating to views with just one click, which you previously created in the
“Quick HMI Editor”. With the arrows you can go back one step before and one step.
4. Zoom on complete page = Displays the complete page with all elements.
318
QuickHMI - V9 (Gazelle) R2 05.07.2021
5 6 7 8
5. Here you activate the on-screen keyboard. For more information, see the "Starting runtime mode" and
"Web Viewer - On-screen keyboard" chapters in this documentation.
6. Here you will find the log entries that you can show and hide. These can be messages of any kind.
7. In case of incoming alarms, you can open and view the QuickHMI Alarm Centre here. In addition, you have
the option to download the alarm list as an Excel file via the "CSV" button. You can find this button in the
upper right corner of the alarm center.
To zoom, you can use the slider in the lower left corner or by holding CRTL and turning the wheel on the mouse.
The zoom level is displayed in the lower left corner.
To move the screen, move the image with the left mouse button while holding down the Ctrl key.
319
QuickHMI - V9 (Gazelle) R2 05.07.2021
You have the option of starting the Desktop Viewer with the following start parameters:
„-locahost“
The viewer automatically connects to the localhost at startup (127.0.0.1).
„-ssl“
If this parameter is given at the start, the connection is established automatically secured seted up.
The parameter "machinemode" must be given a password. (In the example above "Password"). Only by
entering this password, the machine mode can be stopped. The password does not have to be entered in
any text field. It can be entered in each form.
Windows
Create a shortcut to the QHMIViewer.exe. Open the properties of this shortcut (Right click -> Properties).
In the input field „Target“, you can see the path to the exe file. After this path you can add the parameters
described above separated by whitespaces.
Linux
Depending on the desktop environment, creating a shortcut will be different. After creating the link, expand
the command at the end (after "..qhmi_viewer.jar") by the desired parameters.
320
QuickHMI - V9 (Gazelle) R2 05.07.2021
The installation of the QuickHMI Viewer on a Linux distribution is done via the terminal. Please note the system
requirements for Linux!
The commands to be executed may differ from distribution to distribution. The commands in this manual are based
on Linux Ubuntu.
1. Install an openJDK runtime environment. Runtime environments from version 11 on are supported.
2. Install openjfx.
4. Download the QuickHMI Viewer package. Instead of using the wget command, you can of course
download the file on another computer first, and then copy it into the current directory
(/home/quickhmi).
sudo wget https://www.quickhmi.de/linux/gazelle/QuickHMIViewer.tar
sudo rm QuickHMIViewer.tar
If you want to make the command qhmiViewer directly executable from any directory, create a symbolic link to the
file qhmiViewer.sh in the directory /usr/bin/.
321
QuickHMI - V9 (Gazelle) R2 05.07.2021
Select in the “Runtime” menu “Web Viewer” as a runtime mode. Now you can determine which browser on your
system will be started to run the application. You can also open the application in all browsers.
Click “Start”.
The project will open in a browser of your choice. Supported browsers are currently Firefox, Chrome, Opera,
Microsoft Internet Explorer, and Microsoft Edge.
The project view of the Web Viewer is identical to the project view of the Desktop Viewer.
322
QuickHMI - V9 (Gazelle) R2 05.07.2021
Start your browser and enter the address of your server in the address bar, with the information you have set:
https://YourServerIpOrHostname:Port
http://YourServerIpOrHostname:Port
The Java application will be started and will run in runtime mode.
Now you can execute and visualize the actions you have assigned to the control elements. To exit the runtime
mode, stop the application as described in the "Loading screen" chapter.
The user interface of the Web Viewer is identical to that of the Desktop Viewer.
For details see the chapter "Desktop Viewer - Executing the runtime".
323
QuickHMI - V9 (Gazelle) R2 05.07.2021
Information:
If you use the QuickHMI Viewer as a runtime mode and close it again, the runtime will also be closed
automatically. By the Web Viewer, the Runtime must be stopped manually. The runtime mode is only
available for checking the development and ends after 30 minutes automatically.
To activate the on-screen keyboard, use the button for the on-screen keyboard as shown in the chapter "Web
Viewer - Executing the runtime" chapter. Alternatively, you can also activate them using the parameter in the URL.
https://indi_laptop_user:6062/?onscreenkeyboard=qwertz
A new parameter is initiated with the "?". This is entered after the URL (separated from the URL with a "/"). The
parameter "onscreenkeyboard", which is entered after the "?", causes the runtime to be started with the activate
on-screen keyboard. Depending on the country and language, you can enter the relevant keyboard layout.
You can also change the layout directly in the runtime menu of the QuickHMI Editor. For information on how to do
this, see the section "Starting runtime mode" in this documentation.
324
QuickHMI - V9 (Gazelle) R2 05.07.2021
alpha
qwerty
international
colemak
dvorak
ms-Albanian
ms-Arabic (101)
ms-Arabic (102)
ms-Arabic (102) AZERTY
ms-Armenian Eastern
ms-Armenian Western
ms-Assamese-INSCRIPT
ms-Azeri Cyrillic
ms-Azeri Latin
ms-Bashkir
ms-Bosnian (Cyrillic)
ms-Belarusian
ms-Belgian (Comma)
ms-Belgian French
ms-Bengali
ms-Bengali - INSCRIPT (Legacy)
ms-Bulgarian (Phonetic Traditional)
ms-Bulgarian (Phonetic)
ms-Bulgarian (Typewriter)
ms-Canadian French
ms-Canadian French (Legacy)
ms-Canadian Multilingual Standard
ms-Chinese Bopomofo IME
ms-Chinese ChaJei IME
ms-Czechms-Czech (QWERTY)
ms-Czech Programmers
ms-Danishms-Devanagari - INSCRIPT
ms-Divehi Phonetic
ms-Divehi Typewriter
ms-Dutchms-Estonian
ms-Faroese
ms-Finnish
ms-French
ms-Gaelic
ms-Georgian
ms-Georgian (Ergonomic)
ms-Georgian (QWERTY)
ms-Germanms-German (IBM)
ms-Greek
ms-Greek (220)
ms-Greek (220) Latin
ms-Greek (319)
ms-Greek (319) Latin
ms-Greek Latin
ms-Greek Polytonic
325
QuickHMI - V9 (Gazelle) R2 05.07.2021
ms-Greenlandic
ms-Gujarati
ms-Hausa
ms-Hebrew
ms-Hindi Traditional
ms-Hungarian
ms-Hungarian 101-key
ms-Icelandic
ms-Igbo
ms-Inuktitut - Latin
ms-Inuktitut - Naqittaut
ms-Irish
ms-Italian
ms-Italian (142)
ms-Japanese Hiragana
ms-Kannada
ms-Kazakh
ms-Korean
ms-Kyrgyz Cyrillic
ms-Lao
ms-Latin American
ms-Latvian
ms-Latvian (QWERTY)
ms-Lithuanian
ms-Lithuanian IBM
ms-Lithuanian Standard
ms-Luxembourgish
ms-Macedonian (FYROM)
ms-Macedonian (FYROM) - Standard
ms-Malayalam
ms-Maltese 47-Key
ms-Maltese 48-Key
ms-Maori
ms-Marathi
ms-Mongolian Cyrillic
ms-Mongolian (Mongolian Script)
ms-Nepali
ms-Norwegian
ms-Norwegian with Sami
ms-Oriya
ms-Pashto (Afghanistan)
ms-Persian
ms-Polish (214)
ms-Polish (Programmers)
ms-Portuguese
ms-Portuguese (Brazilian ABNT)
ms-Punjabi
ms-Romanian (Legacy)
ms-Romanian (Programmers)
ms-Romanian (Standard)
ms-Russian
ms-Russian (Typewriter)
326
QuickHMI - V9 (Gazelle) R2 05.07.2021
327
QuickHMI - V9 (Gazelle) R2 05.07.2021
With the QuickHMI Android App, you can run the projects configured in the QuickHMI Runtime Manager. Go to
the Google Play Store and download the QuickHMI Android App.
* App pictures
328
QuickHMI - V9 (Gazelle) R2 05.07.2021
On starting the app, you will find yourself on the home page from which you can execute basic functions.
These include:
329
QuickHMI - V9 (Gazelle) R2 05.07.2021
To open a new connection, use the Blue Cross icon. The mask for entering a new connection open.
The standard port is automatically stored in the mask. This usually does not have to be changed. Unless different
projects are running on the device at the same time.
Under "Host" first select the host (private ID) on which the project was configured. The name of the connection is
the same as the host name by default. However, the name can be changed individually. To do this, write the host
name directly in the "Name" section.
330
QuickHMI - V9 (Gazelle) R2 05.07.2021
Furthermore, you have the option of activating SSL encryption for the connection you have created. Use the
checkbox. The same applies to the option to let the created connection open automatically when starting the app.
331
QuickHMI - V9 (Gazelle) R2 05.07.2021
In order to connect to the project with the QuickHMI Android App, the interface must first be activated. This can
be done either in the QuickHMI Editor under "Runtime" or in the QuickHMI Runtime Manager.
The app connects to the project and you have following options.
332
QuickHMI - V9 (Gazelle) R2 05.07.2021
Open the alarm center by clicking on the bell and get a detailed overview of all alarms.
Open the overview of the log entries by clicking on the corresponding icon and get a detailed overview of all log
entries.
If your project has headers and footers, they can be shown/hidden by clicking the buttons on the upper and lower
edges of the screen.
Information:
If you leave the app when a project is open, it will continue in the background. So, you remain logged in and
informed by alarm notification. This also means that you are still logged in to the server and occupy a slot.
(Note maximum number of clients) If you leave the project via the back button and leave the app from the
main menu, you will be logged out and the slot on the server will be free.
333
QuickHMI - V9 (Gazelle) R2 05.07.2021
6 Overview
6.1 System requirements for QuickHMI
Hardware system requirements
QuickHMI Editor:
334
QuickHMI - V9 (Gazelle) R2 05.07.2021
Operating systems
QuickHMI Editor:
The QuickHMI Editor is executable under Windows 7 or Windows Server 2008 R2 or higher. The .NET Framework
4.5.2 is required for the execution. If this is not available, you will be informed during the setup and you will continue
to be given the option of an installation. Depending on the operating system, it may be necessary to activate the
.Net framework 3.5 before installing it under Windows. must be done manually. In this case, you will receive a
message from the setup.
The QuickHMI Standalone Runtime and the QuickHMI Viewer work on Windows and Linux, if the Java OpenJRE 12
is supported by the operating system. Furthermore, there is an app available for Android, which can be executed
from version 4.4 (Kitkat). For the execution of the QuickHMI Standalone Runtime and the QuickHMI Viewer
requires Java OpenJRE 12 or later.
Execution by browser:
The system can be invoked by all operating systems that provide an HTML5-capable browser. The following
browsers are tested and released for the compatibility with QuickHMI:
The use of other browsers may be limited, but not recommended. The browser should be installed in the newest
possible version and kept up to date.
335
QuickHMI - V9 (Gazelle) R2 05.07.2021
Siemens S7 controllers (200, 300, 400, 1200, 1500 series and SoftSPS WinAC RTX), Logo!0BA7 and
Logo!0BA8 and CPU´s of other manufacturers (eg VIPA 100V / 200V / 300V / 300S)
OPC UA interface
TWINCAT2 from version 2.1 and TWINCAT3 is supported *1)
MODBUS TCP, RTU, RTU over TCP or ASCCI
Allen-Bradley “Control Logix” or “Compact Logix” PLCs via the Ethernet/IP protocol
KNX/EIB
MQTT-Protocol
SQL databases using JDBC
Files from the file system with the file system data source
Native migration of additional protocols is planned.
*1) TWINCAT data sources are not executable under Linux. If these are to be executable under Linux, the use of OPC UA data
sources is recommended.
336
QuickHMI - V9 (Gazelle) R2 05.07.2021
337
QuickHMI - V9 (Gazelle) R2 05.07.2021
Illustrate technical processes using the QuickHMI Editor. All data and functions are provided in a .qexp file for the
server.
Set up the project file created in the editor on the system's server. This is done using the QuickHMI Runtime
Manager (Part of the QuickHMI Standalone Runtime).
View and manage all your system’s processes with the QuickHMI Viewer, Web Viewer, and the QuickHMI Android
App.
338
QuickHMI - V9 (Gazelle) R2 05.07.2021
0421 - 98 97 03 - 30
info@indi-systems.de
QuickHMI.com
339