OrangeApps - Myhmi.user - en V1.7
OrangeApps - Myhmi.user - en V1.7
OrangeApps - Myhmi.user - en V1.7
myHMI
Customized HMI via XML
Version 1.2
User Manual
© Copyright 2021
OrangeApps GmbH
Arnikaweg 1
87471 Durach
Germany
www.orangeapps.de
This documentation may be reproduced - including extracts - and made accessible to third
parties. In the case of partial reproduction, however, a reference to the copyright holder and
this document must be noted
The contents of this document have been tested with the described software. Since deviations
cannot be excluded, no guarantee for full compliance can be taken.
Documentation validity
Document version software version released by Date
from to
1.7 1.2 Mayer 01/27/2021
Contents
1 Initiation .......................................................................................... 6
1.1 Target group ..................................................................................................................6
1.2 Representation of information ....................................................................................6
1.3 Terminology used .........................................................................................................6
2 Overview ......................................................................................... 7
2.1 Product Description......................................................................................................7
2.2 Characteristics ..............................................................................................................7
2.3 Scope of delivery ..........................................................................................................8
2.4 Application area / environment ...................................................................................8
2.5 CPC ................................................................................................................................8
3 Installation ...................................................................................... 9
3.1 System Requirements for running ..............................................................................9
3.1.1 Installation via Work Visual .................................................................................. 9
3.1.1.1 Install or update MyHMI ............................................................................... 9
3.1.1.2 Uninstall MyHMI......................................................................................... 11
3.1.2 Installation via smartHMI ................................................................................... 13
3.1.2.1 Install or update MyHMI ............................................................................. 13
3.1.2.2 Uninstall MyHMI......................................................................................... 14
3.2 Installed files .............................................................................................................. 14
4 Licensing ...................................................................................... 16
4.1 Robot License ............................................................................................................ 16
4.2 License for KUKA OfficePC/OfficeLite .................................................................... 16
6 Demo HMI...................................................................................... 62
6.1 Screenshots ............................................................................................................... 62
9 Appendix ....................................................................................... 87
9.1 Messages from myHMI .............................................................................................. 87
9.2 License messages ..................................................................................................... 87
1 Initiation
Term Description
The Human-Machine Interface (HMI) is an interface that a person
HMI
communicates via a machine.
2 Overview
Every HMI is specified by a xml-file which contains the specific entries. The xml-file can be
edited with a standard text editor. A plugin interprets the entries in the XML file, and represents
the elements in tabular form on an HMI. The user thus does not require any knowledge of
programming of plugins and HMIs.
Any number of XML files and therefore any number of HMIs can be generated. Each HMI is
called up via a menu entry in the main menu of the robot. You can choose between half or full
size display. The HMI fits seamlessly into the robot system. All standard menu and control
elements remain fully operable. For easy creation of the menu entries, a comfortable menu
assistant is available.
To enable a thematic separation within an HMI, the content can be distributed to a maximum
of 5 tabs pages. Each tab can display 32 items.
The entire HMI supports multiple languages, so that a dynamic language switching is possible.
Changed values by the operator are recorded in the logbook KUKA. (Diagnosis/Logbook).
For the creation of the menu entries of each HMI there’s a menu assistant available. Thus, no
knowledge of the menu creation is necessary.
2.2 Characteristics
• the software can easily be installed using the KUKA standard installation procedure
• New feature since 1.2: open and close of HMI directly from KRL, auto start on
controller startup and depending on changing operation mode and user level
• Installation via WorkVisual
▪ Plugin
▪ User documentation for the installation and operation of the software
▪ Plugin menu assistant
To help users get started, the setup package contains a sample HMI with the following files:
Information about the use of the software on older machines is available from
[email protected].
3 Installation
Since version V1.2.5 the software is delivered as a KUKA Option Package (KOP).
The installation is done either via WorkVisual or via the additional software option which is
located in the main menu under start-up.
If the technology is to be installed on KRC4 robots with KSS version older than 8.3.23, this
version is available from us. Please contact us.
The option package is then added to the project in WoV and automatically installed on the
robot controller when the project is transferred.
In the event of an update, the previous version of the option package must first be uninstalled
in WoV. All associated data should be archived before an update.
Requirement
▪ At least user group Expert
▪ Operating mode T1 or T2
▪ No program is selected
▪ Network connection to the robot controller
▪ The KOP file of the software
Method
1. Only for an update: Uninstall the previous version of the MyHMI option package in
WorkVisual.
2. Install the MyHMI option package in WorkVisual.
3. Load the project from the robot controller.
4. Add the MyHMI option package to the project.
5. Deploy the project from WorkVisual to the robot controller and activate it.
6. The request for confirmation Do you want to activate the project […]? is
displayed on the smartHMI. When activated, the active project is overwritten. If no
relevant project is overwritten: Confirm the query with Yes.
7. An overview with the changes and a request for confirmation is displayed on the
smartHMI. Answer this with Yes. The option package is installed and the robot
controller performs a restart.
LOG file
A LOG file is created under C:\KRC\ROBOTER\LOG.
Requirement
▪ At least user group Expert
▪ Operating mode T1 or T2
▪ No program is selected.
▪ Network connection to the robot controller
▪ The option package is available as a KOP file.
Method
1. Load the project from the robot controller.
2. Add the MyHMI option package to the project.
3. Transfer the project from WorkVisual to the robot controller and activate it.
4. The request for confirmation Do you want to activate the project […]? is displayed on
the smartHMI. When activated, the active project is overwritten. If no relevant project is
overwritten: Confirm the query with Yes.
5. An overview with the changes and a request for confirmation is displayed on the
smartHMI. Answer this with Yes. The option package is uninstalled and the robot
controller performs a restart.
LOG file
A LOG file is created under C: \ KRC \ ROBOTER \ LOG.
Method
Installation takes place via commissioning → Additional software in the main menu.
1. Copy the KOP file either to a USB stick or directly to a drive of the target system (e.g. d:
\).
2. When installing from a USB stick, connect it to the control PC or the smartPad.
3. In the main menu select Startup → Additional software.
4. Click the button New Software
5. You will receive a list of software available for installation. If there is no entry
OrangeApps.MyHMI in the list, click on Refresh. If the entry is now displayed, continue
with step 8.
6. If the entry is not displayed, the drive from which the software is to be installed must first
be configured. To do this, choose Configuration. In a new window you can now select
the path under which the OrangeApps.MyHMI option package can be found.
7. In the area Installation paths for options, highlight an empty cell and choose Path
Selection. The existing drives are displayed. Select the drive where the
OrangeApps.MyHMI option is available and save your selection with Save. The window
closes. An entry OrangeApps.MyHMI should now appear in the list. If this is not the
case, press Update and / or repeat steps 7 and 8.
8. Highlight the OrangeApps.MyHMI entry and press Install. Confirm the installation
instructions with OK
9. The request for confirmation Do you want to activate the project […]? is displayed on
the smartHMI. When activated, the active project is overwritten. If no relevant project is
overwritten: Confirm the query with Yes.
10. An overview with the changes and a request for confirmation is displayed on the
smartHMI. Answer this with Yes. The option package is installed and the robot controller
performs a restart.
11. If applicable, remove the USB stick.
LOG file
A LOG file is created under C:\KRC\ROBOTER\LOG.
Method
The deinstallation takes place via Startup → Additional software in the main menu.
LOG file
A LOG file is created under C: \ KRC \ ROBOTER \ LOG.
myHMI and
menu assistant
Functions and
variables for
opening/close
myHMI_user.dat HMI’s from
R1\TP\myHMI within KRL, on
myHMI_lib.src and .dat startup and
depending on
user level and
operation mode
The sample HMI can fully operate and can be used as a basis for further HMI's.
4 Licensing
myHMI is subject to licensing. Licensing is done by a license file. Visit our website
www.orangeapps.de for more information on licensing.
Reference
▪ A license is required for each robot
▪ Trial licenses are free of charge and limited in time.
▪ Date manipulations of the system are detected, myHMI automatically disables the
license
Trial licenses can be obtained directly at www.orangeapps.de. Runtime licenses are given
after receipt of the license fee.
5 Elements of an HMI
The HMI to be displayed is fully defined in an XML file and later interpreted by myHMI.
On the robot system as many HMI can be created and displayed. Each HMI needs the
following files (the placeholder HMI_Name stands for the name of the HMI).
• HMI_Name.xml
• (optional) HMI_Name.kxr
• translations
When called from the main menu the xml-file is interpreted and the HMI is displayed
accordingly. The controls are arranged in columns on the tabs, according to the order in the
XML file. Depending on your needs, a one-, two- or three-column display can be chosen.
The (optional) use of a kxr translation file enables the automatic translation of texts accordingly
to the language set in the HMI.
Tabulated summary
myHMI_Demo.xml
reads XML
Plugin
MyHMI myHMI_Example1.xml
creates HMI
myHMI_Example2.xml
Example XML
<Configuration Text="HMI title" modules="myFirstHMI">
<Group Text="first tab">
, , ,
</Group>
</Configuration>
Example Display
If only one tab is defined within an XML file in the HMI no tab is displayed.
5.3 Controls
Controls are defined by the node <Control …>.
To display and manipulate KRL variables different controls are available. These controls are
linked in the XML file with the KRL variables. The appearance and behavior can be influenced
by various arguments. In the simplest case, a control requires the arguments type, text and
KrlVar. The following description of the controls shows the minimum necessary arguments.
Further arguments for each control are discussed in Chapter 0.
To define controls within a tab page, the text must be within the node <Group ….> … </Group>
<Group Text="...">
<Control Type="Number" Text="Path Velocity" KrlVar="$Vel.CP"/>
, , ,
</Group>
A control is normally specified within the node < Control .../>. The type of control is indicated
by the argument Type. The indication of allocation to the individual arguments is written within
quotation marks (").
• Picture
• Number
• LED
• Switch
• Checkbox
• Button
• DropDown
• Text
• Label
• Progressbar
• Slider
• Headline
All controls can optionally be influenced by a variety of arguments in function and appearance
Example 1
Example 2
The specification of the minimum and maximum value can also be made via a KRL variable.
Example
By specifying the argument "Negate" the function of the switch are negated.
By specifying the argument "Negate" the function of the switch are negated.
By specifying the argument "Negate" the function of the switch are negated.
By specifying the argument "Negate" the function of the button will be negated.
Example
The entries in the drop-down menu are made via the element "DropDownItem" and its arguments
"Value" and "Text" (optional).
Argument Description
Text Text displayed in the dropdown menu (optional)
Example
Example
Example
The specification of the minimum and maximum value can also be made via a KRL variable.
Example
The relative position of the slider by means of supplying the arguments "Min" and "Max". These
are default 0 and 100. The value of the KRL variable always Located within these limits, the
disclosure of "Min" and "Max" is not necessary. Does the KRL variable values outside the
range of values of "Min" and "Max", the background bar is shown in red.
The specification of the minimum and maximum value can also be made via a KRL variable.
Example
It is also possible to superimpose individual images into an overall image. To do this, the
KRL variable must be a structure.
The location of image files can be both local and on a network drive (file sharing must be
considered).
• BMP
• GIF
• JPEG
• PNG
• TIFF
Absolute indication:
relative indication:
The value of the KRL variable is monitored, read out and converted into a string. The
placeholder is replaced by the string and thus the file name is specified.
Example:
Suppose the original size of the graphic is 50x80 pixels. Width is specified as 80
→ The scale factor is 1.6. The picture is displayed with 80x128 pixels.
Example:
Example:
Example:
Example
➔ Graphic to load:
TRUE D:\IO_TRUE.PNG
First graphic: String from Path + Name of the 1st structure element + Value of the 1st structure
element
Second graphic: String from Path + name of the 2nd structure element + value of the 2nd
structure element
etc.
last graphic: String from Path + Name of the last structure element + Value of the nth structure
element
There are as many graphics been displayed as there are structure elements. The order of the
image overlay is determined by the order of the definition of the structure elements.
The name of the structure variable and its elements can be freely selected. Not allowed is
structure in structure.
If the value of the KRL variable changes, the displayed overall graphic changes automatically.
Example with overlay, the structure variable is called "myHMIPicDemo" with the Boolean
elements Gate, Background, Door, Turntable and Robot
Entry in the xml-file (Assumption: The graphics are stored in the folder D:\myHMI\Pics)
<Control Type="Picture" Path="D:\myHMI\Pics\myHMI_{0}.png"
KrlVar="myHMIPicDemo"/>
myHMI performs these steps for each structure element. The order of the elements in the
definition of the structure determines the order of the image display.
myHMI_BackgroundTrue.png
myHMI_RobotTrue.png myHMI_RobotFalse.png
myHMI_DoorTrue.png myHMI_DoorFalse.png
myHMI_TurnTableTrue.png myHMI_TurnTableFalse.png
myHMI_GateTrue.png myHMI_GateFalse.png
Example
At the following values
Result:
If more graphics are to be displayed, only the structure needs to be expanded accordingly and
the respective graphics added to the folder D:\myHMI\Pics.
Beispiel
With overlay. The structure variable is called „myCellView“ and has the elements Gate,
Background, Door, Turntable und Robot (all of type Integer)
Background 1 C:\KRC\User\myHMI\Pics\Background1.png
Door 2 C:\KRC\User\myHMI\Pics\Door2.png
TurnTable 1 C:\KRC\User\myHMI\Pics\TurnTable1.png
Robot 3 C:\KRC\User\myHMI\Pics\Robot3.png
<Configuration>
Progressbar
Dropdown
Checkbox
SwitchIO
<Group>
Headline
Number
Picture
Switch
Button
Slider
Label
Text
Led
Argument
Alignment n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a O O
Border n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a O
Color 0/1 n/a n/a n/a O n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a
Columns n/a O n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a
Format n/a n/a O n/a n/a n/a n/a n/a O O n/a n/a n/a n/a n/a
Max n/a n/a O n/a n/a n/a n/a n/a O O n/a n/a n/a n/a n/a
Min n/a n/a O n/a n/a n/a n/a n/a O O n/a n/a n/a n/a n/a
Module O O O O O O O O O O O O O O O
Negate n/a n/a n/a O O O O O n/a n/a n/a n/a n/a n/a n/a
Path n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a X
Step n/a n/a O n/a n/a n/a n/a n/a O n/a n/a n/a n/a n/a n/a
Text X X X X X X X X X X X X X X O
Text0/1 n/a n/a n/a n/a n/a n/a O n/a n/a n/a n/a n/a n/a n/a n/a
TextButton n/a n/a n/a n/a n/a n/a n/a O n/a n/a n/a n/a n/a n/a n/a
Value n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a X n/a n/a n/a n/a
Width n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a O
Format: String
Allowed values
Center center -
Format: BOOL
Allowed values:
Value Impact
TRUE Dialog message appears
FALSE Dialog message does not appear
Example
<Control Type="Switch" Text="Switch Control" KrlVar "$Flag[1]"
AreYouSure="True"/>
Format: BOOL
Allowed values:
Value Impact
Default: TRUE
Example
<Control Type="Picture" Text="LasPowEnabled" Path="PicsDemo\led_{0}.png"
KrlVar="$Flag[1]" ColSpan="2" Border="FALSE"/>
Color0 sets the color of the state False. Color1 sets the color of the state True.
Allowed values:
Value Impact
Format: INT
Allowed values
Value Impact
Default value: 1
Example Columns="2"
<Control Type="Headline" Text="Example Column=2" ColSpan="2"
Alignment="MiddleCenter" />
<Control Type="Led" Text="Led control" KrlVar="$Flag[1]" Color0="Yellow"
Color1="Red"/>
<Control Type="Switch" Text="Switch control" KrlVar="$Flag[1]"/>
<Control Type="Checkbox" Text="Checkbox control" KrlVar="$Flag[1]"
ColSpan="2"/>
<Control Type="Button" Text="Button" TextButton="Press" KrlVar="$Flag[1]"
ColSpan="2"/>
Explanation
<GROUP>: Column ="2" specifies the number of columns of the entire tab to 2.
Format: string
Allowed characters: Key string or a speech database
Multi language support: yes
For each string of the argument "Description" an entry in a speech database is searched. If no
entry is found, the specified string is displayed.
Control collapsed:
Control opened:
Kxr file:
<uiText key="DescCheckBox">
<text xml:lang="de-DEV"> Mit dem optionalen Argument "Text0" und "Text1"
kann die Schaltfläche für den jeweiligen Zustand beschriftet werden </text>
<text xml:lang="en-DEV">By using the optional argument "Text0" and
"Text1” it’s possible to parametrize the caption of the button </text>
<text xml:lang="it-DEV">…
</text>
</uiText>
➔ For the HMI language "English", "German" and "Italian" the respective translation text from
the kxr file is used. For all other languages, the English text is used.
Format-
Name Description Examples
specifier
1234.5678 ("00000") -> 01235
Replaces the zero with the
corresponding digit if one is
"0" Zero placeholder 0.45678 ("0.00", en-US) -> 0.46
present; otherwise, zero
appears in the result string.
0.45678 ("0.00", fr-FR) -> 0,46
1234.5678 ("#####") -> 1235
Replaces the "#" symbol with
the corresponding digit if one is
"#" Digit placeholder 0.45678 ("#.##", en-US) -> .46
present; otherwise, no digit
appears in the result string.
0.45678 ("#.##", fr-FR) -> ,46
Determines the location of the 0.45678 ("0.00", en-US) -> 0.46
"." Decimal point decimal separator in the result
string. 0.45678 ("0.00", fr-FR) -> 0,46
Examples
<Control Type="Label" Text="Label1" KrlVar="rPercentCurrent"
Format="#.##%"/>
<Control Type="Number" Text="maxForce" KrlVar="rMaxForce" Format="#.00"
Module="Gunkxr"/>
<Control Type="Progressbar" Text="nbrPoints" KrlVar="iNumPoints" Format="#
'per day'" Min="0" Max="3000"/>
<Control Type="Slider" Text="prgBarGunParam" KrlVar="iMaxCutOff " Format="#
'mm'" Min="1" Max="10"/>
Representation
Global variables
Global variables are specified without naming the module in which they declared.
Example
KrlVar="$OV_PRO"
Local variables
Local variables are specified with naming the module in which they declared.
Example
<Control Text="Base Data" type="text" KrlVar "Base_Data[myArray
[/R1/MyDatFile.dat/MyVariable]].X"/>
Counters are indicated by a placeholder "%1", "%2", "%3" ... - %32" in the argument "KrlVar".
If the value of the counter changes, all associated controls are updated automatically.
Example
<Control Type="Headline" Text="Technologie Visualisierung"/>
<Control Type="Number" Text="Nummer" KrlVar="%1" Step="1" Min="1" Max="10"/>
<Control Type="Text" Text="Tech Visualisierung"
KrlVar="Tech_Visu[%1].Techshortcut[]"/>
<Control Type="Text" Text="aktiv" KrlVar="Tech_Visu[%1].IsActive"/>
Display in HMI:
Format: INT
Allowed values: 10-31 to 10 + 31
• Control "Number"
• Control "Progressbar"
• Control "Slider"
Example
<Control type="Number" text="Maximum Force (5-7kN)" KrlVar="max_Force"
min="5" Max="7" ColSpan="2"/>
At the control "Slider" the background is shown in red if the value is out of bounds.
Example
<Control type="Slider" Text="Maximum Force (5-7kN)" KrlVar="max_Force"
min="5" Max="7" ColSpan="2"/>
Format: string
Allowable values: name of the language database (*.kxr)
The plugin supports the use of kxr files for multilingualism. For all the arguments of type "string"
a key in a speech database can be specified. If a key is found for the actual language of the
HMI, the translated text is shown. If no key is found in the database, the specified text is
displayed.
Example:
<= Control Type="Number" text="maxForce" KrlVar "xHome1.a1"
Module="Servogun" ColSpan="2"/>
<uiText key="maxForce">
<text xml:lang="de-DEV">maximale Zangenkraft (5-7 kN)</text>
<text xml:lang="en-DEV">maximum gun force (5-7 kN)</text>
</uiText>
If a key is found in the database, but no entry for the current HMI
language is given, the text of the English language is shown (if
given).
• <Configuration>
• <Group>
• <Control>
Usage and validity
Usage in Validity
Schematic representation
Format: INT
Allowed values:
Value
Designation Examples
Value of the
Impact
argument
Format: BOOL
Allowed values
Value Impact
Example
<Control Type="Led" Text="Led Control" KrlVar="$FLAG[1]" Negate="TRUE"
Color0="Yellow" Color1="Red" Mode_OP="#EX"/>
<Control Type="Switch" Text="Switch Control" KrlVar="$Flag[1]"/>
<Control Type="Checkbox" Text="Checkbox Control" KrlVar="$Flag[1]"
Negate="TRUE" ColSpan="2"/>
Display at $Flag[1]=False
The file name can contain the placeholder {0}. This is then replaced by the value of a KRL
variable to be specified.
Example
<Control Type="Picture" Text="Power Laser enabled" Path="D:\IO_{0}.png"
KrlVar="$IN[1]"/>
➔ The value of $IN[1] replaces as a string the placeholder {0} in the filename.
Designation Examples
Active 32 Default=63
• Control is always active
End 16
Example-value=32
Reset 8
• Control is only active when the Submit is
Stop 4 running
Free 2
Sample Value=2
Example
<Control Type="Switch" Text="Switch Control" KrlVar="$FLAG[1]"
Color0="Yellow" Color1="Red" ProState="6"/>
Value
Designation Examples
Active 32 Default=63
• Control is always active
End 16
Example-value=30
Reset 8
• Control is only active if the program
Stop 4 pointer is at the end, or if the selected
program has been reset or if the selected
Free 2 program has been stopped or select a
program is
• → the control is inactive if a program is
Unknown 1
running
Format: REAL
Allowed values: 10-31 to 10 + 31
Example
<Control Type="Number" Text="Maximum Force (5-7 KN)" KrlVar=" max_Force"
Min="5" Max="5" Step="0.1" ColSpan="2"/>
Representation
Each time the Up/Down buttons are pressed, the value of the variable "max_Force" is
in/decreased by 0.1
Format: string
Allowed characters: Key string or a speech database
Multi language support: yes
For each string in "text" an entry in the speech database is searched. If no entry is found, the
specified string is displayed. The database used is specified with the argument "Module". See
section 0.
Format: string
Allowed characters: Key string or a speech database
Multi language support: yes
For each string in "Text0" and "Text1" an entry in the speech database is searched. If no entry
is found, the specified string is displayed. The database used is specified with the argument
"Module". See section 0.
Usage
Format: string
Allowed characters: Key string or a speech database
Multi language support: yes
Default value: -
For each string in "TextButton" an entry in the speech database is searched. If no entry is
found, the specified string is displayed. The database used is specified with the argument
"Module". See section 5.3.17.10.
Example
<Control Type="Button" Text="Button Steuerelement" TextButton="Push"
KrlVar="$Flag[1]" ColSpan="2"/>
Format: INT
Default value: 10
Usage in Validity
Example
<Control Type="Switch" Text="Checkbox" KrlVar="$Flag[1]" UserLevelEdit="20"
AreYouSure="True" />
Format: INT
Default value: 10
User Level
Operator 10
Expert 20
Safety maintenance 27
Sicherheitsinbetriebnehmer 29
Administrator 30
5.4 Layout
The controls are arranged in columns and tabs accordingly to their order within the XML file.
To improve the clarity and usability, the layout of each tab can be divided into up to three
columns. For this purpose, in the element <Group> the argument "Columns" is used.
Depending on the value of "Columns" the controls are arranged side by side in columns. By
the argument "ColSpan" the controls can be stretched over multiple columns.
5.5 Multilingualism
For the multilingual presentation of the texts a translation file (kxr) is necessary. The
specification which translation file shall be used is made by the argument "Module".
If the name of the translation file is the same as the name of the xml file, you can do
without the argument "Module". By default, myHMI tries to access the kxr file of the
same name.
• There must be a translation file (* .kxr) with corresponding "Keys" be present in the
folder C:\KRC \Data. The kxr-file must have the encoding “UTF-8”.
• In the XML file the argument "Module" must refer to this kxr file (HINT: specify the
name without extension)
• The translatable text must be specified in the XML file as a "Key".
• It is possible to specify different kxr-files in the argument "Module".
Example 1: All texts of the control "Button" shall be translated into the languages German and
English.
Procedure:
XML file:
<Control Type="Button" Text="txtTextBtn" TextButton="txtPushBtn"
Description="descrBtn" Module="DemoMyHMI" KrlVar="$Flag[1]" ColSpan="2"/>
KXR file:
<?XML version="1.0" encoding="utf-8"?>
<resources xmlns="http://www.kuka.com/schemas/kxr/2009">
<module name="DemoMyHMI">
<uiText key="txtTextBtn">
<text xml:lang="de-DEV">Greifer schliessen</text>
<text xml:lang="en-DEV">close gripper</text>
</uiText>
<uiText key="txtPushBtn">
<text xml:lang="de-DEV">Schliessen</text>
<text xml:lang="en-DEV">Close</text>
</uiText>
<uiText key="descrBtn">
<text xml:lang="de-DEV">Beispiel Mehrsprachigkeit</text>
<text xml:lang="en-DEV">Example multi lingualismn</text>
</uiText>
</module>
</resources>
Example 2: All texts of the HMI should be translated into the languages German and English.
Method:
1. Create a new KXR file or copy an existing one. The name is freely selectable. Here:
Demo.kxr
2. In the "Configuration" element, specify the name of the KXR file by the "Module"
argument (only the name without the ".kxr" extension)
XML-Datei:
<Configuration Text="Demotext" Module="Demo">
KXR-Datei:
<?XML version="1.0" encoding="utf-8"?>
<resources xmlns="http://www.kuka.com/schemas/kxr/2009">
<module name="Demo">
<uiText key="Demotext">
<text xml:lang="de-DEV">Text für Demo in deutsch</text>
<text xml:lang="en-DEV">text for demo in english</text>
</uiText>
<uiText key="txtTextBtn">
<text xml:lang="de-DEV">Greifer schliessen</text>
<text xml:lang="en-DEV">close gripper</text>
</uiText>
<uiText key="txtPushBtn">
<text xml:lang="de-DEV">Schliessen</text>
<text xml:lang="en-DEV">Close</text>
</uiText>
<uiText key="descrBtn">
<text xml:lang="de-DEV">Beispiel Mehrsprachigkeit</text>
<text xml:lang="en-DEV">Example multi lingualismn</text>
</uiText>
</module>
</resources>
Available Languages
da Danish pt Portuguese
de German ro Romanian
en English sk Slovak
es Spanish sl Slovenian
el Greek sv Swedish
fi Finnish tr Turkish
fr French ru Russian
it Italian ko Korean
hu Hungarian zh Chinese
nl Dutch ja Japanese
If a key is found in the database, but no entry for the current HMI
language is given, the text of the English language is shown (if
given).
6 Demo HMI
The setup comes with an HMI that shows how myHMI works and can serve as a template for
new HMIs.
To view the demo on the robot, the following steps must be performed:
• •Create a menu entry with the menu assistant. The HMI is defined in the "C: \ KRC \
USER \ DemoMyHMI.xml" file.
• Install the KRL module "myHMIDemo" (e.g. under R1 \ Programs). The module can
be copied from the folder "C: \ KRC \ USER \ myHMI".
6.1 Screenshots
Tab „Controls“
Tab „Advanced“
Tab „3 Columns“
To process the xml-file an appropriate editor such as should Notepad ++ should be used.
Arguments
Arguments
X Value from
Modules Module / KXR file for multilingual content
<Configuration>
Example XML
<Configuration Text="myFirstHMI" Module="myFirstHMI">
<Group Text="first tab" Columns=”2” >
. . .
</Group>
</Configuration>
Example Display
7.2.3 Toolbar
The toolbar contains all currently available controls. All available controls are available in the
toolbar. Use drag and drop to place a control on the HMI.
Buttons
Buttons Description
Toggles the display of the HMI between half and full view
Shows the xml code for the current HMI. The currently selected
control element is highlighted.
Opens a menu for the simulation of the currently valid user level.
After selecting a user level, the appearance of the control on the
interface is updated.
7.3 Menu assistant – create menu entry in the KUKA main menu
In order to open an HMI from the main menu, a menu entry must be defined. This is done in
the file SmartHMI.User.config. In order to ease the entry a menu assistant is available. The
assistant can be started from Configuration → myHMI menu assistant. The required user
level to start the assistant is administrator.
In the main window of the assistant all available HMI are listed. New entries can be added,
existing ones can be edited, duplicated or deleted.
Button Description
The placement in the main menu of an entry can be selected in the listing of the menu
structure.
Element Description
How shall be the name in the Name of the entry in the main menu
menu?
Name of the xml-File. In the dropdown all in
Which xml-file shall be called?
C:\KRC\USER\MYHMI available xml-files will be listed
How shall the HMI be displayed? The HMI can be displayed in full or half size window
The opening of the HMI can be limited according to the
user level. The levels are: User, Expert, Safety
Allow to open the HMI only as: maintenance, Safety recovery and administrator.
If no level is selected the HMI can be opened by
everyone.
Button Description
When saving the entry, the existing of the kxr-file will be checked
and the following steps will be executed:
Text in firstHMI.kxr:
Method:
• Copy DemoMyHMI.xml to myHMI_myFirstHMI.xml
• Modify the xml-file to your needs according to chapter 5
• Open the menu assistant and add the entry → when saving the language
database will be created automatically (if not available) in C:\KRC\Data
• Edit the language database
• Restart the robot with cold start in order implement the language database to the
robot
1. Create the folder for the menu entry in the main menu
Open the folder Display and click Create folder.
Enter the key for the language database in the text field (e.g. “Foldername“):
The specified language database “myFirstHMI.kxr” has been created automatically with the
given keys Headline and Foldername and can now be edited.
3. Edit "myFirstHMI.kxr"
Before editing:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns="http://www.kuka.com/schemas/kxr/2009">
<module name="myFirstHMI">
<uiText key="Headline">
<text xml:lang="de-DEV">Headline_de</text>
<text xml:lang="en-DEV">Headline_en</text>
</uiText>
<uiText key="Foldername">
<text xml:lang="de-DEV">Foldername_de</text>
<text xml:lang="en-DEV">Foldername_de</text>
</uiText> </module>
</resources>
→ after editing:
<resources xmlns="http://www.kuka.com/schemas/kxr/2009">
<module name="myFirstHMI">
<uiText key="Headline">
<text xml:lang="de-DEV">meine erste HMI</text>
<text xml:lang="en-DEV">my first HMI</text>
</uiText>
<uiText key="Foldername">
<text xml:lang="de-DEV">Ordner meine erste HMI</text>
<text xml:lang="en-DEV">Folder my first HMI</text>
</uiText> </module>
</resources>
The translations for the HMI will also be added to this file.
</resources>
In order for the entries in the language database to take effect the robot has to be restarted
with a Cold start.
HMI – register 1
HMI – register 2
function call
MyHMIOpen(char name of HMI, enum ViewMode, int Tabnumber)
parameter
• View [char], path to the MyHMI.xml file e.g. "MyHmiDemo.xml"
• ViewMode [enum], "#Half" for half-page window, "#Full" for whole page (optional,
Default = # Full)
• Tab [int], tab of the HMI which shall be displayed (optional, default = 1)
example
MyHmiOpen ("myHmiDemo.xml", # Full, 2)
function call
MyHMIClose(char name of HMI)
parameter
• View [char], path to the MyHMI.xml file, e.g. "MyHmiDemo.xml" (optional, default
=*)
example
MyHmiClose ("myHmiDemo.xml")
example
MyHmiClose ()
function call
MyHmiIsOpen(char name of HMI)
return value
TRUE or FALSE, TRUE=HMI is open
parameter
• View [char], path to the MyHMI.xml file, e.g. "MyHmiDemo.xml" (optional,
default=*)
example
IF MyHmiIsOpen ("myHmiDemo.xml") THEN
; HMI is open
ELSE
; HMI is not open
ENDIF
Variable
OpenOnStartup(char name of HMI, enum ViewMode, int Tabnumber)
parameter
• View [char], path to the MyHMI.xml file e.g. "MyHmiDemo.xml"
• ViewMode [enum], "#Half" for half-page window, "#Full" for whole page (optional,
Default = # Full)
• Tab [int], tab of the HMI which shall be displayed (optional, default = 1)
example
Auto start deactivated because no HMI (XML file) was specified
example
Auto start active. After startup, the "myHmiDemo.xml" HMI opens in full size showing tab 3
8.2.2 Open user interface when changing operating modes and / or changing
users
Using the variable OpenOnCondition, an HMI can be opened after changing the user or
operating mode.
The specification of the operating modes and the user level is optional and takes place as
character variables. The values are specified separated by commas.
Variable
OpenOnCondition[array number] = (char name of HMI, enum ViewMode, int Tabnumber,
char ModeOps, char UserModes)
parameter
• View [char], path to the MyHMI.xml file e.g. "MyHmiDemo.xml"
• ViewMode [enum], "#Half" for half-page window, "#Full" for whole page (optional:
Default = # Full)
• Tab [int], tab of the HMI which shall be displayed (optional: default = 1)
• ModeOps [char], operation modes T1, T2, AUT, EXT (optional: Default= *)
• UserModes [char], user levels 5,10,15,20,29,30 (optional: Default= *)
example
"MyHmiDemo" is opened every time the user or operating mode changes
example
"MyHmiDemo" is only opened in full screen showing tab 2 if the "EXT" or "AUT" operating
mode and user level 5 or 10 are active
Operating modes
• T1 – test 1
• T2 – test 2
• AUT – automatic
• EXT – External
User level
• 5 – standard
• 10 – operator
• 20 – Expert
• 27 – Security Maintenance Personnel
• 29 – Safety commissioner
• 30 – administrator
9 Appendix
Message Description
Error in XML file A general error occurred while reading the file
Defined error XML file for the control The control element x in the XML file has no
variable x is not KRL "KrlVar" attribute
Defined error XML file for control x is not a The control element x in the XML file has a
type (int, real) valid "Type" attribute
Control x, y variable does not exist The KRL variable y does not exist
Message Description
The license file is invalid, for example, wrong
Dialog message:
serial number, or a term expiring license has
License for the product myHMI invalid or expired.
expired. Contact your system integrator.
A new license file fixes the problem.
Dialog message:
There is no license file on the system.
No license for the product myHMI
A new license file fixes the problem.
available. Contact your system integrator.
Status message: No license file for the robot with the serial
No license file for robot X available number X (X=serial number).