JMobile Exor (v4.0)
JMobile Exor (v4.0)
JMobile Exor (v4.0)
User Manual
Version 4.00
© 2009-2020 Exor International S.p.A.
© 2009-2020 Exor International S.p.A.
The information contained in this document is provided for informational purposes only.
While efforts were made to verify the accuracy of the information contained in this
documentation, it is provided 'as is' without warranty of any kind.
Third-party brands and names are the property of their respective owners.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. I
Creating an indexed addressing set 124 Services variables 183
II JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
19 Corvina Cloud 267 25 Offline node management 329
20 Alarms 269 Offline node management process 330
Alarms Editor 270 Manual offline node management process 330
Remote alarms acknowledge 273 Manual offline configuration 330
Alarm state machine 274 Automatic offline node detection 331
Setting events 274 26 Multi-language 333
Active Alarms widget 277 The Multi-language editor 335
Alarms History widget 282 Changing language 336
Additional Alarms widgets 282 Multi-language widgets 336
Managing alarms at runtime 283 Exporting/importing multi-language strings 339
Enable/disable alarms at runtime 283 Changing language at runtime 340
Displaying live alarm data 284 Limitations in Unicode support 340
Exporting alarm buffers to .csv files 286 27 Scheduler 343
Exporting alarm configuration 286 Creating a schedule 344
Events Buffer 289 HighResolution schedule 345
22 Recipes 291 Recurring schedule 345
Managing recipes 291 Configuring location for schedules 346
Configuring a recipe widget 294 Configuring the Scheduler widget 347
Recipe status 295 Scheduling events at runtime 348
Uploading/downloading a recipe 296 28 21 CFR Part 11 Compliance 351
Backup and restore recipes data 297 x.509 Certificate 356
23 Trends 299 Signed CSV files 359
Data logging 300 Signed PDF files 360
Exporting trend buffer data 305 Compliant applications 363
Realtime trend widget 306 29 User management and passwords 365
History trend widget 307 Enable/disable security management 366
Scatter diagram widget 309 Configuring groups and authorizations 366
Trend widget tips 310 Modifying access permissions 367
Table trend widget 316 Assigning widget permissions from page
view 372
24 Data transfer 323
Configuring users 373
Data transfer editor 324
Default user 375
Exporting data to .csv files 326
Managing users at runtime 375
Data transfer limitations and suggestions 326
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. III
Force remote login 376 Connection Limits 418
Exporting audit trail as .csv files 384 Using x.509 Certificates 422
IV JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
Variables widget 491 Keywords 545
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. V
Table of functions and limits 588
Compatibility 591
Settings 633
VI JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
1 Getting started
JMobile Studio is a software application designed to create graphical HMI pages. JMobile Studio has a drag-and-drop
interface that makes it easy to create complex pages. Many of the features found in common Windows applications are
also available in JMobile Studio.
This document is divided into chapters that describe the key functions of JMobile Studio and explain how to use them.
Each chapter is presented in a standalone manner, allowing you to jump from chapter to chapter, depending on the task at
hand.
Assumptions 2
What´s new 3
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 1
Assumptions
Assumptions
We assume that readers have a basic understanding of computers, Microsoft Windows, and the specific network
environment where the application will run.
2 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
1 Getting started
What´s new
What´s new on v4.0
l Unified development for Web and HMI pages, this means the same page can be used in all platforms.
l Project validation to notify not-supported features
l Project view refactoring (Move pages with drag&drop, Multiselection to delete more pages in one action, etc.)
l Tags Editor redesign (TreeView with customizable columns, Multi editing for common properties, Tag database and
dictionary unified view, Synchronization with symbol file)
l Alarms Editor redesign (TreeView with customizable columns, Multi editing for common properties, Same style of
Tag Editor and «Attach to» dialogs)
l MQTT support with all major cloud broker
l Support for PDF Signed in print reports (CFR 21 Part 11)
l Table widgets (e.g. Trend Widget) are supported from the print reports.
l Support for Graphs in print reports (Options to choose curves to print and time range)
l Tags can be Read/Write protected based on user management configuration
l Additional rules for password protection (e.g. force usage of low/uppercase letters)
l Option to deactivate users in runtime
l Variables with "Fixed Point" are supported in Tag Editor (see "Scaling" on page 113)
l The live tags can be used even inside Labels and Text Messages
l The live tags support array type and number formatting
l Placeholders can be used to freely define the Time and Date format
l Tables and widgets based on tables (Trend, Audit, Scheduler and Alarms) are available inside the print reports
gallery
l Tables columns can be remapped at runtime
l Tables columns can be sorted at runtime using macros or JavaScript code.
l Regional Settings: possibility to choose the list separator to use inside the dumped .csv files
l Regional Settings: possibility to choose the characters to use for decimal and thousands separator of numbers
l Regional Settings: possibility to choose a date format that will be common to all widgets
l Extended the array index support to Alarms, Trend, Scheduler, eMail, Dump or Restore recipe macros
l Trend support for alphanumeric tags (up to 8 chars), option to select format of tags to sample/visualize/dump,
multilanguage header support for datalogs headers in tables and dump files.
l Added the possibility to suspend the trend sampling at runtime
l Trends, Alarms and Audit buffer can be configured to automatically be dumped in .csv format when full
l Trend sampling time extended up to 10 sample/sec
l Removed the "Max_Trendbuffer_size" limit, now a single trend can be configured to use all the available memory
reserved for trend buffers (see "Number of Samples" on page 304)
l Import/export texts for message widget in XML format
l Devices based on Linux platform support until 24 languages (12 on devices based on WEC platform)
l CODESYS v3.5.12
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 3
What´s new
Breaking Changes
l The projects saved using v4.00 cannot be opened using previous versions (e.g. 2.08.01)
l We have removed a bug in the formatting the custom number. Now using the format #.#, the number will be
displayed showing the decimal digit only when available (for example 10 will be shown as 10 while in the previous
version was shown as 10.0). To always show the decimal digit, use the #.0 format.
l In the alarm history buffer, frozen tags (e.g. [!Tag1]) were updated even after an acknowledge or a reset event. This
was wrong because the frozen tags have no to be updated when these events happen.
l In BSP v1.0.532, we have introduced a Firewall. If you enable the Firewall and you need to use the FTP passive
mode with JMobile HMI Runtime older than version 2.10.0.280 then you need to open the ports 1024-2048/tcp and
16384-17407/tcp. From version 2.10.0.280 instead, JMobile HMI Runtime uses the ports 18756-18760/tcp that are
proposed into Firefall settings by default.
4 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
1 Getting started
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 5
Installing the application
l JMobile Studio: an application for designing custom HMI projects in a user-friendly manner, along with a variety of
objects in its built-in library, the Widget Gallery.
l HMI Client: a light-weight application that can be used on Windows computers to remotely view and manage a
project running on an HMI device.
l JMobile HMI Runtime: a standalone application that runs on the HMI devices. The HMI Runtime is installed via
JMobile Studio.
l JMobile PC Runtime: a standalone application that runs on Win32/Win64 platforms (computers instead of HMI
devices).
RAM 512 MB
Installation procedure
To install JMobile Suite:
6 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
1 Getting started
3. Follow the instructions on the screen. The default location for the c software is C:\Program Files\Exor\JMobile
Suite, change path if needed.
4. If the Select Components step is available, select the components you want to install.
5. Select the Create a desktop icon option to add a JMobile Studio icon on your desktop. A JMobile Suite group is
automatically added to the Start menu by the installation procedure.
6. To run the application click the desktop icon or choose Start > All programs > JMobile Studio.
Trial version
JMobile Studio is available with a friendly 30 days free trial policy. 30 days after installation a registration form is displayed
to enter a license activation key.
Note: Trial version is not supported on virtual machines, only valid licenses can be used.
Licensing
To register the software before the trial period expires, go to Help > Register.
Note: The registration process requires an Internet connection. Ports TCP 80 and 443 are used for activation.
During registration, a license file is downloaded from the licensing server to the computer. License files are saved in
following folders depending on OS:
%appdata%\Exor
Licenses are locked to the BIOS ID or to the Windows product ID of the computer where the software has been installed.
If JMobile Studio is not able to reach the licensing server (for example, no Internet connection is available), a button is
displayed to activate the license via email.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 7
Installing the application
Pressing the “Send Mail” button the JMobile Studio will display this form:
This email can be send in a second moment when internet connection will available. You may also activate the licenses
and download the licenses file from the web site https://licenses.x-formation.com/licenses. reporting the same data
contained in the “Body” of upper form.
1. Go to: https://license.x-formation.com/licenses
2. Enter your activation key and click the Log In button.
8 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
1 Getting started
First installation of JMobile Suite in the system Software is installed in the specified destination
folder
System with only one instance of JMobile Suite already Current version can be replaced or maintained.
installed
System with multiple instances of JMobile Suite already Last version installed can be replaced or
installed maintained.
If you try to install a second instance of an already installed version of JMobile Suite, a warning message is displayed.
Multiple JMobile Suite installations share a common workspace folder, each sub-folder includes the version number, for
example C:\Program Files\Exor\JMobile Suite 2.5. Each installed version has its ID and can therefore be removed
individually.
Option Description
Convert and overwrite current project The project is converted without a backup copy of the original
version
Select a new location before converting the The project is copied inside the specified folder and then
project converted.
WARNING: Do not edit projects with a version of JMobile Studio older than the version used to create
them. This will damage the project and may cause runtime instability.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 9
Installing the application
Crash reports
A crash report dialog appears whenever JMobile Studio freezes or crashs.
Important: Always save crash report files since they may contain useful information for technical
support.
10 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
2 Runtime
JMobile HMI Runtime is designed to support different platforms and different operating systems.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 11
HMI device basic settings
Runtime modes
The JMobile HMI Runtime is composed of two logic units:
l Server: runs communication protocols, collects data, monitors alarms, drives trend buffer sampling.
l Client: displays data collected by server.
The server unit is responsible for handling the HMI services such as the communication protocols, performing data
acquisition, driving trend buffer sampling activities, monitoring alarms, and so on.
The client unit is the part which is responsible for the visualization process: use the data collected by the server to render it
on the display as graphical information.
l Configuration mode: server is idle (for example when no project is loaded on the device or some system files are
missing).
l Operation mode: server is operating according to the settings defined by the system files and by the loaded
application project.
Note: Data on client may be displayed even if no activity is running on the server.
Zoom In/Out
Select view size at runtime
Pan Mode
Enables/disables pan mode after a zoom in
12 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
2 Runtime
Settings
Context Menu Delay Context menu activation delay. Range: 1–60 seconds.
(s)
Use keypads Display keypads when user touches a data entry field.
Keep retentive data Preserve the content of the retentive data at project download or update.
on project update
l Download Project/Runtime
l Upload project
l Board management (BSP Update)
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 13
Context menu options
Project Manager
When you load a new project, the current project is automatically unloaded. You must unload a project before you can
delete it.
Update
This function loads update packages from an external USB drive. See "Update package" on page 105for details.
Backup
You can create a backup copy of the Runtime and of the project.
Logging
This function displays a log of system operations.
Click Log to file to save data: a logger.txt file is saved to the ...\var\log folder.
This file can be retrieved using an FTP Client and forwarded to technical support.
Note: Once enabled, logging is maintained after power cycles and must be manually disabled.
14 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
2 Runtime
Logout
Logs off the current user.
Developer tools
Utility functions for debugging at runtime. It is visible only if enabled in the Project Properties (see "Developer tools" on
page 86 for details)
About
This function shows information about the Runtime version.
WARNING: Context Menu action has no effect if executed from a dialog page.
On WinCE devices, the SNTP service is available from the BSP v1.76 ARM / 2.79 MIPS or higher
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 15
Built-in SNTP service
16 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
3 Runtime on PC
JMobile PC Runtime for Windows is an HMI platform that combines advanced HMI features and vector graphics with
powerful web technologies. You can choose this platform to monitor and control your equipment with tags, alarms,
schedulers, recipes, trends, JavaScript logic and events.
JMobile PC Runtime provides connectivity with factory and building automation protocols, based on Ethernet and serial
interfaces.
RAM 512 MB
CPU min. 300 MHz Pentium III or similar processors with 500 MHz.
Installing Runtime
JMobile PC Runtime could be distributed as a component of the JMobile Suite or as a standalone application. When
installing the software make sure that you select the Runtime PC option in the Select Components dialog.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 17
The port used by JMobile PC Runtime can be changed from the Settings dialog. Restart the application to apply the port
change.
Trial version
JMobile PC Runtime is available with a friendly 30 days free trial policy. 30 days after installation a registration form is
displayed to enter license activation keys.
Note: Trial version is not supported on virtual machines, only valid licenses can be used.
Licensing
To register JMobile PC Runtime before the trial period expires, from the context menu choose Register.
Note: the registration process requires an Internet connection. Ports TCP 80 and 443 are used for activation.
On registration, a license file is downloaded from the License Server to the computer. License files are saved in following
folders depending on OS:
%appdata%\Exor
Licenses are locked to the BIOS ID or to the Windows product ID of the computer where the software is installed.
If JMobile PC Runtime is not able to reach the server (for example, no Internet connection is available), a button is
displayed to activate the license via email.
18 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
3 Runtime on PC
See "Installing the application" on page 6 for instructions on how to verify the activation status.
Limitations
The following features are not supported in JMobile PC Runtime:
Backup/Restore Backup and restore functions. Standard computer software can be used for the purpose.
Fullscreen mode
JMobile PC Runtime can start in fullscreen mode or in a window.
1. Right click in the JMobile PC Runtime main window to display the context menu.
2. Choose Full Screen.
%appdata%\Exor\[build number]\server\workspace
where [build number] is a folder named as build number (for example, 01.90.00.608).
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 19
Typical installation problems
If a port is in use and a conflict is detected a dialog is displayed to allow the user to change the default ports.
In some conditions JMobile PC Runtime cannot detect all services running in ports like 80/HTTP and 21/FTP, this forces
JMobile PC Runtime to be closed automatically. This happens, for example, when IIS or MS SQL Server or other windows
services are running on these ports. In these cases, disable window services
If the project download to JMobile PC Runtime fails, try one of the following procedures.
Make sure that when you change this port you also change the port used for download to HMI device in JMobile Studio.
20 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
3 Runtime on PC
3. Click OK to confirm: you can now download you project to the JMobile PC Runtime.
Impossible to establish communication with Runtime. Please check connection settings and verify the Runtime is properly
running on HMI device.
The port used by JMobile PC Runtime can be changed from the Settings dialog. Restart the application to apply the port
change.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 21
Typical installation problems
1. From the Download to Target dialog manually type-in the localhost IP address 127.0.0.1.
2. Click Download.
22 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
4 My first project
This section describes how to create a simple JMobile Studio project.
The workspace 24
Creating a project 25
Designing a page 27
Label widget 30
Message widget 39
Dialog pages 45
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 23
The workspace
The workspace
Workspace areas
JMobile Studio workspace is divided into the following main areas:
Area Description
Working Area Space where pages are edited. Tabs at the top of the area show all open pages.
Project Validator Area used from the Project Validator to list warning messages related to the project
Note: The workspace layout can be changed at any time, changes are saved and maintained through working
sessions.
24 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
4 My first project
Creating a project
Path: File> New Project
1. In the Project Wizard dialog enter a name for the project and the storage location.
2. Click Next: the HMI device selection dialog is displayed.
3. Choose one device from the list of the available models.
4. Choose device orientation.
5. Choose the project template to create.
5. Click Finish to complete the Wizard.
Element Description
ContextMenu and related dialogs Project Manager, About, Settings, Logging, Backup
HMI devices based on Linux platform can be rotated from the BSP (see "Displays" tab from the "System
Settings" on page 593"Linux Devices" on page 594page) without these limitations.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 25
Creating a project
Project Template
The "project template" proposes and then creates, the most common folder structures for the project's pages. Later, you
can always modify the structure at any time.
26 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
4 My first project
Element Description
Unified Create a unique folder that will contain all the pages of your project. The same pages could be
used on HMI Device, on remote clients and on Web Clients. Use this choice if you want to have
the same pages on all platforms.
Native Create two folders, one to contain the pages of your project that will be used on the HMI device
and and another one for the pages that will be used on Web clients. Use this choice if you want to
Web have different pages on Web clients.
Custom Give the possibility to create different folders to contain the pages to use on HMI device, Web
client, Table client, and Smartphone client.
To rename a project use the File > Save Project As function: this operation might take a few minutes.
Designing a page
Path: ProjectView > Pages
When a project is created, the first page is automatically added and shown in the Page Editor.
Adding a page
1. Right click the Pages node from the project tree and select Insert new page.
2. Type a name for the new page.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 27
The Widget Gallery
Importing a page
When importing a page JMobile Studio will import the page layout and the page widgets without importing the actions and
data links attached to widgets. You can choose between two different behavior:
l importing only the pages and the widgets: in this case all actions and data link have to be defined
l importing pages with references to actions and data links: used tags must be present in the project for these
elements to work properly
Note: Page import can only be performed between projects made using the same software version. Save the
older project as the newer version, then try again.
1. Right click the Pages node from the project tree and select Import page.
2. Choose the page to be imported from the desired project then click OK: a warning message is displayed.
3. Click Yes to remove all the links to data and actions. Click No to maintain the reference to data links and actions.
Tags need to be available in the new project.
Group of pages
You can group similar pages for easier maintenance. Grouping pages does not affect how pages appears at runtime. To
create a group of pages:
1. In ProjectView right click Pages node and select Create Group: a new folder is added
2. To move a page to a group, right click a page and select Groups > groupName.
HMI objects required to build an application are available in the Widget Gallery. The gallery is divided into several
categories, each containing a collection of widgets.
28 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
4 My first project
Example
To set the widget style for round gauges:
1. Click the style button to display the available styles for the widget.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 29
Label widget
2. Select one of the available styles from the toolbar: depending on the selected widget, different options are available.
Complex widgets
Some widgets are composed of many sub widgets. For example, a button is a complex widget composed by a button
widget and a label. The structure of widgets can be seen in the ObjectView when the widget is selected.
You can select a sub-widget, such as the label in a button, from the ObjectView and modify it without ungrouping the whole
widget.
Label widget
The label widget gives the possibility to display text and tags values.
30 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
4 My first project
Label properties
Drag and drop the widget inside the page and select the widget to open the properties dialog of the widget.
Note that some properties are visible only when the "Show Advanced Properties" button is selected.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 31
Label widget
Property Description
Text The string to display. String can be static or retrieved from a TAG. See "Attaching
widget to tags " on page 43
Marker Enable a Marker around the widget (It is visible only inside JMobile Studio)
Events Action that will be executed if widget contents change. See "Events" on page 59
Frame Parameters to enable and configure a frame of the widget and/or a color for the
background
Live Tags Enable to use tags values inside the text message. See "Live Tags" on page 34
- Dynamic Subscription When true, only the tags that are visible are retrieved
from the communication protocol. When false, all tags
are kept continuously updated even they are not visible.
Scrolling Parameters to enable and configure the scrolling of the text message
l None
l Slow
l Normal
l Fast
l Custom
When the custom mode is selected, the below parameters can be defined:
- Scroll type For each timeout, the text is scrolled of a custom amount of
characters or pixels.
l Characters
l Pixels
- Scroll delay The timeout after which label effectively start to scroll (mSec)
- Scroll timer The timeout which defines each scroll step (mSec)
- Scroll dots or The number of pixels scrolled for each timer timeout or
- Scroll characters The number of character scrolled for each timer timeout
LoopWithDelay
Text scrolling restart after each complete cycle, waiting for the
delay.
32 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
4 My first project
Property Description
Loop
Text scrolling never stop
- Lock When True, the widget cannot be selected and moved from the
JMobile Studio page editor
- Static Normal
Optimization JMobile Studio will decide the best optimization mode to use
Static
JMobile Studio optimize the widget assuming it will never be
modified by the runtime
Dynamic
JMobile Studio will not add additional optimizations
Position The widget position on the display. See "Widget position on the display" on page 35
Attach to tag:
the dialog where select the tag to use will be opened
A double clicks over the label widget will open the edit dialog box where you can enter the text to display and set the main
text properties.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 33
Label widget
Live Tags
"Enable Live Tags" is enabled, text between square brackets are managed as tags place holders and will be rendered, from
the runtime, using the tag value.
For example, the text label "Temperature: [Tag1] ºC" will be rendered as:
Temperature: 18 ºC
Tags
l [TagName]
The tag value is read and continuously updated
Use '\' before '[ ]' if you want to show the '[ ]' in the description string, for example: \[Tag\[1\]\] will display the
string "[Tag[1]]".
Use '\', even when the tag label contains square brackets. For example, to display the live tag value of tag
“TAG]3” or “TAG[3]” use:
l TAG\]3 = [TAG\]3]
l TAG\[3\] = [TAG\[3\]]
Array Tags
l [TagName]
All array elements will be displayed using a comma separate list.
l [TagName[-1]]
All array elements will be displayed using a comma separate list.
34 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
4 My first project
l [TagName.Index]
Example: [MyARRAY.5] will display the sixth element of the MyARRAY
l [TagName[TagIndex]]
Example: [TagIndex] will display the sixth element of the MyARRAY when TagIndex is 5
Data Formats
Placeholder characters can be used to control how to display the tag value (see "Custom Formats" on page 38)
l [TagName|format("###")]
Example:
Note that by default, all tags are displayed as an integer. If you want to display a float number, you have to
specify how to show the number adding the decimal digits.
Rotation
To rotate a widget, click two times the widget. After the first click, the markers will become square, after the second click
will become circles. Now click the mouse over a circle marker and drag and drop to rotate the widget. The rotation center is
identified by the CX and CY parameters.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 35
Data field widget
Note that all "Position" properties can be attached to tags and can be modified dynamically at runtime to move
the widget.
36 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
4 My first project
Field properties
Property Description
l None
No restrictions (system decide the format to use)
l Numeric
Numerical format. Decimal digits and Leading digits can be used to better define
the number format
l hex
Hexadecimal format. Leading digits can be used to better define the number
format
l HEX
The same of "hex" format but using uppercase
l scientific
Scientific format. Decimal digits can be used to better define the number format
l SCIENTIFIC
The same of "scientific" format but using uppercase
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 37
Data field widget
Property Description
l Custom
Use the additional "Custom" parameter to better define the format to use (see
the below table)
Decimal Digits Number of decimal digits to show (not available on all format types)
Leading Digits Number of leading digits to show (not available on all format types)
Custom String that define the number format to use (available only when selected Number
Format is CUSTOM)
l None
l Alphabetic, Numeric, Etc.
Pop up a predefined keypad or a user keypad (see "Keypads" on page 397)
l Wheel
Keypad will not be displayed . Wheel can be used to increment/decrement the
numeric value
l Macro
Keypad will not be displayed . Keyboard macro can be used to enter keys (see
"Keyboard actions" on page 207)
Events
OnDataUpdate Action Commands list to execute any time the tag value changes (See "Actions" on page 201
for the available commands)
The character used as thousand separators (point) and the character used as decimal separator (comma) can be
modified from the global Project Property. See "Regional Settings" on page 95
Attach to tag:
the dialog where select the tag to use will be opened
Custom Formats
In custom property, the allowed chars are “#” “.” “0” “h” “H” “e” “E”
Use the place holder characters to control the display of digits before and after the decimal place. Use the number sign (#) if
you want to display only the significant digits in a number. This sign does not allow the display non-significant zeros. Use
the numerical character for zero (0) if you want to display non-significant zeros when a number might have fewer digits than
have been specified in the format code.
38 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
4 My first project
If a number has more digits to the left of the decimal point than there are placeholders in the format code, the extra digits are
displayed. However, if a number has more digits to the right of the decimal point than there are placeholders in the format
code, the number is rounded off to the same number of decimal places as there are placeholders.
Examples
1500 5DC #H
1500 5dc #h
Message widget
The message widget gives the possibility to display text a message indexed from a tag value.
Message properties
Drag and drop the widget inside the page and select the widget to open the properties dialog of the widget.
Note that some properties are visible only when the "Show Advanced Properties" button is selected.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 39
Message widget
Property Description
Value The tag name to used to dynamically select the message to display. See "Attaching
widget to tags " on page 43
When the "Access Type" is R/W, the value of the attached tag can be changed by
clicking on the message. As a result, the message will be updated to be aligned with
the new index value.
Messages The list of messages to display. Click + to open a dialog where you enter messages
and the associated index
View Index If true, when the widget is editable (Access Type = R/W) the selection dialog will also
show the index number associated with each message.
Events Action that will be executed if widget contents change. See "Events" on page 59
Marker Enable a Marker around the widget (It is visible only inside JMobile Studio)
40 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
4 My first project
Property Description
Live Tags Enable to use tags values inside the text message. See "Message widget" on page 39
- Dynamic Subscription When true, only the tags that are visible are retrieved
from the communication protocol. When false, all tags
are kept continuously updated even they are not visible.
Frame Parameters to enable and configure a frame of the widget and/or a color for the
background
- Lock When True, the widget cannot be selected and moved from the
JMobile Studio page editor
Position The widget position on the display. See "Widget position on the display" on page 35
Attach to tag:
the dialog where select the tag to use will be opened
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 41
Message widget
A double clicks over the label widget will open the edit dialog box where you can enter the text to display and set the main
text properties.
The "Pick Text" button gives you the possibility to copy text already used from other widgets
Import/Export
The import/export buttons, give you the possibility to import or export the entire messages list inside a .xml file that can be
edit/modify using external tools.
42 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
4 My first project
If you need to use the same message widget in different places, to save maintenance time you can create and
duplicate a custom widget. When a custom widget is configured with "Only Logic" or "Full" inheritance mode, the
modify (e.g. add, remove or change messages list) of a single widget will be propagated to all widgets. See
"Creating a custom widget" on page 494
Data sources
Elements to which an object property can be attached:
System Predefined system tags (see "System Variables (Attach To)" on page 135)
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 43
Attaching widget to tags
3. Set the access type (for example Read Only). The Array Index field appears when the selected tag is an array to
identify the element of the array to use. The indirect index mode, through an additional tag, is supported.
4. Click OK to confirm.
The icons adjacent to the tag name highlight when a definition does not match the tag definition in the dictionary, or when
missing. If the Show all tags is selected, all the dictionary tags are shown also if not imported within the application. A
double-click will import the tags from the dictionary.
Communication Error
Two icons may appear close to widgets that have an attached tag.
44 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
4 My first project
l : communication error
Dialog pages
Path: ProjectView> Dialogs
Dialog pages are opened at runtime on top of the current page on project request. They are used to notify alarms, errors or
to require user action.
Dialog Type modal = user cannot return to main project window/page until dialog is closed.
non-modal = user can continue to use main project window (or other non- modal dialogs ) while a
dialog is shown on top of it.
When the maximum number of open dialogs is reached, the oldest dialog is closed to open the new one.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 45
Dialog pages
46 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
5 Programming concepts
Programming for JMobile Studio is based on a few basic concepts and behaviors.
Data types 48
Formula 54
Events 59
Widgets positioning 62
Grouping widgets 64
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 47
Data types
Data types
When creating a tag you have to specify its properties. Data type are specific to JMobile Studio, memory type are specific
to the selected protocol. Choose the value according to the internal representation you need for the selected controller
address.
Note: arrays type use the same data type followed by "[ ]" (i.e.: boolean [ ])
System Time
Format of System Time inside the HMI Device is the Unix time (also known as Epoch time). It is the number of seconds
that have elapsed since the Unix epoch, that is the time 00:00:00 UTC on 1 January 1970.
Example:
48 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
5 Programming concepts
The page toolbar shows only the most common object properties, while the property pane show all the properties in a basic
or advanced view.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 49
"Attach to" parameters
3. Set the access type (for example Read Only). The Array Index field appears when the selected tag is an array to
identify the element of the array to use. The indirect index mode, through an additional tag, is supported.
4. Click OK to confirm.
The icons adjacent to the tag name highlight when a definition does not match the tag definition in the dictionary, or when
missing. If the Show all tags is selected, all the dictionary tags are shown also if not imported within the application. A
double-click will import the tags from the dictionary.
Data sources
Elements to which an object property can be attached:
System Predefined system tags (see "System Variables (Attach To)" on page 135)
50 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
5 Programming concepts
Advanced search
Various syntax options can be applied to search box:
Main
Function
options
Wildcards Search using simple wildcards matching . Character '?': matches any single character. Character ' *':
matches zero or more of any characters." […]": sets of characters can be represented in square brackets.
Filtering tags
Choose various tag filter criteria:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 51
"Attach to" parameters
Scaling tab converts the tag value. In By Range section set the input and output range: the system will automatically
calculate the scaling factors.
52 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
5 Programming concepts
Section Function
From the toolbar add/remove or move up/down the colors lines. The
tag value is editable and you can modify the sequence values.
l 5, 10-15, 20
l A, AB, C
It is responsibility of the application's developer define all items correctly to cover all possible application’s
values, we could have unexpected color when the value is not defined inside the defined colors palette.
Note that the mapping tag value to color will return a string data type (e.g. “#FF0000”)
Datalink Serialization
Instead of use the above “Attach to…” dialog box, datalinks can be entered, or modified, manually.
Click a button in the Properties pane and enter the text that describe the datalink
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 53
Formula
on in case of formula:
= <formula>
Example:
l arrayTag[2]
l Tag[0|index]
l Alarm triggered:_SysPropMgr
l Tag|R/W|ScaleXForm(1,10,0)
l Tag|R/W|ScaleXForm(1,10,0)|ByteIndexXForm(1)|ColorPaletteCustomXForm(0#00aa7f,1#ff0000)
l =$('Tag1')>$('Tag2')?$('Tag1'):$('Tag2')
l =$Contains($('Tag4'),$('Tag3'))
l =$Pow(2,$('Tag2'))
Formula
A formula is an expression made of:
l Operators: can be the basic mathematics operations, logic operators, compare operators or basic string operators.
l Operands: can be literals (numbers and strings used as constants) and references to tags.
Round brackets are supported as priority operators. The operator $ will be used to call functions and, in particular, to
referring to a tag (see below for examples).
The attach to dialog allow to use a formula to calculate the value to return.
54 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
5 Programming concepts
Commands
Save the entered formula inside the formulas' library to have the possibility to reuse the same formula inside
other places of the project.
When you are in edit mode you can simple edit the formula and double click tags or functions from the library to add them
inside the formula.
l $('Tag1')+$('Tag2')
l $('Tag1')&$('Tag2')
l $('Tag1')>$('Tag2')?$('Tag1'):$('Tag2')
l $Pow(2,$('Tag2'))
l $Contains($('Tag1'),$('Tag2'))
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 55
Formula
Basic Operations
$FuncName( param1, param2, … ) General function call. (Both default and user ones)
exp1 ? exp2 : exp3 Ternary expression. If exp1 is true, then is taken exp2, otherwise is taken
exp3. This is like using if/then/else statement
Math Operators
+ Addition
- Subtraction
* Multiplication
/ Division
% Module
Bitwise Operators
<< Shifts left by pushing zeros in from the right and let the leftmost bits fall off
>> Shifts right by pushing copies of the leftmost bit in from the left, and let the rightmost bits fall off
>>> Shifts right by pushing zeros in from the left, and let the rightmost bits fall off
Logical Operators
&& AND
|| OR
! NOT
56 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
5 Programming concepts
Compare Operators
== Equal to
!= Not equal to
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 57
Formula
A user formula could be retrieved from the formulas’ library as for the other predefined formulas.
58 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
5 Programming concepts
Events
Events are used to trigger actions at project level and can be associated to:
You can attach one or more actions to an event, so that they will be executed whenever the event occurs.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 59
Events
OnClick / OnMouseClick
Triggers the event when the button/key is pressed and released quickly.
OnHold/OnMouseHold
Triggers the event when the button/key is pressed and held pressed for a certain time set as Hold Time in the widget
properties. Actions programmed for this event will be executed only after the hold time has expired.
The default Hold Time is configured in Project properties but can be redefined for each button/key. See "Project
properties" on page 83.
60 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
5 Programming concepts
Note: If Hold Time is set to -1 for the widget, the project Hold Time value will be used.
Autorepeat
Enables auto repeat for a press or hold event of button or key. Autorepeat Time is specified in the Project properties but
can also be redefined for each button or key
OnWheel
Triggers the event when a wheel (for example a USB mouse wheel) value changes. A wheel usually is used to
increase/decrease values in a text box or attached to a tag.
OnActivate
Triggers the event when a page is loaded. The event starts before widgets in the page are initialized.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 61
Widgets positioning
OnDataUpdate
Triggers the event when the tag value changes. The update moment depend on the time needed by the protocol to finish the
update process. For example the OnDataUpdate event can be triggered or not, depending on whether data becomes
available from protocol respectively after or before widgets being initialized for the first time. In particular, page change
notifications are more likely to happen with slow protocols and remote clients.
Note: The value read during OnActivate can be the same obtained from a subsequent OnDataUpdate event,
since OnDataUpdate notifications are sent asynchronously.
Widgets positioning
You can position widgets in the page using two methods:
l Snap to Grid
l Snap to Object
Snap to Grid
Path: View> Snap to Grid
When you move or re-size an object, its top left corner will align with the nearest intersection of lines in the grid, even if the
grid is not visible.
Parameter Description
Snap to Object
Path: View> Snap to Object
When you move an object, it will align with other objects on the page.
When you select an object, one of the following hot points is selected as the source of the snap point, depending on the
area you pressed: top, top left, top right, bottom, bottom left, bottom right, left, right, center:
62 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
5 Programming concepts
An algorithm finds a matching hot point among the near widgets hot points matching either the x or the y coordinates of the
source snap point. For line widgets, the source snap points are the terminal points of the line.
The order of the widget on the page is shown in the combo box. A widget with greater z-order number is in front of an
element with a lower z-order number. A picture icon identifies static objects, a movie frame icon identifies dynamic objects.
Important: Correct ordering of widgets is essential for runtime performance since overlapping
dynamic widgets can invalidate static optimization and reduce performance of HMI applications.
l On the toolbar click and select a widget: all widgets above this one are hidden
l On the toolbar click and select a widget: all widgets below this one are hidden
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 63
Grouping widgets
Grouping widgets
To group widgets:
Tip: Double click to enter the group editing mode. In group mode only the group widgets are editable and
selectable. All other widgets are partially hidden
64 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
5 Programming concepts
or
l Select the widgets that will be inside the table and click the “Grid Layout” button on page toolbar. The selected
widgets will be aligned and collected inside a group with the grid layout property enabled.
There are several elements associated with the grid layout that can be configured:
l Grid properties
l Rows, Columns Properties
l Cells Properties
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 65
Grouping widgets
Grid Properties
Parameter Description
Horizontal overflow This parameter define the behavior of the grid when it is too small
Vertical overflow to contain all rows and columns.
l Hidden
Rows and columns that do not fit into the grid are not
displayed
l Visible
The grid can not be made smaller than the minimum size
required to contain all defined rows and columns
l Scroll
When the grid is too small to hold all the defined rows and
columns, the scroll bars can be used to shift the content of
the grid.
66 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
5 Programming concepts
Parameter Description
Horizontal underflow This parameter defines the behavior of the grid when it is larger
Vertical underflow than the size defined for the rows and columns
l Blocked
The grid can not be made larger than the maximum size of
rows and columns
Scrollbar color Parameters to define look and position of the scroll bars
Scrollbar image
Scrollbar offset
Scrollbat size
Scrollbar autohide
Margin collapsed Collapse all left-right and top-botton margin using the parameters
of the stroke with greater width.
To add or remove rows or columns, double click over the grid to enter in edit mode and right click over column or row
selector to open the context menu.
To merge or split rows or columns, double click over the grid to enter in edit mode and move the cursor over the ribbons:
l Double click the black triangle to merge the two adjacent rows or columns (1)
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 67
Grouping widgets
68 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
5 Programming concepts
Geometry parameters
Parameter Description
Left margin Distance of the widget from the border of the cell
Right margin
Min width Min/Max width that widget can assume when the cell is stretched
Max width
Stretch Defines the relationship between the widths of the columns that
will be maintained if the grid is stretched
Top margin Distance of the widget from the border of the cell
Bottom margin
Min height Min/Max height that widget can assume when the cell is stretched
Max heighty
Stretch Defines the relationship between the heights of the rows that will
be maintained if the grid is stretched
Style parameters
Parameter Description
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 69
Grouping widgets
The list of values that are separated by a comma, are related to rows and columns. Example, the first value is for
row 0, the second value for row 1, and so on.
Color format could be #rrggbb or #rrggbbaa, where "aa" is the alpha value which defines the opacity of the color.
Selection parameters
The selection parameters is available only when the grid is used inside a Table Widget (see "Table widget" on page 473 for
details)
Parameter Description
Cells Properties
Properties of a single cell are available inside the properties panel when a cell is selected. To select a cell: first double click
the widget group, then click the cell to select.
70 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
5 Programming concepts
Parameter Description
Horizontal underflow This parameter defines the behavior of the widget when the cell is
Vertical underflow larger than the size defined for widget.
l Inherited
Inherits the value used for the row or column
l Left, Center, Right - Top, Middle, Bottom
Defines the position of the widgets when cells are bigger
than the maximum defined sizes
Printing report
Note the grid layout is available even inside the print report gallery.
To change properties:
1. Select widgets.
2. Set common properties from Properties pane.
3. When multiple widgets are selected, the Properties pane title changes to <MultipleObjects>: all changes will be
applied to all selected widgets.
Note: Not all properties can be modified for multiple widgets simultaneously and must therefore be modified
individually.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 71
Changing fill color property according to tag values
l Using ColorPalette
l Connecting the Color property to a String type tag
Note: The last used colors’ tables are saved and can be reused selecting them from the colors list box on the
toolbar.
l #XXYYZZ, Where XX, YY and ZZ are the RGB components of the needed color expressed in Hexadecimal format
(range 00–FF).
l rgb(XXX,YYY,ZZZ), where XXX, YYY and ZZZ are the RGB components of the needed colors expressed in
Decimal format (range 0–255).
Note: This feature can be applied to all the objects available in the Widget gallery that have a color property. The
runtime change of the color is possible only thanks to the properties of the SVGs that are composing the object.
This feature can not be applied to other image formats such as JPEG or BMP files.
72 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
6 Pages
This section describes how pages are organized. You can have the same pages shown inside all clients (default mode) or
you can customize the pages to better adapt them to each different client.
Unified pages 74
Project Validator 74
Differentiated pages 76
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 73
Unified pages
Unified pages
Starting from JMobile Studio v4.0 there is no longer a need to create the pages for HMI device and Web client differently.
The same pages can be rendered indifferently on the HMI device or on Web clients. Since some properties or some
widgets could be not supported on Web client, some pages could be render differently. The "Project Validator" tool can be
used to check if some pages contain widgets that will be rendered differently into Web client.
1. Pages
2. Project Validator button
3. Project Validator output messages
Project Validator
The "Project Validator" tool check and list the widgets that will be rendered differently into Web client. User can double
click each warning message reported from the Project Validator to open the pages that contain the reported widgets to take
the appropriate action. However, user action is not mandatory, the project can be downloaded anyway and the unsupported
property will not be managed from the Web Client.
Note that the current version of the Project Validator checks the widget's web compatibility. It is not
checking the entire project (e.g. missing tags or Javascript errors)
74 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
6 Pages
Example
l When the property is set to "False", HMI device and Web client will work in the same way and project validator will
not report any message.
l When the property is set to "True", the Project Validator will report the warning message. In the case that the project
will download to the HMI device, the Web client simply will not manage the "Release on disabled" property.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 75
Differentiated pages
Group Level
When the "Group Level" is checked, the Project Validator will report the group name that contains one or more widgets with
the unsupported properties. A double click will select the grouped widget.
When the "Group Level" is not checked, the Project Validator will report the list of the not supported properties. A double
click will select the widget that have the unsupported property.
Differentiated pages
If a project needs to have different pages for the HMI device, web client, tablet client, etc., there is the possibility to add
different folder to contain the pages to use on the different clients. Right click on the page folder to add a new category of
pages. For each category, you have to define the below properties where Technology, User Agent and Min/Max are filter
parameters to define the web clients that belong to the category.
Property Description
76 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
6 Pages
Property Description
Technology Identify the clients that can use these pages. It can be a combination of:
User Agent It is a regular expression that identifies the web browsers that can display the pages of the category. The
user-agent of the web client has to match with this parameter.
Example:
Min Width Defines the size of the display of the Web browser that has to show the pages of this category.
Min Height
The default, Min=0 and Max=-1, is meaning any size.
Max Width
Max Height
If the definition of a Web client belongs more than one category, are choices the pages that are available inside
the closest category.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 77
Differentiated pages
Shared pages
Pages can be shared between the categories. Shared pages are highlighted in gray color and can be opened indifferently
from each category.
78 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
6 Pages
Home Page
From the context menu of the page is possible to define the Home page of the category. The Home Page is the first page
that is displayed in the browser type defined in the category and defines the starting point for your web project. The pages
you can access from the home page depend on how other pages are linked in the project.
Alias pages
Using pages shared between categories could be useful the alias page parameter to load the appropriate customized page.
For example, you can have a shared "Page1" common to all categories. Page1 will be shown on both the HMI device and
on Web Client, but from this page, you need to add a macro to load a customize setup page. This means a macro that load
the page "Setup_Native" on HMI device or a different page "Setup_Web" on a web client.
To load a different page depending on the client used, you can add the same alias to both "Setup_Native" and "Setup_Web"
pages and use the alias name in the LoadPage macro.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 79
Differentiated pages
80 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
6 Pages
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 81
Differentiated pages
82 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
7 Project properties
Project properties contain settings for the project.
The project Properties pane contains a list of project level user-configurable data.
Some properties are displayed only in advanced mode. To view all project properties:
l Click Show Advanced Properties button to expand the property view in the Properties pane.
Available properties
Property Description
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 83
Runtime
Property Description
Version The Version field is available for users to report the project version
+ Runtime Properties related with the application runtime. See "Runtime" belowfor details
+ Project Properties related with the project. See "Project" on page 90 for details
+ Web Properties related with the web interface. See "Web" on page 94for details
+ Regional Settings Definition of date format, list separator, thousand and decimal symbol of number. See
"Regional Settings" on page 95 for details
Project ID, Project GUI and Project Version are available from system variables. See "Default variables" on page 153 for
details.
Runtime
Path: ProjectView> double-click Project properties> Properties pane
Property Description
Context Menu Define how context menu should appear in the HMI project.
on delay = context menu appears touching/pressing and holding for a few seconds an
empty area of the runtime screen, or via Context menu action
Buzzer on Touch Enables buzzer when touching a widget on HMI device screen.
Supported widgets:
l buttons
l hotspots
l needles
l fields
l external keys
l combo boxes
l tables items
l control list items
84 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
7 Project properties
Property Description
Keyboard Enables the use of keyboard macros at runtime when using external keyboards.
JavaScript Debug Enables the JavaScript debugger at runtime for the current project.
Image DB enable Activates an engine used by the Runtime to optimize project performance.
FreeType Font Switches to FreeType the font rendering used by JMobile Studio and runtime.
Rendering
The main reason for using the FreeType is that native WCE engine does not
support very well Asian fonts. The second, not less important, reason is that we
need the same engine in all devices to avoid different rendering, in particular if
static optimization is involved.
Communication icon Delay before display the communication error icon (default is 0 mSec)
delay (ms)
The special value -1 is meaning always disabled
Fast Boot When fast boot is enabled and the User Interface is started before the background server
l Default: User Interface is loaded after the background server is ready to use
l Fast UI: User Interface is loaded before loading the background server
Fast Boot
When fast boot is enabled, the HMI device will provide the welcome screen as fast as possible after the power up. In this
mode, only the minimum necessary features are loaded before starting the User Interface. Loading of protocols, events,
trends, alarms, actions are postponed after loading the User Interface.
l The “Fast Boot” flag available inside the advanced project properties
l The “Fast Boot” flag available inside the Services page of the BSP System Settings tool (see "System Settings" on
page 597)
When fast boot is enabled and the User Interface is started before the background server the JavaScript event
project.onServerReady can be used to get server synchronization.
Example:
if (!project.serverIsReady) {
// Set the callback to wait for server ready
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 85
Runtime
project.onServerReady = onServerReady;
} else {
// Server is ready, call it now
onServerReady();
}
function onServerReady()
{
project.setTag("Tag1", 1);
project.showMessage("Server is ready, tags can be used: " + project.getTag("Tag1")
)
}
Developer tools
Collection of runtime debugging functions that can be enabled or disabled.
Tool Description
Show/Hide all Shows a dialog containing information about device status like CPU load, memory usage,
event queues.
CPU statistics Shows information on CPU load. See "CPU Statistics" on the facing page.
Memory statistics Shows information about system RAM . A negative value indicates that free memory is
decreasing.
Event queues Shows information on event queues (size, maximum achieved size, number of processed
events, last and maximum processing time). Timing statistics are only available for non-UI
queue.
Embed window Allows embedding in runtime the scene or leave the developer tool window as a standalone
window (dialog).
Disable watchdog Disable the watchdog function and prevents system restart in case of freeze or crash of
services.
Ignore exceptions Disables crash report function, exceptions are not saved in the crash report window.
86 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
7 Project properties
Tool Description
Launch VNC Launches the VNC server if available in runtime. VNC server is available as a plugin for
Windows CE runtime only.
Profiling Measures the time spent for loading/rendering the active page. See "Profiling" below
Watchdog
This feature allows you to disable the watchdog. This way you can avoid system restart in case of a runtime crash and
have the time to save the crash report or check system status information (for example,memory available, CPU load,
events queue size and so on).
The crash report dialog is displayed automatically in case of a system freeze or crash allowing users to save a log file of
crash.
CPU Statistics
On the top row the current machine time is shown along with the total device uptime.
CPU statistics are collected with a frequency of 2000 milliseconds. The actual period and the overhead required to collect
and visualize statistics are displayed as well. The more the actual period is far from the nominal 2000 milliseconds the
higher is the system load. CPU consumption of threads is listed reporting the name of the thread (if available, main thread
is marked with a *), the thread ID, the thread priority and CPU time spent during the 2000 milliseconds period, divided in
user and kernel time.
Profiling
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 87
Runtime
Profiling allows you to check time spent for loading/rendering the active page. Profiling will start from the next page load
and will be active only for the first painting of the page to the screen (the configuration is retained).
Enable timelog Enable timelog capture. Timing will be visible inside the “Timelog summary”
window.
Save timelog to file Saves a report of profile details and the time spent loading a project and its
pages into a timelog.txt file. This file can be exported and shared for further
analysis.
Overlay OnLoad times This view allows displaying time spent on single widgets and is available only for
Overlay Rendering times the rendering and OnLoad steps. The view gives an immediate feeling of where
time is spent. Red zones represent the most time critical zones. Detailed widget
times are visualized by a tooltip window (on Windows platform attached to
mouse over event, on Windows CE press drag and release over the region of
interest). In case of out-of-the-scene widgets some arrows allow to navigate to
these areas and hovering on them the tooltip will show the area summary
Timelog data
Data Description
Time parsing Time spent parsing current page. Depends on page complexity/number of
widgets.
Time gfx creation Time spent for image rendering. Mainly related to the Onload method.
Time unloading Time spent unloading the page, if current page depends from another page.
88 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
7 Project properties
Times are provided in couples: wall time/CPU time. Wall time is the absolute time required by this part which can be higher
than the actual CPU time required since higher priority threads are also running (for instance protocols). The start time
column refers to the page load start time. It can be used to track the actual time required to load a page, since partial times
only refer to the most time critical functions and do not include other times that often contribute significantly to the total
time.
For example, the actual total wall time required to load a page is rendering (which is the last step) start time + rendering wall
time.
Once you have switched to the new font rendering, save the project and verify that all texts are displayed correctly in all
project pages.
When switching to the FreeType font engine a project created with the older font engine, you may experience the following
problems:
l text requires more/less pixels for rendering thus changing text layout
l widgets are resized to accommodate text
l better rendering can be obtained using antialiasing (antialiasing is a text widget property)
Plug-in
You can choose which software modules are downloaded to the runtime with the project. Software plug-in has been
designed to reduce memory requirements for the HMI application in HMI devices where storage is limited. This option is not
supported in Windows platform.
Property Description
Note: Not all software plug-in modules are compatible with all HMI device platform.
Once enabled, software plug-in become part of the runtime. Use JMobile Studio to install it using one of the following
procedures:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 89
Project
To remove plug-ins from runtime use one of the following functions in System Mode:
l format flash
l restore factory settings
Important: The system cannot detect automatically which software plug-ins are required by the HMI
application, make sure you select them all in the Project Properties.
Note: Software plug-in support has been designed for embedded HMI devices where storage is limited. This
option is not supported in Windows platform.
Project
These properties define various elements of page behavior.
Property Description
Home Page The first page loaded at runtime (after log-in page if security is enabled in project).
When security is enabled, you can specify a different homepage for each groups of users.
In this case this setting is ignored. See "User management and passwords" on page 365 for
details.
PageWidth Defines the default size in pixel of an HMI page. Default is the display resolution of the HMI
PageHeight device model selected when creating the project.
Project Type Defines HMI device type for the project. According to the model, some project features and
properties are automatically adjusted.
WARNING: Starting from v2, the JMobile HMI Runtime will check if the
selected project type is matching with the HMI device model and will
advise with a message when the selected type is not matching: “HMI Type
mismatch. Convert project and download again.”
PageRequest You can synchronize pages shown on the JMobile HMI Runtime and HMI Client from a
CurrentPage controller such as a PLC.
SyncOptions
Attached tag must contain an integer value within the range of the available project pages
and must be available at least as a Read resource.
Hold Time Defines the values for hold time and auto repeat time for buttons and external keyboards.
90 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
7 Project properties
Property Description
Autorepeat Time Note: These properties can be redefined for each button or key in their widget
property table.
Hide Project Loading When hidden, the splash screen stay on the screen until the application is ready to run.
at boot
Target Zoom Factor It is the zoom factor of the HMI device that will be applied when project is loaded at runtime.
Range 0.3–2.9
Background color When the defined page is smaller of the entire display area, colorize the area that is not
option covered from the page (for example when page is Zoom Out)
l sha256
l sha1
Gesture Passthru Enable the possibility to pass gesture events to underlying widgets after a configurable
Enabled delay. User has to keep pressed the finger and then execute the gesture.
Gesture Passthru Delay When enabled, the gesture events are passed to underlying widgets after this delay (see
(ms) "Gesture events pass thru" on page 458 for details)
l false
l true (default)
This property give the possibility to disable the multi touch gestures. This could
be useful to avoid problems with old projects that were not designed to manage
the multi touch gestures.
On Access Denied When user try to use a widget that is locked from the security configuration to read-only
(e.g. a field or a button), a padlock icon is shown for a couple of seconds to highlight that the
widget is not accessible.
l None
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 91
Project
Property Description
l Show Icon
ComboBox View Mode Select the visualization mode of all the Combo Box widgets of the project (see "Combo Box
widget “full screen” mode with images" on page 448 for details)
l Context
Classic view with drop-down menus
l Full screen
Enhanced view with configurable texts and images that will pop up in the middle of
the screen for easy scroll and selection.
Property Description
CurrentPage Page number displayed on the HMI device or on HMI Client or on both.
Attached tag must be available at least as a Write resource and must have integer data
type.
SyncOptions Synchronization of project pages with the value contained into the CurrentPage property.
Example: forced page change from controller/PLC to HMI device and HMI Client
Set properties as follows:
CurrentPage empty
SyncOptions disable
Set value of tag "A" to display the requested page on HMI device and HMI Client.
92 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
7 Project properties
Example: forced page change from controller/PLC to HMI and HMI Client. Read current page loaded
on HMI
Set properties as follows:
SyncOptions local
Set value of tag "A" to display the requested page on HMI device and HMI Client. Tag "B" will contain the number of page
currently shown by the device.
Example: forced page change from controller/PLC to HMI device and HMI Client. Read current page
loaded on HMI Client.
Set properties as follows:
SyncOptions remote
Set value of tag "A" to display the requested page on HMI and HMI Client. Tag "B" will contain the number of page currently
shown by HMI Client.
Example: forced page change from controller/PLC to HMI device and HMI Client. Force HMI Client
page synchronization with HMI device (not vice versa).
Set properties as follows:
SyncOptions local
Set value of tag "A" to display the requested page on HMI and HMI Client. Change page on HMI to display the same page
on HMI Client.
Example: forced page change from controller/PLC to HMI device and HMI Client. Force HMI page
synchronization with HMI Client (not vice-versa).
Set properties as follows:
SyncOptions remote
Change value of tag "A" to display the requested page on HMI and HMI Client. Change page on HMI Client to display the
same page on HMI.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 93
Web
Example: synchronize displayed page between HMI device and on HMI Client
Set properties as follows:
SyncOptions local+remote
Changing page on HMI device, same page will be shown on HMI Client and vice-versa.
Web
Path: ProjectView> double-click Project properties> Properties pane
Property Description
Web Inactivity Timeout Defines a timeout for JM4Web client. When the timeout expires without any activity the
current user is logged out.
Values 0 = disabled
Refresh Time Defines the refresh time for the communication between the runtime and JM4Web clients.
Range 500–10000 ms
Enable Global Define if the JavaScrip code defined inside the Project Properties, general triggered from
JavaScript for remote Alarms and Schedulers events, have to run only on local HMI device or even on remote
clients.
94 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
7 Project properties
Property Description
Max Bandwidth (Kbs) Limit for maximum data sent by server (useful for old slow browsers). Set to 0 to use all the
available bandwidth (default)
Web clients connection Auto The connection mode is selected by the client (default)
mode
SSE Force the Server-Sent Events mode
WebPageRequest You can synchronize pages shown on the JM4Web Clients from a controller such as a
PLC.
Web Communication Delay before display the communication error icon (default is 0 mSec)
icon delay (ms)
The special value -1 is meaning always disabled
The project.getClientType() can be used to retrieve the running client type. See "Project object" on page 529
inside JavaScript chapter for additional details.
Events
Path: ProjectView> double-click Project properties> Properties pane
Property Description
OnWheel Used only in conjunction with wheel input devices. Normally the wheel is used to
increase/decrease the value of a tag without an external keyboard device.
Attach this property to a change of wheel event and use an action like BiStep to
increase/decrease a tag value.
The project's OnWheel Action is executed only when the OnWheel Action
will not overwritten from the loaded page.
Regional Settings
Path: ProjectView> double-click Project properties> Properties pane
Property Description
Short date format The date format to use when user select SHORT-DATE in the date format of the widget
Long date format The date format to use when user select LONG-DATE in the date format of the widget
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 95
Regional Settings
Property Description
List separator List separator character to use inside the dumped files.
Decimal symbol Character to use in numeric widgets to separate the integer part from the fractional part (it is
visible only when user configure the widget to show the fractional part)
Thousand symbol Character to use in numeric widgets to separate the thousands (it is visible only when user
configure the widget to show the thousand character)
You can use placeholders to freely define the Time and Date format (see "Time and Date placeholders" on
page 456)
96 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
8 The HMI simulator
HMI simulator allows you testing projects before downloading it to the HMI device. It may be used to test the project when
no HMI device is available and to speed up development and debugging activities.
l online simulation - in communication with real devices (only for protocols with Ethernet or RS-232 communication),
l offline simulation - simulating tag behavior
The data simulation method is set in the Simulator column of the Tag Editor.
Simulator settings 98
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 97
Data simulation methods
Method Description
Variables Data is stored in a simulator variable. This variable holds the value of the tag so you can read and write the
value.
SawTooth A count value is incremented from Offset to Amplitude + Offset value with a Period of 60..3600 seconds.
When the counter reaches Amplitude + Offset, the value is reset to Offset and the counter restarts.
Sine A sine wave value is generated and written to the tag value. Min, Max and Period values can be defined for
Wave each tag.
Triangle A triangle wave value is generated and written to the tag value. Min, Max and Period values can be defined
Wave for each tag.
Square A square wave value is generated and written to the tag value. Min, Max and Period values can be defined
Wave for each tag.
Simulator settings
The Simulator works by default with simulated protocols. It can also work with real protocols (Ethernet or serial protocols)
Note: For protocols not supporting communication with external devices, such as the Variables protocol, this
option is always disabled.
98 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
8 The HMI simulator
2. Select Use Simulation to use simulated protocols, otherwise real protocols will be used for communication with
external devices.
1. On the Run menu, click Start Simulator: the Simulator runs on the computer in the same way as the server would
run on the HMI device.
1. On the Run menu, click Stop Simulator or on the simulated page double-click the Exit button.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 99
Launching and stopping the simulator
100 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
9 Transferring the project to HMI
device
To transfer the JMobile Studio project to the target HMI device you can use:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 101
Download to HMI device
This function transfers project and JMobile HMI Runtime via Ethernet .
Note: The HMI device must have a valid IP address. See "HMI device basic settings" on page 12 for details on
how to assign an IP address.
You can even enter the IP address manually or, if available, the host name provided by a DNS server. Using a
service tool like Bonjour, Linux-based HMI devices can be discovered using their hostname (e.g HMI-0d37.local).
Bonjour is a trademark of Apple inc.
3. Click Download: JMobile Studio will switch the HMI device to Configuration Mode and transfer the files.
When the download operation is completed, the HMI device automatically switched back to Operation Mode and the
project is started.
Advanced options
Option Description
Download only Transfers to the HMI device only the modified project files.
changes
102 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
9 Transferring the project to HMI device
Option Description
Delete runtime Modified configuration of recipes, users, schedulers, etc. done at runtime will be deleted and
dynamic files overwritten by the configuration defined in the project.
CAUTION: Dynamic files are not deleted if stored on external devices (USB or
SD Cards).
When transferring a project, JMobile Studio uses a combination of HTTP and FTP connections:
l HTTP connection - issues the commands to switch to transfer mode or to unload running project,
l FTP session - transfers the files to the flash memory in the HMI device.
Advanced Settings
Using the “Advanced Settings” option, you can define the ports to use, but generally, you do not need to enter this
information because HMI devices will provide the ports to use inside the panesl list.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 103
Download to HMI device
1. Click Target Setup: the Advanced Settings dialog is displayed. Default port for HTTP connections on the HMI
device is port 80.
2. Set correct HTTP, FTP or HTTPS, FTPS ports for the HMI device. (These are the ports used by the system to
connect to the HMI device and may need to be modified when default ports are used by other services or
applications or if the local network requires specific settings.)
3. Specify Hostname to easily identify each device in a network where multiple devices are available. The default
hostname is “HMI” for all devices.
4. Click Download System Files. At the next download the new ports will be used in the HMI device and new
hostname will appear in the drop-down list
104 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
9 Transferring the project to HMI device
Update package
The Update Package create a UpdatePackage.zip file to install or update the application inside the HMI device using an
USB memory key.
Option Description
l HMI Runtime
l HMI Client (Available only on Linux devices)
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 105
Update package
Option Description
HMI Runtime & Plug- HMI Runtime is added to the update package. If the project is open the required plugins are
In also added to update package.
Set Target Password Sets password to perform critical tasks (for example, project download/upload , board
management)
Delete runtime When checked, all dynamic files will be deleted and the FRAM will be clean up.
dynamic files
User Files Selects files to be copied to the QTHM folder of HMI device. Max size 5 MB
Encrypted Enables encryption of update package so that it can only be unzipped by the HMI Runtime.
Important: When create a package with the HMI Runtime application, always include both project and
the runtime. If you need to use an old project with the latest Runtime version, convert the project first.
See "Installing the application" on page 6 for details.
C:\Users\Username\Desktop\myFolder
- subFolder1/file1
- subFolder1/file2
- file3
- file4
WinCE devices:
/Flash/QtHmi
- subFolder1/file1
- subFolder1/file2
- file3
- file4
Linux devices:
/mnt/data/hmi/qthmi
- subFolder1/file1
- subFolder1/file2
- file3
- file4
106 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
9 Transferring the project to HMI device
1. Assuming you have stored the package in the root folder of a USB drive, remove the drive from the computer, plug it
in the HMI device, display the context menu by holding your finger for a few seconds on the screen and select
Update.
2. The system will check for the presence of the update package in the USB drive root and ask confirmation to proceed
with the update.
3. Select Auto select best match and click Next: the procedure is completed automatically. Alternatively use the
browser button to select the file to use.
When you power up the device for the first time, the Runtime Loader window is displayed (see "System Settings" on
page 593for details)
The Runtime Loader presence depends on the device Operating System and may not be available on all the
units. Old versions of HMI devices may not include the Runtime Loader. Contact technical support if you need
further information.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 107
Upload projects
Note: Old versions of HMI devices may not support automatic installation of Runtime. Contact technical support
for more information.
Upload projects
Path: Run> Manage Target
You can copy a project from the Runtime to the computer where JMobile Studio is running.
1. In the Runtime tab, select the IP address of the device from the drop-down list Target.
Upload could be password protected. See "Protecting access to HMI devices" on page 575 for details.
C:\Users\username\Documents\JMobile Studio\workspace\Uploaded\RuntimeIPAddress\workspace\ProjectName
Note: If the upload operation fails, check firewall settings the computer where JMobile Studio is running.
108 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
10 Tag editor
A tag is a friendly name used to identify the memory location of a device. Tags can be read or write from an external device
through communication protocols.
From the Tags Editor, you can configure the protocols and the list of tags to use.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 109
Communication protocols
Communication protocols
Path: ProjectView> Config > Protocols
Device communication drivers are configured in the Protocol Editor.You can add up to the maximum number of protocols
as specified in Table of functions and limits. Variable and System Variables are not counted as protocols.
Note: you can run different Ethernet protocols over the same physical Ethernet port, but you cannot run different
serial protocols using the same serial port. Some serial protocols support access to multiple controllers, but this
option is set within the protocol itself which is still counted as one protocol.
Adding a protocol
1. Click +.
2. Select the protocol from the PLC list and enter the required values.
110 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
10 Tag editor
Protocol parameters
Click Show Advanced Properties icon to see all parameters.
Parameter Description
Enable Offline AlgorithmOffline Retry See "Automatic offline node detection" on page 331 for details.
Timeout
Adding tags
JMobile Studio uses tag names to access all device data. All fields and reference locations in the device need to be
assigned a tag name to be used in the HMI project.
Tag Editor can be used to create and manage tags. After the tags have been defined, they can be used in the project by
attaching them to widgets' properties.
Tag editor
Path: ProjectView > Tags
Adding a tag
1. Click + and enter the required data.
2. Select the Address from the communication protocol address dialog
3. Click on the fields that are inside the property dialog if something is to change (e.g. tag name)
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 111
Adding tags
Note that if a tag is selected, the add tag command + will create a new tag using the property of the selected tag.
Tag properties
Some properties depend from the protocol used. See specific protocol documentation for details.
Property Description
l false = tags are read from controller only when required by the HMI device.
l true = tags are continuously read even if not required by the displayed page.
Important: Leave this value set to false for higher communication performance.
Encoding Encoding type for string data type (UTF-8, Latin1, UTF-2 and UTF-16)
PLC tag name Original PLC tag name, used to match tags used by HMI application (Tag Name) and tags exported
from PLC
Note: The content of Write Only tags is always written and never read. When
communication is not active, the content of these tags may not be available in widgets.
When the refresh rate is set to “Manual”, the HMI device will not read the tag from the remote device
automatically in background. Tag is read and refreshed into the database only by explicitly required
from the “ForceReadTag” action or using the forceRefresh option into the JavaScript getTag().
WARNING: Tags refresh rate is the maximum refresh rate. Actual refresh rate
depends on: communication type (serial, fieldbus, Ethernet), protocol, amount of
data exchanged.
112 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
10 Tag editor
Property Description
To edit click on the right side of the column to get the dialog box where you can enter the address
information.
Tag name Unique tag name at project level. Primary key to identify information in the runtime tag database.
Note that is allowed to select multiple tags in Tag Editor and to change the same property to all (e.g. to change
refresh time in 10 tags to 500 without change it in all tags one by one).
Scaling
Using the tag scaling function it is possible to resize the tag values that will be visible from the HMI application.
l Linear transformation, using the "By Formula" or the "By Range" mode
l Fixed Point transformation
Generally, the data type used inside the HMI is the same data type inherited from the PLC device. When a transformation
is used, considerate the possibility to change the HMI's data type to not lose precision.
Example
If your PLC manages value with two decimal digits using an integer in fixed point, you can configure the scaling
transformation as the below picture where the value read from the PLC will be divided by 100 and stored inside a float data
type. E.g. PLC integer value 12345 will become the float value 123.45 inside the HMI device.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 113
Exporting tags
Exporting tags
Path: ProjectView > Tags
You can edit the resulting .xml file using third part tools (for example, Microsoft Excel) and then re-import the modified file
(see "Importing tags" below for details).
Importing tags
Introduction
Some protocols allow you to import tags stored in a comma separated file (.csv or other formats).
114 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
10 Tag editor
WARNING: Special characters in tag names, such as "&" character, that can cause communication
errors will be substituted with the underscore "_" character when imported. See "Limitations in
Unicode support" on page 340
Importing tags
To import tags from an external file:
2. Click the Import Tags button: the dialog to choose the importer type appears. The list of the supported importers is
depended from the selected protocol.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 115
Importing tags
6. To import tags, select one or more tags or a node (hierarchical view only)
7. Click the Import tag button: tags are imported to the project and listed in black color.
When the project is configured to use a protocol network you must also select the protocol node where tags are to be
imported. You can import the same tags on multiple protocols. When the tags file contains the node information, you can
choose to use the information to filter the tags and import only those matching with the selected nodes.
Recursive
Recursive is a toggle button. When selected, when an array tag is imported even all array elements are imported into
separate tags.
116 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
10 Tag editor
These tags need to be updated. The list of differences between project and dictionary is displayed.
These tags are no longer available in the dictionary. If updated, these tags will be removed from the project.
Keep Synchronized
Check the "Keep Synchronized" check box if you want that JMobile Studio checks and update the tags from file dictionary
automatically without user intervention.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 117
Tag find and rename
Dictionaries
Path: ProjectView > Dictionaries
A dictionary is a list of tags imported in the Tag Editor for a specific protocol. Depending on the protocol type, tags are
shown in linear view or in hierarchical view.
Note this feature can be used not only to rename tags, but even to change values from each columns of the tags editor
118 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
10 Tag editor
Parameters
Column Select the column to modify with the find and rename operation
Rename The tags’ names rename will be extend to rename even to the internal dictionary tags’ names.
Names in This parameter is useful when you have to substitute the dictionary with another dictionary
Dictionary that contains renamed tags
When regular expression is enabled, the “Find what” parameter will not offer
predefined values but only free text handling.
RENAME SELECTED
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 119
Tag find and replace
RENAME ALL
References used in Java script and within custom widgets will not update.
Undo is not supported for this command
If you want add a prefix to all tags you don’t need to use regular expression:
But if you want add a postfix, you need to use a regular expression:
Where
\1 is a copy of the first sequence of characters enclosed by (...) found inside the search string
Tag replace is only applicable for Protocol tags which are shown in black color and not for System Variable, Alias
and Recipe tags. (See "Opening the Tag Cross Reference pane" on page 130 for the different colors meaning)
From the Tag Cross Reference view, click the tag that you want replace
120 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
10 Tag editor
Using the check boxes select where you want apply the replace,
then click the “Select new tag” button to replace the data links of the selected objects or press “Cancel” to abort the
operation.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 121
Tag find and replace
References used in the Java script and within custom widgets may not be listed.
Undo is not supported for this command
122 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
11 Indexed addressing
Indexed addressing allows you to select a set of tags depending on the value of another tag. This is very useful, for
example, to use the same graphics to visualize a set of data coming from different sources, all the user has to do is pick the
source to monitor from a list.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 123
Creating an indexed addressing set
Using the indexed addressing feature, you can use a single table format to arrange all data in the HMI device.
Data from the three different sensors can be displayed in a single page where the room number is used as a selector
(combo box) to pick the correct set of tags.
1. In the Tag Editor, define protocols and tag. Define a tag for each data to be indexed, in this example you must create
a tag for each sensor in each room.
124 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
11 Indexed addressing
2. Create a tag to be used as index tag. In this example you create a "RoomNumber" tag that could be of type
UnsignedInt using Variable protocol.
3. From ProjectView, select Config> Tags, double-click Indexed Tag Set: the Indexed Tag Set editor is displayed.
4. Click + to add an Indexed Tag Set. In this example you will call it "Room".
5. Select the tag "RoomNumber" to use as a selector for the room number.
6. Create an Index Instance for each set of data. In this example, one for each room.
7. Create an Alias for each type of data and rename the table columns appropriately. In this example "Temperature",
"Pressure" and "Humidity".
8. Double-click on each cell to associate the correct tag.
Note: The Index Tag datatype can be a number, a string or any type of simple data types.
Autofill function
An Indexed Tag Set table may become very complex and filling it may be an error prone procedure. Enable the Autofill
feature to make sure aliases are entered correctly.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 125
Creating an indexed addressing set
This function uses regular expression for populating the table with tags trying to match the filter where the keyword
$(Instance) will be replaced with the defined Index values and the keyword $(Alias) with the defined alias labels.
Autofill example
“Room$(Instance)-$(Alias)” will match all tag names:
Room1-Temperature,
Room1-Pressure,
Room1-Humidity,
Room2-Temperature,
Room1-Temperature,
Room01-Pressure,
Room001-Humidity,
Room2-Temperature,
Room02-Pressure,
Room002-Humidity,
126 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
11 Indexed addressing
Fill Fills in missing entries in the tag table using the set filter (if any). For example, when new instances or new
aliases are added you can use this option to fill in the new entries.
Replace Replace all table entries with those provided by the Autofill table.
Note: Filters are saved as project preferences and can be set for the entire table or for a column. Once a filter is
set for a column, the table filter is ignored. You can therefore selectively change the filter for handling a particular
alias only.
Note: To reference the elements of an array use the \ character to disable the regular expression interpretation of
the square brackets (array tags are differentiated by Italic).
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 127
Using indexed tag set in pages
1. Create a page and add a combo box, three labels and three numeric fields.
2. Use the index tag created for the room number for the combo box, "RoomNumber" in this example. This will be the
selector for the room number.
3. Create a list for the combo box. In this example use the following list.
0 Room Number
1 Room 1
2 Room 2
3 Room 3
4 Room 4
4. Attach to each numeric field value the corresponding Alias variable (Room > Temperature, Room > Humidity,
Room > Pressure).
128 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
12 Tag cross reference
The Tag Cross Reference pane displays a list of tag names used in current project organized according to their location
and use.
l verify where each tag is used (alarms, pages, recipes, schedulers, trends, and so on)
l identify invalid tag references (references to tags not defined in the tag editor)
l identify tags not used in the project
Note: The Tag Cross Reference pane may not be list all tags used in JavaScript code.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 129
Opening the Tag Cross Reference pane
Path: View> Toolbars and docking windows > Tag Cross Reference
Click the Tag Cross Reference tab to open the Tag Cross Reference pane.
Meaning of colors
Example:
130 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
12 Tag cross reference
Element Function
Group by Groups tags by Location (alarms, pages, trends and so on) or Tag name
Navigate the listed tags to find where they are used inside the project.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 131
Delete unused tags
From the unused tags view, is possible select one or more tags and delete them from the tag editor. To select a tag click a
tag, to select multiple tags use SHIFT or CTRL keys.
Be aware that eventually tags referenced inside JavaScript may not be found (depends on how the
code was written). Even it is not a good practical to using tags’ references inside custom widgets,
even tags’ referenced inside Custom Widgets may not be detected from the Tag Cross Reference
engine.
132 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
12 Tag cross reference
Automatic update
Path: View> Properties
You enable the automatic update of the Tag Cross Reference pane from the JMobile Studio Properties page.
Exporting data
Data displayed in the Tag Cross Reference pane can be exported in .csv file.
Data is organized in the exported file according to how it was grouped in the pane.
Note: The separators used in export operation depends on regional settings of your computer.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 133
Updating data in the Tag Cross Reference pane
134 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
13 System Variables (Attach To)
Path: Source> Attach to
System variables are special tags containing information about the HMI runtime.
Note: System Variables are available also as a standard protocol in the Protocol Editor. Use System Variables
as a protocol when you have to transfer data between system variables and tags from devices, or to select
custom refresh rate for a system variable.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 135
Printing variables 144
136 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
13 System Variables (Attach To)
Alarms variables
Number of alarms of the requested type.
Data
Variable Description
type
Number of missed alarm events Alarms exceeding the event queue. Queue length is defined in the int
engineconfig.xml file.
read
only
Number of not triggered Alarm condition no longer active; alarms already acknowledged int
acknowledged
read
only
Number of not triggered not Alarma condition no longer active; awaiting acknowledgment int
acknowledged
read
only
read
only
Note: For compatibility reasons, the older names are still valid but they usage is deprecated.
Buzzer variables
Adjust buzzer behavior.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 137
Communication variables
Data
Variable Description
type
Buzzer Off Duration in milliseconds of off time when blink has been selected. Default = 1000. Range: 100– int
Time 5000.
Buzzer On Duration in milliseconds of on time when blink has been selected. Default = 1000. Range: 100– int
Time 5000.
Communication variables
Communication status between HMI device and controllers.
Data
Variable Description
type
Protocol Error Number of communication errors occurred since last reset. Reset value with Reset int
Count Protocol Error Count action, see "System actions" on page 226.
Read
only
138 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
13 System Variables (Attach To)
Note: All variables are read only; you cannot use them to update the system clock.
Variable Description
Standard Offset Offset in minutes when standard time is set, with respect to GMT (for example: -8x60 = -480
minutes).
Standard Week Week in which the standard time starts (for example: First = 1).
Standard Month Month in which the standard time starts. Range: 0–11. (for example: November = 10).
Standard Day Day of week in which the standard time starts (for example: Sunday = 0).
Standard Hour Hour in which the standard time starts (for example: 02 = 2).
Standard Minute in which the standard time starts (for example: 00 = 0).
Minute
DST Offset Offset in minutes when DLS time is set, with respect to GMT
DST Month Month in which the DLS time starts. Range: 0–11.
Device variables
Device settings and operating status information.
Backlight Activation time in hours of the display backlight since production of the device. unsignedInt
Time
read only
Battery LED Enables/disables the low battery LED indicator (when available). int
0 = disabled
1 = enabled
Not available on Linux platforms (find the platform of your device at "HMI
devices capabilities" on page 589)
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 139
Device variables
Timeout Not available on Linux platforms (find the platform of your device at "HMI
devices capabilities" on page 589)
Range: 0–255
External Non-operational time after which the display backlight is automatically turned off. The int
Timeout backlight is automatically turned on when the user touches the screen.
-1 = Switch off backlight and disable touch (switch display off). Backlight
Time counter is stopped.
-2 = Switch off backlight but not disable touch. If touch is pressed, event is
not passed to applications but screen saver exit and backlight return on.
1..n = Timeout, in seconds, for switch off backlight (screen saver timer)
140 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
13 System Variables (Attach To)
1 = booting
2 = configuration mode
3 = operating mode
4 = restart
5 = shutdown
System Time the system has been powered since production of the unit (hours). unsignedInt
UpTime
read only
Dump Error Message Return error message if any error occurs during the dump operation string
read only
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 141
Keypad variables
read only
read only
read only
Keypad variables
Keypad status.
Network variables
Device network parameters.
Data
Variable Description
type
Adapters This is a JSON string that can be use to read or update the network adapters parameters string
Parameters
read
only
read
only
142 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
13 System Variables (Attach To)
Data
Variable Description
type
read
only
Status Contains the result of the last operation required by writing inside the Adapter Parameters. string
It is updated after each write operation.
read
l Empty string is meaning no errors only
l Last error descriptions
Subnet Mask Subnet Mask of the main Ethernet interface of device string
read
only
PLC variables
Status of CODESYS V2 system integrated in HMI devices.
Data
Variable Description
type
0 = RUN read
only
1 = PROGRAM NOT LOADED (program not loaded in memory or CODESYS
module not running because license missing)
Get CopyCodesysProject Status of CopyCodesysProject action related to integrated CODESYS V2. int
Action Status
0 = ACTION_NOT_CALLED read
only
1 = ACTION_IN_PROGRESS
2 = ACTION_COMPLETED
3 = ACTION_ABORTED_CHK_FILE_MISSING
4 = ACTION_ABORTED_PRG_FILE_MISSING
5 = ACTION_ABORTED_SDB_FILE_MISSING
6 = ACTION_ABORTED_MUTIPLE_CHK_FILES_FOUND
7 = ACTION_ABORTED_MUTIPLE_PRG_FILES_FOUND
8 = ACTION_ABORTED_MUTIPLE_SDB_FILES_FOUND
9 = ACTION_ABORTED_INCONSISTENT_FILE_NAMES
10 = ACTION_ABORTED_UNABLE_TOMAKE_TARGET_DIR
11 = ACTION_ABORTED_COPY_FAILED
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 143
Printing variables
Data
Variable Description
type
12 = ACTION_ABORTED_CODESYS_MODULE_NOT_PRESENT
Printing variables
Information on printing functions.
Data
Variable Description
type
Current disk usage Folder size in bytes where PDF reports are stored. read only
If Flash has been selected as Spool media type, this value corresponds to
reportspool.
Current job Name of the report the job is processing. Current job is the following: read only
Current RAM usage Size in bytes of the RAM used to process the current job read only
Disk quota Maximum size in bytes of the folder where PDF reports are stored read only
Graphic job queue Number of available graphic jobs in the printing queue read only
size
read only
RAM quota Maximum size in bytes of the RAM used to generate reports read only
l idle
l error
l paused
l printing
Text job queue size Number of available text jobs in the printing queue read only
144 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
13 System Variables (Attach To)
Connection status 0 = client can not reach the server client. The connection int (32 bit)
with server is lost.
read only
1 = client can reach the server. The connection with
server is active.
The following system variables are associated to the transferring files to a remote HMI device.
read only
Download from HMI status 0 = idle, action is not in use or completed int (32 bit)
2 = error
read only
Upload to HMI status 0 = idle, action is not in use or completed int (32 bit)
2 = error
Version variables
Operating System and runtime version.
Screen variables
Screen status.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 145
SD card variables
Variable Description
Time remaining to unlock Time remaining to unlock screen (see LockScreen action, "Page actions" on page 212)
SD card variables
Information on the external SD card.
read only
read only
SD Card Size Size in bytes of the card plugged in the slot uint64
read only
Server variables
Server status.
Data
Variable Description
type
Operating mode Seconds elapsed since device started operating mode as in System Date format uint64
time (milliseconds).
Project load time Date when the project was loaded on the JMobile HMI Runtime as in System Date uint64
format (milliseconds).
Time variables
System time expressed in UTC format.
146 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
13 System Variables (Attach To)
System Time The same as UTC time. It can also be set as date/time for this variable. unsignedInt
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 147
USB drive variables
Page
Touch
Y
Screen
Touch
Y
Touch Generic touch screen changes. This variable contains the concatenation of page.primaryTouchStatus
Status Screen Touch X, Screen Touch Y and Touch Press values (for example,
“924,129,0”).
The main usage of this variable is to trigger an event, using the OnDataUpdate
feature, when something (x, y or click) is changed.
read only
read only
USB Drive Size Size in bytes of the device plugged in the USB port uint64
read only
148 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
13 System Variables (Attach To)
Data
Variable Description
type
This Client User- Name of the user logged to the client where the system variable is displayed. string
Name
read
only
This Client ID Only for HMI Clients. Local and remote clients connected to the same server (for short
example, runtime) get a unique ID.
read
only
JavaScript
From JavaScript, the variables can be accessed as properties of the _SysPropMgr object.
Example:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 149
User management variables
150 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
System Variables communication driver allows to create Tags that point to system information.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 151
Protocol Editor Settings
From PLC Model list select the specific System Variables type.
Tag Import
Select the driver in Tag Editor and click on the Import Tags button to start the importer.
The system will require a generic XML file exported from Tag Editor by appropriate button.
Once the importer has been selected, locate the symbol file and click Open.
The tags available within the Dictionary but not imported into the project are gray and are visible only when the "Show all
tags" check box is selected.
152 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Import Tag(s).
Update Tag(s).
Click on this icon to update the tags in the project, due a new
dictionary import.
Default variables
System Variables - Default protocol allows to create Tags that point to HMI system variables regarding:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 153
Default variables
l Alarms
l Buzzer
l Communication
l Database
l Daylight Saving Time
l Device
l Dump information
l Network
l PLC
l Screen
l SD Card
l Server
l Time
l USB Drive
l Version
l Virtual Com Switch
154 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Element Description
Memory Type Represents the system variable to which the Tag refers to.
The below section shows the full list of possible system variables, grouped by category.
Alarms Variables
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 155
Default variables
Element Description
Buzzer Variables
1 = buzzer on
2 = buzzer blink
Buzzer Off Time Duration in milliseconds of off time when blink int
has been selected. Default = 1000. Range:
100–5000
156 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Element Description
Communication Variables
Database Variables
3 = Transfer in progress
4 = Error
Database link error Errors counter. Increased after each error int
count
read only
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 157
Default variables
Element Description
Each database variable is an array where index select the database link
connection (Range 1-10)
Variables are updated only when any database connector action is executed
Standard Week Week in which the standard time starts (for int
example: First = 1)
read only
Standard Month Month in which the standard time starts. Range: int
0–11. (for example: November = 10)
read only
Standard Day Day of week in which the standard time starts int
(for example: Sunday = 0)
read only
Standard Hour Hour in which the standard time starts (for int
example: 02 = 2)
read only
Standard Minute Minute in which the standard time starts (for int
example: 00 = 0)
read only
DST Offset Offset in minutes when DLS time is set, with int
respect to GMT
read only
read only
DST Month Month in which the DLS time starts. Range: 0– int
11
read only
DST Day Day of week in which the DLS time starts int
read only
read only
read only
158 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Element Description
All variables are read only: they cannot be used to update the system clock.
Device Variables
0 = disabled
1 = enabled
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 159
Default variables
Element Description
Device Variables
Flash Free Space Free space left in internal Flash memory uint64
read only
read only
read only
1 = booting
2 = configuration mode
3 = operating mode
4 = restart
160 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Element Description
Device Variables
5 = shutdown
System UpTime Time the system has been powered since unsignedInt
production of the unit (hours)
read only
Dump Error Message Return error message if any error occurs during string
the dump operation
read only
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 161
Default variables
Element Description
Network Variables0
read only
Network Adapter JSON string that can be use to read or update string
Parameters the network adapters parameters
Network Status Contains the result of the last operation required string
by writing inside the Adapter Parameters. It is
read only
updated after each write operation.
162 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Element Description
PLC Variables
2 = Action completed
0 = Run mode
1 = Stop mode
3 = Reset Warm
4 = Reset Cold
5 = Reset Hard
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 163
Default variables
Element Description
Screen Variables
read only
read only
SD Card Variables
read only
read only
SD Card Size Size in bytes of the card plugged in the slot uint64
read only
Server Variables
read only
read only
Project load time Date when the project was loaded on the uint64
JMobile HMI Runtime as in System Date format
read only
(milliseconds)
Last operating mode Seconds elapsed since device started operating uint64
start time mode
read only
164 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Element Description
Time Variables
System Time The same as UTC time. It can also be set as unsignedInt
date/time for this variable
read only
read only
USB Drive Size Size in bytes of the device plugged in the USB uint64
port
read only
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 165
Default variables
Element Description
Version Variables
read only
read only
read only
read only
Data Type Each system variable has a specific data type, described in above tables.
The following table shows the details of any data type used for system variables.
166 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Element Description
Arraysize In case of string Tag, this property represents the maximum number of bytes available in
the string Tag.
Note: number of bytes corresponds to number of string chars if Encoding property is set to
UTF-8 or Latin1 in Tag Editor.
If Encoding property is set to UCS-2BE, UCS-2LE, UTF-16BE or UTF-16LE one char
requires 2 bytes.
Depending on data type selected, the list Allowed shows one or more conversion types.
Value Description
Example:
1001 → 0110 (in binary format)
9 → 6 (in decimal format)
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 167
Default variables
Element Description
Value Description
Example:
25.36 → -25.36
Example:
15D4 → 514D (in hexadecimal format)
5588 → 20813 (in decimal format)
BCD bcd: Separate byte in two nibbles, read them as decimal (from 0
to 9)
Example:
23 → 17 (in decimal format)
0001 0111 = 23
0001 = 1 (first nibble)
0111 = 7 (second nibble)
Select conversion and click +. The selected item will be added to list Configured.
If more conversions are configured, they will be applied in order (from top to bottom of list
Configured).
168 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
HandHeld variables
System Variables - HandHeld protocol allows to create Tags that point to H3 device system variables.
This protocol is automatically added in a new project if H3 device is selected from project creation wizard.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 169
HandHeld variables
Element Description
1 = right potentiometer
2 = left potentiometer
Note: Above Tags are automatically added in a new project if H3 device is selected from
project creation wizard.
For other memory types, refer to System Variables - Default chapter
Data Type Each system variable has a specific data type, described in above tables.
The following table shows the details of any data type used for system variables.
170 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Element Description
Arraysize In case of string Tag, this property represents the maximum number of bytes available in
the string Tag.
Note: number of bytes corresponds to number of string chars if Encoding property is set to
UTF-8 or Latin1 in Tag Editor.
If Encoding property is set to UCS-2BE, UCS-2LE, UTF-16BE or UTF-16LE one char
requires 2 bytes.
Depending on data type selected, the list Allowed shows one or more conversion types.
Value Description
Example:
1001 → 0110 (in binary format)
9 → 6 (in decimal format)
Example:
25.36 → -25.36
Example:
15D4 → 514D (in hexadecimal format)
5588 → 20813 (in decimal format)
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 171
HandHeld - wireless variables
Element Description
Value Description
BCD bcd: Separate byte in two nibbles, read them as decimal (from 0
to 9)
Example:
23 → 17 (in decimal format)
0001 0111 = 23
0001 = 1 (first nibble)
0111 = 7 (second nibble)
Select conversion and click +. The selected item will be added to list Configured.
If more conversions are configured, they will be applied in order (from top to bottom of list
Configured).
This protocol is automatically added in a new project if H4 device is selected from project creation wizard.
172 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 173
HandHeld - wireless variables
Element Description
0 = battery low
1 = coupled
1 = button pressed
1 = token inserted
174 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Element Description
1 = right potentiometer
2 = left potentiometer
1 = vibration enabled
WIFI Signal Strength Value indicating the level of the current Wi-Fi byte
network
read only
(Range: 0-100).
0 = no signal
SMHC Status
SMWL Status
Note: Above Tags are automatically added in a new project if H4 device is selected from
project creation wizard.
For other memory types, refer to System Variables - Default chapter
Data Type Each system variable has a specific data type, described in above tables.
The following table shows the details of any data type used for system variables.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 175
HandHeld - wireless variables
Element Description
Arraysize In case of string Tag, this property represents the maximum number of bytes available in
the string Tag.
Note: number of bytes corresponds to number of string chars if Encoding property is set to
UTF-8 or Latin1 in Tag Editor.
If Encoding property is set to UCS-2BE, UCS-2LE, UTF-16BE or UTF-16LE one char
requires 2 bytes.
Depending on data type selected, the list Allowed shows one or more conversion types.
Value Description
Example:
1001 → 0110 (in binary format)
9 → 6 (in decimal format)
176 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Element Description
Value Description
Example:
25.36 → -25.36
Example:
15D4 → 514D (in hexadecimal format)
5588 → 20813 (in decimal format)
BCD bcd: Separate byte in two nibbles, read them as decimal (from 0
to 9)
Example:
23 → 17 (in decimal format)
0001 0111 = 23
0001 = 1 (first nibble)
0111 = 7 (second nibble)
Select conversion and click +. The selected item will be added to list Configured.
If more conversions are configured, they will be applied in order (from top to bottom of list
Configured).
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 177
Retentive Memory variables
Important: Not all HMI devices include FRAM memory. If FRAM memory is not available, persistency
is supported using user memory storage (Flash or hard disk drive). Flash technology has a limitation
in the maximum number of write operations. The use of Flash as storage media for retentive memory
with frequent write operations may damage the memory components. Check HMI device data for
availability of FRAM memory.
Important: Retentive memory is 16 KB flat memory area organized in bytes and accessible through an
offset. Refer to schema below.
178 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Element Description
SubIndex This parameter allows resource offset selection based on selected Data Type
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 179
Retentive Memory variables
Element Description
Note: to define arrays. select one of Data Type format followed by square brackets like “byte
[]”, “short[]”…
Arraysize l In case of array tag, this property represents the number of array elements.
l In case of string tag, this property represents the maximum number of bytes available in the
string tag.
Note: number of bytes corresponds to number of string characters if Encoding property is set to UTF-8
or Latin1 in Tag Editor.
If Encoding property is set to UCS-2BE, UCS-2LE, UTF-16BE or UTF-16LE one character requires 2
bytes.
180 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Element Description
Depending on data type selected, the list Allowed shows one or more conversion types.
Value Description
Example:
1001 → 0110 (in binary format)
9 → 6 (in decimal format)
Example:
25.36 → -25.36
Example:
15D4 → 514D (in hexadecimal format)
5588 → 20813 (in decimal format)
Example:
9ACC → CC9A (in hexadecimal format)
39628 → 52378 (in decimal format)
BCD bcd: Separate byte in two nibbles, read them as decimal (from 0
to 9)
Example:
23 → 17 (in decimal format)
0001 0111 = 23
0001 = 1 (first nibble)
0111 = 7 (second nibble)
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 181
Retentive Memory variables
Element Description
Select conversion and click +. The selected item will be added to list Configured.
If more conversions are configured, they will be applied in order (from top to bottom of list Configured).
Tip: Use this action to set the memory content to a known status at any time.
See Actions > Tag Actions section of main manual for more details.
If is needed to preserve the content of retentive data at project download or update, select the Keep retentive data on
project update option in the settings tabs of the HMI device.
This setting will be ignored if Delete runtime dynamic files option is selected from Download to Target window.
182 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Services variables
Services variables give the possibility to read the status and delivering commands to VNC Server and Cloud Service.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 183
Services variables
1. Click + and select System Variables: the System Variables dialog is displayed.
VNC status variables are supported only from Linux devices with BSP version 1.0.344 or greater. (See "HMI devices
capabilities" on page 589)
VNC Start Write 1 inside this tag to force the VNC server to start. boolean
This is a write only variable, command will executed any time Write Only
you rewrite it.
VNC Stop Write 1 inside this tag to force the VNC server to stop. boolean
This is a write only variable, command will executed any time Write Only
you rewrite it.
VNC Restart Write 1 inside this tag to force the VNC server to restart. boolean
This is a write only variable, command will executed any time Write Only
you rewrite it.
Read Only
0 IDLE
10 RUNNING
-1 ERROR
184 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Cloud status variables are supported only from Linux devices with BSP version 1.0.298 or greater. (See "HMI devices
capabilities" on page 589)
Cloud Start Write 1 inside this tag to force the cloud connection to start. boolean
This is a write only variable, command will executed any time Write Only
you rewrite it.
Cloud Stop Write 1 inside this tag to force the cloud connection to stop. boolean
This is a write only variable, command will executed any time Write Only
you rewrite it.
Cloud Restart Write 1 inside this tag to force the cloud connection to restart. boolean
This is a write only variable, command will executed any time Write Only
you rewrite it.
Read Only
0 IDLE
1 STARTING
10 RUNNING
100 CONNECTING
200 CONNECTED
-1 ERROR
Write Only Variables cannot be read. Be sure to not use the R/W access mode to avoid the read error icon.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 185
NFC Support
NFC Support
NFC Support system variables give the possibility to read/write from to NFC Tag* using NFC sensor.
1. Click + and select System Variables: the System Variables dialog is displayed.
186 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Read Only
-101 Error reading from NFC Tag
NFC Tag UID Indicates the identifier of NFC Tag, as soon as NFC Tag is detected. string
Read Only
NFC Text Indicates arbitrary text information in NFC Tag, as soon as NFC Tag is string
detected. To write on this variable check "Writing procedure" chapter.
Read/Write
NFC Max Length Indicates the maximum number in bytes of NFC Text variable, as soon as unsignedInt
NFC Tag is detected.
Read Only
NFC Read Only Indicates if NFC Tag can be written, as soon as NFC Tag is detected. boolean
Possible values are:
Read Only
0 NFC Tag is not "read only": NFC Text can be written.
NFC Tag Indicates the identifier of NFC Tag on which NFC Text will be written. string
UID For Write
Read Only
Writing procedure
1. Put NFC Tag near the sensor. The following System Variables will be populated with the values read from NFC Tag:
l NFC Tag UID
l NFC Text
l NFC Max Length
l NFC Read Only
2. Copy the value from "NFC Tag UID" to "NFC Tag UID For Write" in order to prepare the writing.
Note: Copy can be done by executing "Data Transfer" action from "NFC Tag UID" to "NFC Tag UID For Write", or
by JavaScript code.
3. Write new content to "NFC Text" variable:
l if "NFC Tag Present" is 1, write is tried.
l if "NFC Tag UID For Write" is different from "NFC Tag UID"or is invalid (empty) write is not performed.
l if "NFC Tag UID For Write" is equal to"NFC Tag UID" write is performed. New inserted value in "NFC Text"
will be written into NFT Tag.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 187
Direct I/O variables
Use Plug-in List available in the System Settings menu to check if I/O plug-in modules are correctly recognized in the
system and what is their slot number.
188 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 189
Direct I/O variables
190 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Element Description
Variable Description
0 DIAG_24VOK parameter.
0 = 24V detected
1 = 24V missing
1 DIGOUT1_DIAG01 parameter.
2 DIGOUT1_DIAG02 parameter.
0 Digital Input 1
1 Digital Input 2
2 Digital Input 3
3 Digital Input 4
4 Digital Input 5
5 Digital Input 6
6 Digital Input 7
7 Digital Input 8
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 191
Direct I/O variables
Element Description
Bit # Description
0 Digital Output 1
1 Digital Output 2
2 Digital Output 3
3 Digital Output 4
4 Digital Output 5
5 Digital Output 6
6 Relay Output
Bit # Channel #
0 Relay Output 1
1 Relay Output 2
Arraysi In case of array Tag, this property represents the number of array elements.
ze
Note: Arraysize depends on the type of plug-in in use. In case of wrong configuration of the tag
there will be no error reported, neither in HMI Logger nor in the Protocol Error Message System
192 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Element Description
Depending on data type selected, the Allowed list shows one or more conversions, listed below.
Value Description
BCD Separate the byte in two nibbles, and reads them as decimal (from 0 to 9)
Example:
23 → 17 (in decimal format)
0001 0111 = 23
0001 = 1 (first nibble)
0111 = 7 (second nibble)
Example:
15D4 → 514D (in hexadecimal format)
5588 → 20813 (in decimal format)
Example:
1001 → 0110 (in binary format)
9 → 6 (in decimal format)
Select the conversion and click on plus button. The selected item will be added on Configured
list.
If more conversions are configured, they will be applied in order (from top to bottom of
Configured list).
PLCM09 variables
PLCM09 device is a Wireless Modem with LED and digital I/O. The behavior of the related System Variables are depend on
how the module has been configured inside the System Settings (see "PLCM09 Plug-in Wireless Modem" for additional
information)
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 193
PLCM09 variables
1. Click + and select System Variables: the System Variables dialog is displayed.
Output2 Output variables are read/write only when configured as "User controlled" Read/Write
(see "PLCM09 Plug-in Wireless Modem" for additional information). In the
other configurations, where output signals are controlled directly from the
PLCM09 module, the system variables are read only.
Mobile Start Write 1 inside this tag to force the wireless mode to start. boolean
This is a write only variable, command will executed any time Write Only
194 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Mobile Stop Write 1 inside this tag to force the wireless mode to stop. boolean
This is a write only variable, command will executed any time Write Only
you rewrite it.
Mobile Restart Write 1 inside this tag to force the wireless mode to restart. boolean
This is a write only variable, command will executed any time Write Only
you rewrite it.
Read Only
0 IDLE
1 STARTING
10 RUNNING
100 CONNECTING
200 CONNECTED
300 STOPPING
-1 GENERICERROR
-10 SYSTEMERROR
-100 MODEMNOTFOUND
-101 MODEMBUSY
-110 MODEMCOMM
-120 MODEMTIMEOUT
-130 MODEMERROR
-200 SIMMISSING
-300 PINREQUIRED
-301 NEWPINREQUIRED
-310 PINERROR
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 195
PLCM09 variables
-320 PUKREQUIRED
-330 PUKERROR
-400 ROAMINGBLOCKED
-500 BADCREDENTIALS
Read Only
Read Only
0 GSM (2G)
2 UTRAN (2G)
3 Registration denied.
4 Unknown
5 Registered on roaming
196 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Read Only
Mobile Start Time When mobile connection was started (in seconds since epoch) unsignedInt
(Sec)
Read Only
Write Only Variables cannot be read. Be sure to not use the R/W access mode to avoid the read error icon.
JSmart variables
JSmart device has internal sensors that are available through the System Variables protocol.
1. Click + and select System Variables: the System Variables dialog is displayed.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 197
JSmart variables
Read Only
Read Only
Read Only
Read Only
Read Only
Accelerometer Measure the acceleration (static + dynamic) on the three x, y and z axes. Unit is float
198 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
14 System Variables (Protocol)
Accelerometer Angles in degree between axes. These values are calculated internally from the float
Angle values of the accelerometer axes. float[8]
Read Write
Read Write
Read Write
Read Write
Values entered inside the WiFi configuration variables (WIFI_Mode, WIFI_ Read Write
SSID, WIFI_Channel, WIFI_Security, WIFI_Password) will be applied when the
variable WIFI_Apply will be set to 1, then the variable will reset to 0 after
applying the values. When the WIFI_Apply will be set to 2, the WiFi
configuration parameters will be restored with the active values.
Read Only
Read Only
When set to 1, the HMI device start the password exchange procedure. When Read Write
the procedure end (passwords exchanged successfully or after two minutes), the
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 199
JSmart variables
Command to search the available WiFi networks and fill the WIFI_List. Search Read Write
start when the value is triggered to 1, when done the value will be restored to 0.
WIFI_Error_Code Return an error code if the parameters provided with the WIFI_Apply command integer
are out of range.
Read Only
0 = No Error
Notes:
l WIFI system variables require BSP v1.0.414 or greater
l RGB LED system variable require BSP v1.0.361 or greater
200 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
Actions are functions used to interact with the system and are normally executed when events are triggered.
Events can be triggered by various widgets, for example on press and on release of a button. Not all actions are available
for all the events of an object.
Actions are linked to widgets in the Event section of the Property pane (Page Editor).
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 201
Alarm actions
Alarm actions
Mainly used to acknowledge or reset alarms.
SelectAllAlarms
Selects all alarms.
Parameter Description
Mode TOGGLE
Reverses the select status.
Alarms that are not triggered or have no pending acknowledge or reset requests will never
be selected.
SELECT
Selecting all alarms that are triggered or that have acknowledge or reset request pending
UNSELECT
Unselect all alarms
SelectAlarm
Select a specif alarm.
Parameter Description
AlarmID Alarm ID
Alarms that are not triggered or have no pending acknowledge or reset requests will not
selected.
FALSE
Unselect the alarm.
AckAlarm
Acknowlege a specific alarm or all selected alarms.
Parameter Description
SELECTED
All selected alarms
202 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
ResetAlarm
Resets a specific alarm or all selected alarms that are not triggered and acknowledged.
Parameter Description
SELECTED
All selected alarms
EnableAlarms
Enable or disable a specific alarm or all selected alarms.
Parameter Description
SELECTED
All selected alarms
FALSE
Disable the alarm(s).
Database actions
DBInit
Important: This action is used only once on an empty database. It is not an initialization command to
be called any time the HMI device starts.
Creates the set of tables required by the project. You do not need to use this action if the database already contains the
necessary tables.
Use Custom SQL query parameter to define the pages to be created. Leave empty to generate default table names
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 203
Database actions
Tip: Add this command inside a SetUp page of your project, used by authorized personal only when installing the
application for the first time.
JavaScript Interface
project.dbInit(dbLinkName, sqlCustomQuery);
DBWriteTags, DBReadTags
Transfer the values of the selected tags to/from the remote database.
JavaScript Interface
project.dbWriteTags(dbLinkName, sqlCustomQuery, Tags);
DBWriteGroups, DBReadGroups
Transfer groups of tags between the HMI device and the database.
204 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
JavaScript Interface
project.dbWriteGroups(dbLinkName, sqlCustomQuery, Groups);
DBWriteTrend
Inserts the values of the last data sampled in the selected range of time inside the Trends table of the remote database.
JavaScript Interface
project.dbWriteTrends(dbLinkName, sqlCustomQuery, trendName, durationIndex)
DBWriteEvents
Inserts the values of the last events in the selected range of time inside the Events table of the remote database.
JavaScript Interface
project.dbWriteEvents (dbLinkName, sqlCustomQuery, archiveName, durationIndex)
DBWriteRecipes, DBReadRecipes
Transfer the recipe data to/from the remote database.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 205
Event actions
JavaScript Interface
project.dbWriteRecipes(dbLinkName, sqlCustomQuery, recipeNames)
DBResetErrors
Reset all the three status variables of the selected database link. "Database variables" on page 1.
JavaScript Interface
project.dbResetErrors(dbLinkName)
Event actions
Used by Alarm History widget to scroll events/alarms backward/forward in table view (event buffer widget).
ScrollEventsBackward
Scrolls events/alarms backward in table view (event buffer widget).
ScrollEventsForward
Scrolls events/alarms forward in table view (event buffer widget).
MultiLanguage actions
Selects the application language.
206 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
SetLanguage
Sets the language used. The selected language will be applied at runtime to all applicable widgets.
Keyboard actions
Changes the use of keypads.
SendKey
Sends one character to a numeric widget. The KeypadType property of the numeric widget must be set as Macro.
SendKeyWidget
Sends one character to a specific widget.
Example
The Up and Down buttons use the SendKeyWidget action in association with the Control List Widget.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 207
Keyboard actions
ShowKeyPad
Shows the default operating system touch keypad.
208 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
Keyboard
Enables/disables the use of actions when using external keyboards. Action execution can be enabled/disabled both at
project and at page level.
The effect is equivalent to the use of the property Keyboard for project and page.
Action Description
FTP actions
Used to upload and download files to and from a remote FTP server.
ftpGET
Download files from a remote FTP server
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 209
FTP actions
Parameter Description
ftpPUT
Upload files to a remote FTP server
Parameter Description
When transferred, system variables are updated with the status of ongoing operations (see "FTP client variables" on
page 141for details).
Parameter Description
Tip: Use tags if you want change the server parameters dynamically from the JMobile HMI Runtime.
210 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
Parameter Description
ftpGET
ftpGET (remoteFileName, localFileName, [callback])
Parameter Description
callback Function that will be call at the end of the FTP transfer
ftpPUT
ftpPUT (remoteFileName, localFileName, [callback])
Parameter Description
callback Function that will be call at the end of the FTP transfer
Example:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 211
Page actions
project.ftpGET( "data.txt",
"\\USBMemory\\data.txt",
function(ftpStatus) {fnFtpGetFinished(ftpStatus);} );
function fnFtpGetFinished(ftpStatus) {
alert(ftpStatus);
}
Page actions
Page navigation. Page actions can be used with the following events:
l OnMouseClick,
l OnMouseRelease,
l OnMouseHold
l OnActivate
l OnDeactivate
l Alarms
l Schedulers.
LoadPage
Go to the selected page of the project.
Starting from JMobile Studio v4.0 in addition to the pages you can use the aliases (see "Alias pages" on page 79)
212 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
HomePage
Go to the home page.
You can set the home page in the Behavior section of the Project Widget, see "Project" on page 90
PrevPage
Go to the previous page.
NextPage
Go to the next page.
LastVisitedPage
Go to the previously displayed page
ShowDialog
Opens a dialog page defined in the project.
CloseDialog
Close dialog pages.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 213
Page actions
CloseDialog options
Option Description
JavaScript Interface
project.closeDialog(DialogID);
Where DialogID:
Examples
Example Behavior
ShowMessage
Displays a popup message. Enter the text of the message to be displayed.
LaunchApplication
Launches an external application.
214 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
Parameter Description
App Name Executable name with extension (for example, "notepad.exe" to run Notepad)
Single Instance Argument to start the application in a single instance or multiple instances.
When single instance is selected, the system first verifies whether the application is
already running; if so, then the application is brought to the foreground, if not, then
the application is launched.
FlushRuntimeCache Flush all runtimes cache to free as more ram as possible before running the
application.
Note: Arguments with spaces must be quoted (for example, "\Storage Card\Manual.pdf")
Example:
LaunchBrowser
Opens the default web browser. You can define URL address as argument.
Note: Only works on platforms having a native web browser (for example, on Windows CE PRO with Internet
Explorer enabled).
LaunchVNC
Starts VNC server and opens the configuration.
LaunchPDFViewer
Starts PDF Viewer.
On WCE devices, only works on devices that include PDF Viewer. See "Plug-in" on page 89 to include it on
Windows CE devices.
On Linux devices, BSP v1.00.44 or greater is required.
Note that the pathname of the arguments field uses native OS format (see "HMI devices capabilities" on page 589).
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 215
Page actions
On WinCE devices, the HMI application is installed on path \Flash\QTHMI\ and pathname's syntax use the backslash
character.
On Linux devices, the HMI application is installed on path /mnt/data/hmi/qthmi/deploy/ and pathname's syntax use the
slash character.
216 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
Using this option, the icon to open a different file will be removed from the PDF toolbar (to restrict navigation to PDF file
already opened and passed via command line).
LaunchUpdater
Updates project and runtime from an external device.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 217
Page actions
Use Path parameter to specify the folder that will contain the update package file. Leave the path parameter empty if you
prefer select the file manually on the HMI device when the macro is invoked.
When the LaunchUpdater macro is executed, the below dialog is showed on HMI device
JavaScript Interface
project.launchUpdater(strPath)
Examples
project.launchUpdater("\\USBMemory")
LaunchHMICloudEnabler
Open the HMI Cloud Enabler.
LockScreen
Temporarily locks the touch screen. Allows cleaning the touch screen.
The system variable Time remaining to unlock displays the time remaining to unlock.See "Screen variables" on
page 145
LoadProject
Unload current project and load the selected project inside the HMI device.
The project name has to be specified using relative path, as for the below example:
218 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
LastVisitedProject
Unload current project and return to previous project
Print actions
Manages print tasks.
PrintGraphicReport
Prints a graphic report.
Parameter Description
Supported placeholders:
l %n = Report name
l %p = Project name
l %y = Year, %M = Month, %d = Day
l %h = Hour, %m = Minutes, %s = Seconds.
Note that the pathname of the arguments field uses native OS format (see "HMI devices
capabilities" on page 589).
l On WinCE devices
Path for USB Device is "\USBMemory"
l On Linux devices
Path for USB Device is "/mnt/usbmemory"
"testFolder" will be inside "/mnt/data/hmi/qthmi/deploy/testFolder"
Signed When the output is a PDF file, generate a signed file using the x.509 certificate of the panel.
The algorithm to use to signing is defined inside the project properties parameters
See "Project" on page 90 for the available algorithms
See also:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 219
Print actions
PrintText
Prints a string.
Parameter Description
This action works in line printing mode and uses a standard protocol common to all printers that support it. Text is printed
immediately line by line or after a timeout custom for each printer model.
Note: printing could a few minutes for models not designed for line printing.
Available on WinCE platforms only (find the platform of your device at "HMI devices capabilities" on page 589)
PrintBytes
Prints an hexadecimal string representing data to print (for example, "1b30" to print < ESC 0 >.
Parameter Description
This action works in line printing mode and uses a standard protocol common to all printers that support it. Text is printed
immediately line by line or after a timeout custom for each printer model.
Note: printing could a few minutes for models not designed for line printing.
Not available on Linux platforms (find the platform of your device at "HMI devices capabilities" on page 589)
EmptyPrintQueue
Flushes the current printing queue. If executed while executing a job, the queue is cleared at the end of the job.
PausePrinting
Puts the current printing queue on hold. If executed while executing a job, the queue is paused at the end of the job.
ResumePrinting
Restarts a queue previously put on hold.
220 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
AbortPrinting
Stop the execution of the current job and removes it from the queue. If the queue has another job, then, after aborting, the
next job starts.
Recipe actions
Used to program recipe management.
DownLoadRecipe
Copy recipe data from HMI device flash memory to the controller (e.g. PLC, local variable, depending on the protocol).
Parameter Description
UpLoadRecipe
Saves recipe data from the controller (e.g. PLC, local variable, depending on the protocol) to the device Flash Memory.
Parameter Description
WriteCurrentRecipeSet
Sets the selected recipe as current recipe set.
Parameter Description
DownLoadCurRecipe
Downloads current set of recipe data to the controller.
No parameter is required.
UploadCurRecipe
Uploads set of controller data to current recipe set.
No parameter is required
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 221
Recipe actions
ResetRecipe
Restores factory settings for recipe data. Original recipe data will overwrite uploaded recipes
DumpRecipeData
Dumps recipe data to internal or external storage. Data is saved in .csv format.
Parameter Description
l Internal = \Flash\QTHMI\workspace\Dump
l USB drive = \USBMemory
l SD Card = \Storage Card
l Public Network = \\<hostname or IP>\sharePath
l Private Network = \\<username>:<password>@<hostname or IP>\sharePath
Note: supported formats for external memory are FAT or FAT32 (NTFS format is
not supported).
Note: Private networks are supported only from Linux devices with BSP 1.0.25
and above.
l %r = Recipe name
l %d = Dataset name
Example: %r_%d
DateTimePrefixFileName true = the dumped file will have date and time as prefix to its name (for example D2012_01_
01_T10_10_recipe1.csv)
l Local = the time values exported are the time of the HMI device.
l Global = the time values exported are in UTC format.
RestoreRecipeData
Restores previously saved recipe data.
222 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
Parameter Description
l AllRecipes
Data of all recipes will replaced with the data read from the external file
l CurrentRecipe
Only the data of the current selected recipe will replaced with the data read from the external file
l AllRecipeDataSet
All data set will restored
l curSet
Only the data set of the current selected data set will restore
This parameter define the behavior when the numbers of data sets inside the file to restore is not
matching with the data set number inside the HMI device
l Replace
All data sets that are inside the device are removed and replaced with the data sets from the
csv file
l Match
Replace only the data set inside the device that have the same data set id
l MatchAndAdd
Replace the data set inside the device that have the same data set id and add the additional
data set found inside the csv file (Note: data sets that are inside the device but not inside the
csv file are not removed from the device)
l Internal = \Flash\QTHMI\workspace\Dump
l USB drive = \USBMemory
l SD Card = \Storage Card
l Public Network = \\<hostname or IP>\sharePath
l Private Network = \\<username>:<password>@<hostname or IP>\sharePath
Note: supported formats for external memory are FAT or FAT32 (NTFS format is not
supported).
Note: Private networks are supported only from Linux devices with BSP 1.0.25 and above.
FileName Attached tag from which read the file name at runtime.
BrowseForFile true = shows the Open dialog to browse the file to read.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 223
Recipe actions
AddRecipeDataSet
Adds a new dataset to the selected recipe. The new dataset is appended at the end of the already defined datasets.
Parameter Description
CopyFrom Dataset from where parameters values are copied from to initialize the new dataset
DelRecipeDataSet
Deletes a dataset from the selected recipe. Deleting a dataset will rearrange the position number of the datasets that
follow.
224 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
Parameter Description
Important: Enable FTP support and give all necessary user rights to the folders used to transfer files.
UploadToHMI
Opens a file Open dialog to select a file to be uploaded to the remote HMI device.
Parameter Description
Filter File extensions of the files to be displayed separated by commas (for example, *.txt)
DownloadFromHMI
Opens a file Open dialog to select a file to be downloaded from the remote HMI device.
Note: Only files matching the set filter are displayed and can be downloaded.
Parameter Description
Filter File extensions of the files to be displayed separated by commas (for example, *.txt)
JavaScript Interface
boolean project.uploadToHMI(dirPath, strFilter);
Parameter Description
strFilter File extensions of the files to be displayed separated by commas (for example, *.txt)
Return values:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 225
System actions
Note: When transferred, system variables are updated with the status of ongoing operations.
System actions
Used to manage system properties.
Restart
Restarts the runtime.
DumpTrend
Stores historical trend data to external drives (USB drive or SD card).
Parameter Description
l Internal = \Flash\QTHMI\workspace\Dump
l USB drive = \USBMemory
l SD Card = \Storage Card
l Public Network = \\<hostname or IP>\sharePath
l Private Network = \\<username>:<password>@<hostname or IP>\sharePath
Note: supported formats for external memory are FAT or FAT32 (NTFS format is not
supported).
Note: Private networks are supported only from Linux devices with BSP 1.0.25 and above.
FileFormat Binary = the buffer is dumped in binary format (a .dat file and .inf file). Both these files are then
required to convert data in .csv format by an external utility.
Compatibility CSV = the buffer is dumped to the specified location as a .csv file format compatible
with versions 1.xx
Compact CSV = the buffer is dumped to the specified location as a .csv file using a newer format
DateTimePrefix true = the dumped file will have date and time as prefix to its name (for example D2012_01_01_T10_
10_Trend1.csv)
226 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
Parameter Description
l Local = the time values exported are the time of the HMI device.
l Global = the time values exported are in UTC format.
l %n = Trend name
l %y = Year
l %M = Month
l %d = Day
l %h = Hour
l %m = Minutes
l %s = Seconds
Example: \%n\%y%M%d\%h%m%s
Additional parameters available only when the selected FileFormat is Compact CSV
When both “Select Fields” and “Select Curves” parameters are empty, the .csv file is dumped in the old
“Compact CSV” without columns' selection format. See also "Exporting trend buffer data" on page 305
Parameter Description
Note that "Attach to tag" can be used to define columns to be exported at the runtime from the HMI
application. The tag must contain a string with the list of fields to be exported separated by commas.
Example:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 227
System actions
Parameter Description
Example:
Date Placeholder
Time Placeholder
228 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
Parameter Description
Time Placeholder
z The millisecond
Note: execution of the DumpTrend action will automatically force a flush to disk of the data temporarily
maintained in the RAM memory. See "History trend widget" on page 307 for details on how to save sampled data
to disk.
Note: external drives connected to USB port must have format FAT or FAT32. NTFS format is not supported.
WARNING: Be aware there are limits in the max number of files that can create inside a folder. Limits
are depending of different factors and are not simple to calculate, you can think as 999 the max
number of files that can be use inside a folder.
where:
Trend1 = name of the trend buffer without extension resulting from the dump (original file name is trend1.dat)
WARNING: The TrendBufferReader.exe is an old utility that not work with the new multi tags buffers.
Using of this utility is not recommendable. The utility is not more maintenanced because now there is
the possibility to dump trend buffer directly in .csv format.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 229
System actions
Column Description
0 = empty
1 = boolean
2 = byte
3 = short
4 = int
5 = unsignedByte
6 = unsignedShort
7 = unsignedInt
8 = float
9 = double
Quality Tag value quality. Information coded according the OPC DA standard and stored in a byte data (8 bits)
defined in the form of three bit fields; Quality, Sub status and Limit status.
The eight quality bits are arranged as follows: QQSSSSLL. For a complete and detailed description of all
the single fields, please refer to the OPC DA official documentation.
Quality
Quality Description
Code
4 BAD Specific server problem with the configuration. For example, the tag has been
deleted from the configuration file (tags.xml).
8 BAD No value may be available at this time, for example the value has not been
provided by the data source.
230 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
Quality
Quality Description
Code
28 BAD No data found for upper or lower bound value Trend interface specific flag.
This value is also used to indicate a temporary offline status (for any condition
where sampling was stopped).
In this case the Limits field indicates which limit has been exceeded but the
value can move farther out of this range.
In this case the Limits field indicates which limit has been exceeded but the
value can move farther out of this range.
In this case the Limits field indicates which limit has been exceeded but the
value can move farther out of this range.
In this case the Limits field indicates which limit has been exceeded but the
value can move farther out of this range.
192 GOOD -
DeleteTrend
Deletes saved trend data.
Define the name of the trend from which you want to delete logs.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 231
System actions
DumpEventArchive
Stores historical alarm log and audit trail data to external drives, such as USB memory or SD card.
Parameter Description
l Internal = \Flash\QTHMI\workspace\Dump
l USB drive = \USBMemory
l SD Card = \Storage Card
l Public Network = \\<hostname or IP>\sharePath
l Private Network = \\<username>:<password>@<hostname or IP>\sharePath
Note: supported formats for external memory are FAT or FAT32 (NTFS
format is not supported).
Note: Private networks are supported only from Linux devices with BSP
1.0.25 and above.
DumpAsCSV true = the buffer is dumped to the specified location as a .csv file
false = the buffer is dumped in binary format (a .dat file and .inf file). Both these files are
then required to convert data in .csv format by an external utility.
DateTimePrefix true = the dumped file will have date and time as prefix to its name (for example D2012_
01_01_T10_10_alarmBuffer1.csv)
l Local = the time values exported are the time of the HMI device.
l Global = the time values exported are in UTC format.
csv Colums Select the columns to dump into the .csv file.
232 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
Parameter Description
Example: \%n\%y%M%d\%h%m%s
For Alarms buffers, the additional "csv Colums" parameter give the possibility to select the columns to export inside the
.csv file
When exporting Event buffers in binary format and DumpConfigFile is set to true (recommended settings), there are two
folders:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 233
System actions
Once the two folders are copied from the USB drive to the computer disk, the folder structure will be:
\config\
alarms.xml
eventconfig.xml
\data\
AlarmBuffer1.dat
AlarmBuffer1.inf
AlarmBufferReader.exe
where:
where:
DeleteEventArchive
Deletes saved Event buffers log data.
Specify the name of Event buffer to delete from the Event logs.
ResetProtoErrCount
Resets the Protocol Error Count system variable.
SafelyRemoveMedia
Provides for safe removal of SD card or USB drive fromHMI.
234 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
CopyCodesysProject
Copies the CODESYS 2.3 project files (.prg, ,chk and .sdb) from the source path to the device CODESYS folder.
After copy the CODESYS module is stopped, reloaded and started again.
Parameters Description
Source Path Project path into external storage (for example, \USBMemory\Codesys)
Copy Symbols true = copies .sdb symbol file required by the CODESYS 2 ETH protocol
This action can be used to transfer a CODESYS project from one HMI device to another. In this case copy these files from
the HMI running CODESYS project:
l default.chk
l default.prg
l boot.sdb
Verify PLC and CopyCodesysProject action status using the following PLC system variables:
l PLC Status
l Get CopyCodesysProject Action
ControlUserLED
Sets the user LED behavior.
Not available on Linux platforms (find the platform of your device at "HMI devices capabilities" on page 589)
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 235
System actions
SaveEventArchive
Save the records located within the audit trail to a signed file. The file signature will ensure that the records within the report
are not altered.
Parameter Description
l Internal = \Flash\QTHMI\workspace\Dump
l USB drive = \USBMemory
l SD Card = \Storage Card
l Public Network = \\<hostname or IP>\sharePath
l Private Network = \\<username>:<password>@<hostname or
IP>\sharePath
Note: supported formats for external memory are FAT or FAT32 (NTFS
format is not supported).
Note: Private networks are supported only from Linux devices with BSP
1.0.25 and above.
Example: \%n\%y%M%d\%h%m%s
l CSV
See also:
236 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
Parameter Description
l Local = the time values exported are the time of the HMI device.
l Global = the time values exported are in UTC format.
l All events
l Today
l Yesterday
l Last week
l Last month
l Current week
l Current month
l Custom
The additional parameters "periodFrom" and "periodTo" will be shown
Separate Date and Uses two separate columns for Date and Time
Time
Signed file
When the "Signed file" parameter is true, two files will be added in addition to fileame.csv:
l filename.csv.sign
The file signature will ensure that the records within the file filename.csv file have not been altered
l ssl-HMI.crt
A copy of the certificate of the HMI device required to verify the authenticity of the report.
For more information about the certificate and how to verify signed files, see "x.509 Certificate" on page 356.
For more information about the exported information see "Exporting audit trail as .csv files" on page 384.
LogMessage
Add a message into the audit trail buffer.
This macro give the possibility to developer to decide to keep track of some events (e.g. when a button is pressed, when a
page is activate, etc.) into the audit trail. The attach to tag to have the possibility to define the message to log at runtime is
supported.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 237
Tag actions
Parameter Description
DeleteOldFiles
This macros delete files older that a give number of days.
In PC there is no restriction in using path. In panels it is allowed in dynamic media and data partition (/Flash in WinCE and
/mnt/data in Linux)
It will be developer responsibility to configure the application to avoid the possibility to delete system
files.
Parameter Description
Example: *.png,*.jpg
Tag actions
Interacts with tags.
DataTransfer
Exchanges data between:
l two controllers,
l registers within a controller,
l from system variables to controllers,
l from controllers to system variables
The various tag types include a controller tag, a system variable, a recipe tag and widget property.
ToggleBit
Toggles a bit value of a tag.
BitIndex allows you to select the bit to be toggled: toggling requires a read-modify-write operation; the read value is
inverted and then written back to the tag.
SetBit
Sets the selected bit to “1".
BitIndex allows you to select the bit position inside the tag.
238 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
ResetBit
Resets the selected bit to “0”
BitIndex allows you to select the bit position inside the tag.
WriteTag
Writes constant values to the controller memory. Specify tag name and value.
StepTag
Increments or decrements tag value.
Parameter Description
BiStep
This action is similar to the StepTag action but the direction Increment/Decrement is automatically chosen by the rotation
of the Wheel. Tag value will be increased when the Wheel is rotated clockwise. Tag value will be decreased in when the
Wheel is rotated counterclockwise.
Property Description
Step Value to be added/subtracted to Tag at every wheel rotation (depends on Event step property)
Event step This property allows to chose if adding/subtracting step values at every single wheel step, or at
every rotation event.
false = The step value is added/subtracted to the Tag at every rotation event.
Example: rotate the wheel performing 5 wheel steps in a single event, Tag will be
increased/decreased by 1.
true = The step value is added/subtracted to the Tag at every single wheel step.
Example: rotate the wheel performing 5 wheel steps in a single rotation, Tag will be
increased/decreased by 5.
Do not step over If true, enables lower and upper limits, which represents the lower and the higher value that the
limit Tag can assume due a BiStep Tag action
LowerLimit If "Do not step over limit" is true, this property represents the lower value that the Tag can
assume due a BiStep Tag action
UpperLimit If "Do not step over limit" is true, this property represents the higher value that the Tag can
assume due a BiStep Tag action
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 239
Tag actions
ActivateGroup
Forces the update of a group of tags.
Tags are updated either when used in the current page or continuously, if defined as active in the Tag Editor. This action
forces all the tags of a group to be continuously updated.
DeactivateGroup
Deactivates a group of tags, that is stops forcing the update of a group of tags.
EnableNode
Enable/disables action for offline node management. No communication is done with a disabled node.
Parameter Description
False = disabled
True = enabled
BACnetClearPriority
Refer to the BACnet manual inside the “Communication Drivers” folder for a detailed description of BACnet actions.
BACnetClearAllPriorities
Refer to the BACnet manual inside the “Communication Drivers” folder for a detailed description of BACnet actions.
BACnetSetPriority
Refer to the BACnet manual inside the “Communication Drivers” folder for a detailed description of BACnet actions.
ClearRetentiveMemory
When set to 0, clears the content of the Retentive Memory.
ForceReadTag
Force a refresh of the specified tag from the remote controller.
240 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
Trend actions
Used for Live Data Trends and Historical Trends Widget.
RefreshTrend
Refreshes the Trend window.
It can be used in any Trends/Graphs widgets. Specify the widget as a parameter for the action.
ScrollLeftTrend
Scrolls the Trend window to the left side, by one-tenth (1/10) of the page duration.
Note: with the real-time trends pause the trend using the PauseTrend action, or the window will be continuously
shifted to the current value.
ScrollRightTrend
Scrolls the Trend window to the right side, by one-tenth (1/10) of the page duration.
Note: with the real-time trends pause the trend using the PauseTrend action, or the window will be continuously
shifted to the current value.
PageLeftTrend
Scrolls the Trend window by one-page. For example, if the page size is 10 minutes, then use the PageLeftTrend action to
scroll the trend left for 10 minutes.
PageRightTrend
Scrolls the Trend window by one-page. For example, if the page size is 10 minutes, then use the PageRightTrend action
to scroll the trend right for 10 minutes.
PageDurationTrend
Sets the page duration of the Trend window.
Note: you can set page duration at runtime using a combo box widget.
ZoomInTrend
Reduces page duration.
ZoomOutTrend
Extends page duration.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 241
Trend actions
ZoomResetTrend
Reset the zoom level back to the original zoom level.
ZoomInYAxisTrend
Reduces Y Axis.
ZoomOutYAxisTrend
Extends Y Axis.
ZoomResetYAxisTrend
Reset the Y Axis zoom level back to the original zoom level.
PauseTrend
Stops plotting the trend curves in the Trend window.
When used with real time trend the plotting stops when the curve reaches the right border of the graph. This action does not
stop trend logging.
ResumeTrend
Resumes trend plotting if paused.
ShowTrendCursor
Shows value of the curve at a given point on the X axis.
It activates the trend cursor. A cursor (vertical line) will be displayed in the trend widget.
When the graphic cursor is enabled, the scrolling of the trend is stopped.
The ScrollCursor action moves the graphic cursor over the curves, or over the entire Trend window.
ScrollTrendCursor
Scrolls the trend cursor backward or forward.
The Y cursor value will display the trend value at the point of the cursor. Scrolling percentage can be set at 1% or 10%. The
percentage is calculated on the trend window duration.
242 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
SetTrendView
Use this macro to change the axis ranges of the trend view.
When both Min X=0 and Max X=0, the static values defined inside the properties of widget are used. The same for the Y
axe.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 243
Trend actions
ScrollTrendToTime
Scrolls the Trend window to a specified point in time.
Use this action when you need to scroll to a specific position in a trend window when a specific event occurred.
Example
1. Configure an action for an event (for example, an alarm) that executes a data transfer of the system time into a tag.
2. Select that tag as ScrollTrendtoTime parameter: the trend windows will be centered at the time when the event
was triggered.
ConsumptionMeterPageScroll
Scrolls the page backward or forward in a Consumption Meter widget.
Parameter Description
244 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
LogOut
Logs off the current user. The default user is then automatically logged in. If no default user has been configured, the logon
window is displayed.
SwitchUser
Switches between two users without logging off the logged user: the user login dialog appears. User can click Back to go
back to the previously logged user.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 245
User management actions
The server continues running with the previously logged user, until the next user logs on. One user is always logged onto
the system.
ChangePassword
Change current user password: a dialog appears
No parameter is required.
ResetPassword
Restores the original password together with the settings specified in the project for the current user.
No parameter is required.
AddUser
Reserved to users with Can manage other users property set.
DeleteUser
Reserved to users with Can manage other users property set.
No parameter is required.
246 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
EditUsers
Reserved to users with Can manage other users property set.
DeleteUMDynamicFile
Deletes the dynamic user management file. Changes made to users settings at runtime are erased. The original settings
are restored from the project information.
No parameter is required.
ExportUsers
Exports user settings to an .xml file (usermgnt_user.xml) in encrypted format to be restored when needed.
Note: supported formats are FAT or FAT32. NTFS format is not supported.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 247
Widget actions
ImportUsers
Imports user settings from a previously saved export .xml file (usermgnt_user.xml).
Note: supported formats are FAT or FAT32. NTFS format is not supported.
Widget actions
ShowWidget
Shows or hides page widgets.
Property Description
SlideWidget
Shows the sliding effect of a widget, or of a widget group.
Note: The widget or grouped widgets can actually be outside of visible part of the page in the project and slide in
and out of view.
Property Description
Slide Limit Enable/Disable movement limits of the widget with respect to the x, y coordinates
BeginDataEntry
Displays a keypad and starts data entry on a data field without touching the widget itself. This action can be used to
activate data entry using a barcode scanner.
248 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
Parameter Description
pageName Active page for data entry. Optional parameter. Useful to select a data field inside a non-modal
active dialog box.
TriggerIPCamera
Captures an image from an IP Camera. Only works on pages that include an IP Camera widget.
MoveIPCamera
Sends remote commands to a camera that supports them. See "IP Camera widgets" on page 461 for details. Make sure
that the IP Camera supports movement commands.
RefreshEvent
Refreshes the event buffer for Alarm History widget. See "Alarms History widget" on page 282 for details.
ContextMenu
Displays the context menu.
If Context Menu property of Project Widget has been set to On delay context menu can appear also touching for a few
seconds the background area of the screen. See "Project properties" on page 83
ReplaceMedia
Replaces existing media files with new files from USB/SD card. Can be used to replace video files of MediaPlayer
widgets, or images of project.
Note: New media files must have same name and format of the files to be replaced.
Parameter Description
sourcePath Folder where new media files are stored (for example, "\USBMemory")
Image Resize Resizes new images to the size of images to be replaced. Not applicable to video files.
Silent Replaces media automatically. As defau a dialog is displayed for the user to specify file
location.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 249
Widget actions
ScrollTable
Scroll rows of the table forward or backward.
Parameter Description
Direction The number of rows to jump, forward when positive, backward when negative.
ShiftTableDataSrcColumns
Shift left or right the columns of a data table. Note the remapping is applicated to the data source widget.
Parameter Description
Columns Shift Data source widget columns are shifted (left or right, depeding on sign) by this amount
Fixed left columns A custom amount of columns (on the left of table) can be kept fixed during shifting
Remap Filter Table widget filter (if defined) is connected to a data source widget column. This column, by
default, is not remapped by shift action, but can be forced to true
page.getWidget("TableDataSrcWgt").remapColumns(json);
ResetTableDataSrcColumns
Restore the original columns order (see "ShiftTableDataSrcColumns" macro)
SetTableSortingColumn
Select a column and the criteria to use to sort the rows of the table.
250 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
15 Actions
Parameter Description
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 251
Widget actions
252 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
16 The HMI Client
HMI Client is a standalone application which provides remote access to the JMobile HMI Runtime, and is included in the
JMobile Suite. The HMI Client uses the same graphic rendering system as the runtime in the HMI devices, it relies on a
specified JMobile HMI Runtime as server for live data.
HMI Client acts as a remote client and communicates to the server, sharing the local visualization with the tag values that
are maintained or updated by the communication protocol.
HMI projects contain properties indicating which page is currently displayed on the HMI and can force the HMI to
switch to a specific page. You can use these properties to synchronize pages showed on the HMI device
and HMI Client or to control an HMI device with a PLC. See "Project" on page 90 for details.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 253
Client application on PC
Client application on PC
To run the HMI Client application on PC:
1. From the Start menu > JMobile Suite >HMI Client: the client opens in a browser-like style window.
2. Type the server/device IP address in the address bar (for example: http://192.168.1.12): HMI Client will connect to
the server and the same graphical application running on the device will be loaded in the client window.
Element Description
Reload options
Option Description
See "Remote Client actions" on page 225 and "Remote Client variables" on page 144.
Important: Enable FTP support and give all necessary user rights to the folders used to transfer files.
Workspace
Project files are uploaded from the device and stored in HMI Client into the following cache folder.
%appdata%\Exor\[build number]\client\cache
where:
254 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
16 The HMI Client
1. From the Run > Update Package menu, create an Update Package and install the HMI Client application in to the
HMI device (see "Update package" on page 105 for additional information)
2. Type the server/device IP address in the Setting dialog that will be available when HMI device start (for example:
http://192.168.1.12): HMI Client will connect to the server and the same graphical application running on the device
will be loaded in the client window.
Context Menu
The Context Menu, available with a right mouse click, will show the below commands:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 255
Settings and time zone options
Option Description
l Zoom In
l Zoom Out
l Zoom 100%
Show system settings Allow the HMI settings and the management of system components. See "System
Settings" on page 593 for details.
l From cache
l From server
Setting Open the HMI Client Settings. See "Settings and time zone options" below for details
256 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
16 The HMI Client
Remote Server
Connection settings
Parameter Description
Auto connect at startup When the panel starts, use the Server Address to try to connect automatically to the
remote server.
Time settings
Parameter Description
Use Widget Defaults Displays time information according to the widget settings.
Local Time Translates all timestamps in the project into the computer local time where the client is
installed.
Global Time Translates all timestamps in the project into UTC format.
Server Time Translates all timestamps in the project into the same used by HMI device/server in order
to show the same time.
Important: Make sure you set the HMI RTC correct time zone and DST options.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 257
Settings and time zone options
Settings
Interface Settings
Parameter Description
Context Menu Delay(s) Context menu activation delay. Range: 1–60 seconds.
Use Keypads Display keypads when user touches a data entry field.
FTP settings
Parameter Description
HTTP settings
Parameter Description
Timeout Maximum wait time before a request is repeated by the HMI Client. Default = 5 s.
Reuse connection Enables reuse of the same TCP connection for multiple HTTP requests to reduce
network traffic.
258 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
16 The HMI Client
Parameter Description
Note: When enabled, this option may cause high latency if the proxy server
does not immediately terminate old requests thus saturating connection
sockets. This is often the case with 3G connections.
Time Settings Used by the client to adapt the widget time stamp information.
Password
This dialog give the possibility to change the internal password of the HMI device for the admin user (the default password
is "admin").
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 259
Settings and time zone options
260 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
17 Using the integrated FTP server
JMobile HMI Runtime system uses an integrated FTP server.
Connect to the HMI device FTP server using any standard FTP client application. The FTP server responds on the
standard port 21 as default.
Important: The server supports only one connection at a time; if you are using a multiple connection
FTP client disable this feature on the client program or set the maximum number of connections per
session to 1.
FTP settings
FTP default credentials
When User Management/Security is disabled use the following credentials for incoming connections:
Password admin
You can change FTP permissions and account information in the Ftp tab of the admin authorizations dialog.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 261
FTP settings
262 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
18 Using VNC for remote access
VNC is a remote control software which allows you to see and control the HMI application remotely using your local mouse
and keyboard.
Remote access is particularly useful for administration and technical support. In order to use it you need to:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 263
Starting VNC server on WinCE devices
1. In the Properties pane set VNC Server to true to enable the plug-in.
2. Install or update the runtime to add the VNC server.
Tab Functions
Options Define security information for server access using a VNC viewer
Select Silent Startup to keep the VNC Options dialog in the background when Autostart is
enabled.
Out Contains the configuration settings for an outgoing connection to a listening VNC viewer software.
264 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
18 Using VNC for remote access
Important: Settings in the Advanced tab are reserved to expert users and should be modified when the
VNC server is used in conjunction with a VNC repeater to overcome firewall problems or optimize
VNC performances according to the network configuration.
Connecting to viewer
Many modern VNC viewers offer the possibility to start the software in listening mode. The reason is that mobile devices
most of the time do not have a public IP address to refer to. So it is practical to have a public IP address on an Office
Computer which runs a listening VNC viewer. A user can then easily call for support by pressing the Connect to viewer
button on the Control tab.
Password null
Many compatible VNC viewers are available for free download (for example, TightVNC).
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 265
Starting VNC viewer
266 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
19 Corvina Cloud
Corvina Cloud is a VPN-based solution that allows a seamless connection of diverse remote devices, called endpoints, to
a centralized server through gateways. Users who have access to the Corvina Cloud can easily reach the gateways and
the endpoints, provided they have the necessary access rights, using a PC application called Corvina Cloud Connect.
The diagram below presents a possible setup of the various components of the infrastructure, showing how they are
interconnected:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 267
268 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
20 Alarms
The alarms handling system has been designed to provide alerts through pop-up messages, typically to display warning
messages indicating any abnormal condition or malfunction in the system under control.
Whenever a bit changes, or the value of a tag exceeds a threshold set in the alarm configuration, a message is displayed.
Specific actions can also be programmed to be executed when an alarm is triggered.
You can define how an alarm is displayed on the HMI device, if it requires user acknowledgment, and if and how it is logged
into the event list.
Alarms are configured in the Alarms Configuration Editor and, thus, are available for all the pages of the project. An alarm
widget can display more than one alarm at a time, if sized appropriately. You can trigger the opening or closing of the Alarm
window with an event.
You work with alarms in the same way as you work with any other event. You may not want to display a dialog when an
alarm is triggered and you can associate to it any other available action.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 269
Alarms Editor
Alarms Editor
Path: ProjectView> Config > double-click Alarms
Adding an alarm
Click + to add an alarm.
Parameter Description
Groups Groups associated with the alarm. They can be used in widgets display filters.
Alarms can be enabled or disabled at runtime as well (see "Enable/disable alarms at runtime"
on page 283 for details).
Ack Enable/disable acknowledgment of alarm, if selected the operator must acknowledge the alarm once
triggered to remove it from the Active Alarm widget.
Reset Used with the Ack option, if selected, acknowledged alarms stay in the alarm list, labeled as Not
Triggered Acked, until the operator presses the Reset button in the alarm widget.
l limitAlarm: alarm triggered when tag value exceeds its limits. The alarm is not triggered if the
value reaches the limits.
l valueAlarm alarm is triggered when tag value is equal to the configured value
270 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
20 Alarms
Parameter Description
l bitMaskAlarm: the bitwise AND operator compares each bit of the bitmask with the tag value
corresponding to that Alarm. If both bits are on, the alarm is set to true. You can specify one or
more bit positions (starting from 0) inside the tag. The Bit position must be given in decimal format;
if more bits are specified, each position must be separated by a ",".
l deviationAlarm: alarm triggered if the percentage of deviation of the tag value from the set point
exceeds a set deviation.
This trigger mode is available only when the protocols configuration contains a BACnet
device. Refer to the BACnet manual inside the “Communication Drivers” folder for a
detailed description of BACnet alarm events.
Tag Tag whose value will trigger the alarm when it exceeds the set limits.
The alarm can refer to the value of this tag, or to the state of a bit if bitMaskAlarm has been selected as
trigger.
Tip: It could be useful to enable the logging of the alarm's enable flag
Remote Tag used by the PLC to acknowledge the alarm. A transition of this tag from 0 to a non zero value is
Ack considered an acknowledgment request.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 271
Alarms Editor
Parameter Description
Ack Notify Tag used by the HMI device to notify when the alarm is acknowledged from the device or from the PLC.
Action Actions executed when the alarm is triggered. Additional conditions can be specified in the Events
column. See "Setting events" on page 274 for details.
The macros added in the action field are executed on the server-side with the exception of the below
macros that will be executed even on client-side (e.g. JM4Web).
l loadPage
l prevPage
l nextPage
l showDialog
l showMessage
l setLanguage
l jsAction
User Actions executed when user press the action button in the active alarm widget.
Action
See ""Active Alarms widget" on page 277 for details.
Description Alarm description. This text supports the multiple language features and can be a combination of static
and dynamic parts, where the dynamic portion includes one or more tag values.
Custom It is an additional alarm description that can be used to show additional information inside the alarms
Field # widgets. For example, could be an index to use to show a picture related with the alarm.
Color Foreground and background colors of alarm rows based on the status of alarm.
AckBlink Blinking for triggered alarms. If selected the alarm rows blinks until acknowledged. Only effective if Ack is
selected.
Severity Severity of the alarm. If multiple alarms are triggered simultaneously, actions will be executed based on
severity settings.
0 = not important
1 = low
2 = below normal
3 = normal
4 = above normal
5 = high
272 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
20 Alarms
Parameter Description
6 = critical
1. When an alarm condition is detected the HMI device set Ack Notify to 0 and all related actions are executed.
2. When the alarm is acknowledged (by HMI device or remotely), Ack Notify is set to 1
3. It's up to the controller to set Remote Ack to 1 to acknowledge the alarm or reset it to 0 when the HMI device send a
notification that the alarm has been acknowledged (Ack Notify = 1)
WARNING: When an alarm is triggered, some signals need to be update/communicated through the
connected devices. We assume the Acknowledge to be a signal pushed from an operator and not
released automatically from a controller device. This allows for time required to communicated the
original signals.
Tip: Using the same tag both for Remote Ack and Ack Notify can connect more devices to the same controller
and acknowledge the alarms from any HMI device.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 273
Alarm state machine
States and transitions between states are described according to the selected options and desired behavior.
Setting events
Path: ProjectView> Config > Alarms > Events property
Notifying events
Path: ProjectView> Config > Alarms > Events property > Notify tab
Set conditions under which the alarms will be posted in the alarm widget.
274 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
20 Alarms
Here you define the behavior of the default alarm widget available in the Widget gallery and decide in which cases the
widget is updated by a change in an alarm status.
CAUTION: Make only the adjustments required by the specific application while leaving all other
settings as default.
Logging events
Path: ProjectView> Config > Alarms > Events property > Log tab
Set conditions for which you want to store the specific event in an alarm history buffer.
Executing actions
Path: ProjectView> Config > Alarms > Events property > Actions tab
Set conditions under which the action(s), configured for the specific alarm, must be executed.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 275
Setting events
By default, actions are executed only when the alarm is triggered; other alarm states can also be set to execute actions.
Print events
Path: ProjectView> Config > Alarms > Events property > Print tab
Set conditions for which you want to print the specific event
276 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
20 Alarms
Data is automatically saved every five minutes except for alarm data which is saved immediately.
Events are stores with the timestamp of when the HMI device detect the event. When “Use source timestamp” is selected,
the events are stored with the timestamp received from the remote device.
Available only for device’s protocols that support this feature (OPC UA Client and BACnet)
Alarm filters
Path: ActiveAlarm widget> Properties pane> Filter
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 277
Active Alarms widget
Define filters used to display only some of the configured alarms. Filters are based on alarm fields, which means you can
filter alarms according to name, severity, description and so on.
Filter 1 is the default filter. It's managed by the combo box Filter 1, and has two options: Show all alarms and Hide Not
Triggered which, when selected, allows to display only active alarms.
Filter's expressions make use of AWK language, the expressions are applied to the data contained in the selected Filter
column of the Alarm widget.
Setting filters
Path: ActiveAlarm widget> Properties pane> Filter
1. Select Filter Column 1 and choose the value to filter for (e.g.: Name, State, Time, Groups)
2. In DataLink attach a combo box widget. Use Shift+ left-click to select the combo box.
3. In the Properties pane select list property and open dialog to customize combo box values
4. In the combo box configuration dialog, specify String List and the regular expression to filter values.
278 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
20 Alarms
Meaning:
1[1-9] = first char must be 1 and the second char must be between 1 and 9
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 279
Active Alarms widget
State Hide Not Triggered ^((Not Triggered Acked|Not Triggered Not Acked|Triggered).*$)
Sorting alarms
Path: ActiveAlarm widget> Properties pane> Sorting
The sorting function allows you to sort alarms at runtime in the alarms widget by clicking on the column header.
Note: The severity value displayed here is set in the Alarm Editor.
Action
When the "User Action" associate with the alarm (see “"Alarms Editor" on page 270 for details) contains valid actions, the
Action icon is showed. Pressing the icon, the configured actions will be executed.
280 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
20 Alarms
WARNING: If you are using an older converted project, you have to substitute the old Active Alarms
Widget with the new one from the Widgets gallery
Note: The image can be modified from the Colums property of the Active Alarms widget
Enable/Disable Alarms
At runtime the Alarms Widget can be used to enable or disable the alarms.
Saves changes made in the Enable column in the alarm widget. This action is used with the Save button in the alarm
widget.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 281
Alarms History widget
In Properties pane > Event select the Event Buffer from which the alarm list is retrieved
Note that some widgets are available even inside the print report gallery.
282 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
20 Alarms
Some widgets are based on the new table structure. For these widgets, in addition to the exposed properties, you can
select the internal table and use the table capabilities to modify the widget as for your needs and taste (see "Table widget"
on page 473 for additional details).
Using the “attach to tag” feature is possible to use tags to define some properties of the historical alarms list to print at
runtime:
l Page Duration
l End Time
"Page Duration" with "End Time" define the piece of the alarm buffer to print.
IMPORTANT: The Active Alarms widget is not displayed automatically. You must add a dedicated
action that will open the page containing the alarm widget when the alarm is triggered.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 283
Displaying live alarm data
Disabled alarms are not triggered and therefore not displayed at runtime.
Both in the Active Alarms widget and in the Alarms History widget it is possible to set the description of the alarm, or of the
custom fields, to display the data of the live tags.
To show the tag value, set a placeholder in Description entering the tag name in square brackets, for example "[Tag1]". At
runtime, in Description column of Active Alarms widget the current value of the tag will be displayed.
l [TagName]
The tag value is read and continuously updated
Use '\' before '[ ]' if you want to show the '[ ]' in the description string, for example: \[Tag\[1\]\] will display the
string "[Tag[1]]".
Use '\', even when the tag label contains square brackets. For example, to display the live tag value of tag
“TAG]3” or “TAG[3]” use:
l TAG\]3 = [TAG\]3]
l TAG\[3\] = [TAG\[3\]]
Array Tags
284 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
20 Alarms
l [TagName]
All array elements will be displayed using a comma separate list.
l [TagName[-1]]
All array elements will be displayed using a comma separate list.
l [TagName.Index]
Example: [MyARRAY.5] will display the sixth element of the MyARRAY
l [TagName[TagIndex]]
Example: [TagIndex] will display the sixth element of the MyARRAY when TagIndex is 5
Data Formats
Placeholder characters can be used to control how to display the tag value (see "Custom Formats" on page 38)
l [TagName|format("###")]
Example:
Note that by default, all tags are displayed as an integer. If you want to display a float number, you have to
specify how to show the number adding the decimal digits.
Live tags are read and continuously updated. If you want to freeze the tag value at the instant the alarm is triggered, use the
exclamation point as tag name prefix:
l [TagName]
When alarm is triggered, tag value is read and continuously updated
l [!TagName]
When alarm is triggered, tag value is read and frozen
In History Alarms widget or in .csv file, live tag values are the values taken when the alarm's status
change (for both types of placeholders)
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 285
Exporting alarm buffers to .csv files
The sum of the bytes that are calculated using the underlying algorithm must be less than or equal to 50
Example:
l [Tag1] or [Tag1[-1]]
The entire array is shown and the number of the necessary bytes is calculated as 4(size-INT) x 8(array elements) +2
= 34 Byte
l [Tag1[Index]]
An element of the array is shown and the number of the necessary bytes is calculated as 4(size-INT) x 1(array
elements) +2 = 6 Byte. In this case, if at runtime the Index assumes the value -1 some values could be lost
Note: Tag values displayed in the alarms description are also included in the buffer. Tags are sampled
when the alarm is triggered and that value is logged and included in the description.
286 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
20 Alarms
Click the Export Alarms button: the alarms configuration table is exported into an .xml file.
You can edit the resulting .xml file using third part tools (for example, Microsoft Excel) .
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 287
Exporting alarm configuration
1. Click the Import Alarms button and select the .xml file from which to import the alarms configuration: the Import
Alarms dialog is displayed.
2. Select the group of alarms to import and click OK to confirm.
Differences are highlighted in the Import Alarms dialog using different colors
Color Description
Red This alarm has not been found and will be removed (only if check "Replace project alarms with imported alarms"
is checked)
Gray This alarm is already part of the project and will be skipped.
Automatic synchronization
Select the Keep synchronized option in the Import Alarms dialog to enable the automatic synchronization of the alarm
configuration file.
Whenever changes occur in the alarms configuration, the file will be automatically updated in silent mode.
Tip: Enable this function when the alarm file is managed by a different tool (for example, PLC programming
software) as well as by JMobile Studio.
288 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
Events Buffer
The "Events Buffer" page gives you the possibility to configure the current events buffers (used for store alarms or audit
trail information) or add additional events buffers.
Parameter Description
Size Size of log file. Data is automatically saved to disk every 5 minutes.
l Alarms
l Audit
l Generic
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 289
Events Buffer
Backup Archive
If Save a copy when full option is enabled, the HMI device will save a copy when the events buffer is full before it is
overwritten by newer data.
Parameter Description
l Local
Use the time of the HMI device where the project is running
l Global
Use global time (GMT)
Date Format Time and Date format. Placeholders can be used (see "Time and Date placeholders" on page 456)
Separate Date When "true", the date and the time are placed into two different fields
and Time
Cleanup after When "true", the event buffer is clean up after completing the backup. When "false", the older events
backup are removed when new events are incoming (circular buffer)
Signed When "true", the additional file with the signature is added (see "Signed CSV files" on page 359)
290 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
22 Recipes
Recipes are collections of tag values organized in sets that satisfy specific application requirements.
For example, if you have to control room variables (temperature and humidity) in the morning, afternoon and evening. You
will create three sets (morning, afternoon and evening) in which you will set the proper tag values.
Each element of the recipe is associated to a tag and can be indexed into sets for a more effective use. This feature allows
you to extend the capabilities of controllers that have limited memory.
You can add controller data to a page using a recipe widget. Recipe data contains all the controller data items; however
data is no longer read directly from the controller but rather from the associated recipe element in the HMI device.
Recipe data is configured in JMobile Studio workspace; the user can specify default values for each element of the data
records. In JMobile HMI Runtime, data can be edited and saved to a new data file, any change to recipe data is therefore
stored to disk. With the use of a separate data file JMobile HMI Runtime ensures that modified recipe values are retained
throughout different project updates. In other words, a subsequent project update does not influence the recipe data
modified by the user in the JMobile HMI Runtime.
See "Recipe actions" on page 221 for details on how to reset recipe data.
Note: Recipe data can be stored on a Flash memory, on a USB drive or on a SD card.
Managing recipes
Creating a recipe
To create a recipe for your project:
1. In ProjectView right-click Recipes and select Insert Recipe: an empty recipe is added. You create and configure
recipes using the Recipe Editor.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 291
Managing recipes
Recipe editor
Path: ProjectView> Recipes > double-click RecipeName
Parameter Description
Number of sets Number of values sets for each recipe element. Each set has a different configurable name.
Setting up a recipe
1. Click + to add an element of the recipe.
2. Link the tags to each recipe element.
292 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
22 Recipes
In the Attach to dialog you have the choice of all the different recipe variables, such as:
When numeric widgets are defined as read/write, the default recipe data can be edited at runtime. These new values are
stored in a separate file as modified recipe data.
Note: Since JavaScript API functions are used, the recipe elements and sets can be referenced by name or by
position. To avoid ambiguity between names and index, the names of the recipe elements and sets must include
at least one alphanumeric character.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 293
Configuring a recipe widget
For USB drive and SD card storage you can provide the folder location.
WARNING: Recipe configuration files are created automatically when the project is saved and stored
in the data subfolder of the project. To use external storage devices, you need to copy this folder into
the external device. Note that you have the responsibility to manage the data folder inside external
devices. Even dynamic files are not deleted when project is updated using the “Delete dynamic file”
option.
Important: You can add a subfolder but you must not rename the "data" subfolder.
Import/Export recipes
To import/export the recipes configuration of your project:
Note: Use the Unicode Text file format when you import a file modified using Microsoft® Excel®.
l Recipe set: allows you to select a recipe set for upload or download. See "Uploading/downloading a recipe" on
page 296
l Recipe menu: when more recipes have been created for a project, use this widget to manage all recipes and select
the desired sets for each of them.
294 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
22 Recipes
Parameter Description
Recipe status
Each recipe contains two kinds of status parameters
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 295
Uploading/downloading a recipe
Recipe Status
After every recipe upload or download, or recipe set modification, the Recipe Status parameters contain a value with the
result of the operation.
3 Download Error Error during download (for example, unknown set, unknown recipe, controller
not ready, Tags write failed etc.)
DataSet Status
The status of each data set indicates that it has been changed. This information may be useful to not forget to download the
recipe to synchronize the PLC. Both download or upload operations will reset the DataSet Status to 0.
Note: After a device startup or a recipe reset/restore, all status values will reset to 0.
Uploading/downloading a recipe
Uploading a recipe
You upload a recipe to an HMI device using a recipe widget and the UpLoadRecipe, UpLoadCurRecipe action in one of
the following ways:
l attach the action to an event of a button or a switch (see ""Attach to" parameters" on page 49 for details)
l configure the action in an alarm action list (see "Alarm actions" on page 202 for details)
l configure the action in a scheduler action list (see "Scheduling events at runtime" on page 348 for details)
296 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
22 Recipes
Downloading a recipe
You download a recipe from an HMI device using a recipe widget and the DownloadRecipe, DownLoadCurRecipe
action. See "Recipe actions" on page 221
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 297
Backup and restore recipes data
298 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
23 Trends
Trends allow you to sample and record the values of specified tags according to specific sampling conditions. The trend
function includes trend acquisition and trend display.
Trend acquisition parameters are set in the Trend editor so that data can be stored. Stored data can then be displayed in a
graphical format using a trend widget.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 299
Data logging
Data logging
Data can be logged and stored to HMI memory. Data logging allows you to store the values of a group of tags all at the
same time to a buffer. Data logging can be triggered by a timer or by a dedicated tag. Logged data can be exported to a .csv
file or displayed using the historical trend widget. Logged data can be saved locally on a USB device or SD card, or on any
available custom network folder.
WARNING: The operation with removable memory devices (USB Flash drives, SD memory cards)
containing a very large number of files may result in a decrease of system performance.
WARNING: The max number of files inside a SD memory card depends on the type of formatting (e.g.
FAT32 max 65536 files; FAT max 513 files).
WARNING: Flash cards support a limited number of write operations. We suggest to use only good
quality memory cards; in the case your application use intensively the memory card consider a regular
substitution of the memory card.
WARNING: If the data/time is moved back, the samples with invalid date/time are removed from the
trend buffer. When system detects that data/time is invalid (e.g. battery low), a popup is shown to
advise the user and the date/time of the last sample is used to avoid losing data.
Storage is based on trend buffers. Trend buffers are organized as a FIFO queue: when the buffer is full, the oldest values
are discarded unless you configure your trend to create a backup copy of the buffer.
300 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
23 Trends
Add trend Add a trend that will be sampled from the HMI device.
Add PLC trend Add a trend that will be managed and sampled from the external device, instead of from
the HMI device. You need a device that supports this feature to use it (e.g. BACnet
devices). The parameters depend on the used device, refer to the manual of the selected
device.
Settings Offers the ability to customize the labels that appear in the trend dump header and trend
table widgets.
l Timestamp
l Date
l Time
l Quality
l " \n " (space + \n + space) can be used to split the label into two or more lines
l [TagName] (tag name enclosed in square brackets) can be used to display a tag
value
Trend Name Name of the trend collection (set of tags sampled at the same time)
Number of Samples Trend buffer size (see "Number of Samples" on page 304 for additional information)
Note that instead of a constant, you can use a Tag to define/change the
sample time at runtime. When sample time is 0, or negative, sampling is
suspended.
Time Time unit for the sample time. Could be 1 second (default) or 1/10 seconds
Be aware that increasing the sampling rate could impact global HMI device
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 301
Data logging
performances.
Timestamp When checked, samples are stored using the timestamp provided from the remote
device.
Available only:
l for device’s protocols that support this feature (OPC UA Client and BACnet)
l when trend buffer is configured to with a single tag
Backup Archive If Save a copy when full option is enabled, a backup copy of the buffer data is created
before it is overwritten by newer data.
l %n = Trend name
l %y = Year
l %M = Month
l %d = Day
l %h = Hour
l %m = Minutes
l %s = Seconds
302 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
23 Trends
Data Time and Date format. Placeholders can be used (see "Time and Date
Format placeholders" on page 456)
Sampling Filter / Trigger This parameter allows to specify a dynamic filter if required.
Filter
When sampling is done on time basis the offset is applied to the sampled Tag value. If
the new value exceeds the specified limits the new value is considered valid and stored,
otherwise the new record will retain the previous saved value.
When sampling is done on trigger the offset is applied to the trigger Tag value. If the
trigger Tag value change exceeds the specified limits a new sample is taken and stored,
otherwise no sampling will be done.
Samples Description
Title Title that has to appears inside the trend table or the trend dump.
l The placeholder " \n " (space + \n + space) can be used to split the label into two
or more lines
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 303
Data logging
Samples Description
l The placeholder [TagName] (tag name enclosed in square brackets) can be used
to display a tag value
Example:
Format Display format to use. Note that even the custom format can be used (see "Custom
Formats" on page 38).
Number of Samples
The number of samples that you can have is dependent on the memory size reserved for trend buffers and from the size of
each sample.
Where the size of each sample is dependent on how many tags are used and can be calculated using the below formula:
You are free to use the entire available memory for a unique trend buffer or split the available memory over several trends.
See also:
304 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
23 Trends
The exported .csv file could have different formats defined from the Dump Trend macro parameters. The different formats
are maintained mainly for compatibilities reasons.
Note: The first row of the header contains the tags names and tags data types
The time required to dump a trend buffer depends on the number of samples present in the buffer, the memory
type, and the HMI device type.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 305
Realtime trend widget
1. Drag and drop the RealTime Trend widget from the widget gallery to the page.
2. Attach the tag that you want to sample to the Curve n Value. Data is always plotted against time.
This parameter can be used to scroll the time window. When zero, the end time is the
current system time.
Starting Specifies where the curve begin to be drawn when the page is opened (can be left, center
306 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
23 Trends
Property Description
Position or right).
l Min/Max of Y axis
l Number of tickets to draw on the axes
l Background image
Text Trend title and font properties (font size, label, etc.)
Tag values can be scaled using the X Forms in the Attach to dialog. See ""Attach to" parameters" on page 49 for
details.
l first you create a trend buffer to collect data for specified tags at specific points in time,
l then you configure a History Trend widget to display the collected data in a graphical format.
See "Data logging" on page 300 for details on how to create a trend buffer
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 307
History trend widget
1. Drag and drop the History Trend widget from the widget gallery to the page.
2. Attach the trend buffer that you want to draw to the Curve n Value. Data is always plotted against time.
This parameter can be used to scroll the time window. When zero, the end time is the
current system time.
Starting Specifies where the curve begin to be drawn when the page is opened (can be left, center
Position or right).
l Min/Max of Y axis
l Number of tickets to draw on the axes
l Background image
Text Trend title and font properties (font size, label, etc.)
Curve "n" Buffer that contains the tag's values to plotted in the trend widget.
308 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
23 Trends
Tag values can be scaled using the X Forms in the Attach to dialog. See ""Attach to" parameters" on page 49 for
details.
Using the “attach to tag” feature is possible to use tags to define some properties of the historical trend to print at runtime:
l Page Duration
l End Time
l Curve Name
"Page Duration" with "End Time" define the piece of the trend buffer to print. "Curve Name" can be used to select the curve
to show. An empty string means no curve to show.
SetTrendView() and ScrollTrendToTime() are display macros and have no effect on report printing.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 309
Trend widget tips
Scatter diagram curves are obtained by a linear interpolation of points. To create a new scatter diagram:
Here you set the max number of values to be displayed in the graph starting from first element in the array.
For example: Tag1[20] and Max Samples = 10 will show just first 10 elements of the Tag1 array.
5. Define for each curve the two tags of type array to be displayed (X-Tag and Y-Tag).
When the array tags change, you can force a refresh with the RefreshTrend action .
310 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
23 Trends
Use the actions ShowTrendCursor and ScrollTrendCursor to enable the trend cursor and move it to the required point to
get the value of the curve at that particular point in time.
To display the value of the trend cursor on the page, define a numeric field and attach it to the Cursor Value widget tag.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 311
Trend widget tips
To display the trend time stamp at the position of the cursor, use a Time/Data widget (available inside Basic->Controls
category) and attach the widget's value to the Cursor Timestamp property of the trend widget.
Example 1
Using :
l Page Duration
l End Time
l Curve Name
is possible to modify from the runtime application the zoom factor, the window period and the curve to draw.
312 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
23 Trends
Example 2
Curve property can be attached to a Combo Box to select the curve to draw
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 313
Trend widget tips
Gesture Description
pan Touch the widget to scroll the curve within the widget area
pinch Use two fingers to pinch the curve and perform zoom operations
WARNING: Only multi touch HMI devices can generate pinch events
Note: In order to support gestures on Y axis, Min/Max properties of the trend widget must be linked to Min/Max
values of Behavior parameters (default for new trends).
314 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
23 Trends
Request Samples
Request Sample property can be set for each curve and indicates the maximum numbers of samples read by the widget at
one time from the trend buffer.
Tip: You normally do not need to modify the default value. Adjust it to fine tune performances in the trend widget
refresh, especially when working with remote clients.
Color bands
Use the color bands configuration to customize your graphs background, for example to make certain days or hours stand
out (weekends, night hours, etc.).
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 315
Table trend widget
1. In the Properties pane, in Color Bands property click +: the Configure Bands window appears.
2. Click + to add as many colors you need.
3. Select multiple cells and click on a color band to assign the color to the selected range of cells.
Note: This feature only uses local time in the trend widget, not the global time option.
316 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
23 Trends
Buttons:
l REFRESH
Retrieve trend data from internal buffer and refresh table view
l BACKWARD/FORWARD
Move the display window forward or backward as specified in the duration parameter
Parameter Description
TrendName Trend Buffer from which the samples are retrieved (see "Data logging" on page 300)
The visible labels inside the JMobile Studioeditor are only placeholders, the actual labels that will be
displayed are defined in the trend configuration (see "Data logging" on page 300)
This parameter can be used to scroll the time window. When zero, the end time is the current system
time.
Table Defines the characteristics of the scroll bar and allows to remove the header of the table
Layout
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 317
Table trend widget
Then use the properties panel to select the trend element to add to the new columns
318 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
23 Trends
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 319
Table trend widget
Using the “attach to tag” feature is possible to use tags to define some properties of the historical trend to print at runtime:
l Page Duration
l End Time
l Curve Name
"Page Duration" with "End Time" define the piece of the trend buffer to print. "Curve Name" can be used to select the curve
to show. An empty string means no curve to show.
320 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
23 Trends
SetTrendView() and ScrollTrendToTime() are display macros and have no effect on report printing.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 321
Table trend widget
322 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
24 Data transfer
Data transfer allows you transferring variable data from one device to another. Using this feature an HMI device can
operate as a gateway between two devices, even if they do not use the same communication protocol.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 323
Data transfer editor
Each line in the Data transfer editor defines a mapping rule between two tags. Define more mapping rules if you need
different direction, update method or trigger.
Import/ Export Imports or exports data transfer settings from or to a .csv file.
TAG A/ TAG B Pair of tags to be mapped for exchanging through the HMI device.
A->B and B->A: Unidirectional transfers, values are always copied from one tag and
sent to the other tag in the specified direction.
A<->B: Bidirectional transfer, values are transferred to and from both tags.
Update Method On trigger: Data transfer occurs when the value of the tag set as trigger changes
above or below the values set as boundaries. Limits are recalculated on the previous
tag value, the same that triggered the update.
324 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
24 Data transfer
Prameter Description
On Update: Data transfer occurs whenever the value of the source tag changes.
Note: The Runtime cyclically monitors source tags changes (trigger tag
when using On Trigger or tags to transfer when using On Update) based on
Tag editor Rate parameter. If Rate setting for source Tag is 500 ms (default),
the system checks for updates every 500 ms.
Trigger, Tag that triggers the data transfer process. When this tag changes its value outside the
High limit, boundaries set as High limit and Low limit, data transfer is started. The range of
Low limit tolerance is recalculated according to the specified limits on the tag value which
triggered the previous update. No action is taken if the change falls within the limits.
This mechanism allows triggering data transfers only when significant variations of the
reference values occur.
Note: If both Low limit and High limit are set to "0", data transfer occurs
whenever the value of the trigger tag changes.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 325
Exporting data to .csv files
Column Description
Important: When you edit the .csv file and you add any extra line, make sure
you enter a unique identifier in this column.
Import/export use the separator character defined inside Windows Regional Settings.
On trigger method
The On trigger method allows only unidirectional transfers, (A->B or B->A)
326 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
24 Data transfer
Data transfer based on the On Trigger mode should be preferred since it allows you to force the transfer and monitors only
the trigger tags and not all the tags involved in the transfer.
On update method
The On update method allows changing the values in accordance with the direction settings only when the source value
changes.
Using the On Update method you force the system to continuously read all the defined source tags to check if there are
changes that need to be transferred. The default value of the update rate of each tag is 500 ms and can be modified with
Tag editor.
Performance observations
Data transfer performance depends on:
l number of data transfers defined,
l number of data transfers eventually occurring at the same time,
l frequency of the changes of the PLC variables that are monitored,
Important: If inappropriately set, data transfer tasks can lead to conditions where the tags involved
create loops. Identify and avoid such conditions.
Tip: Use the scheduler to calibrate the update rate based on the performance of your entire project.
Tip: Use array type tags to optimize data transfer and reduce workload.
Tip: Reduce the number of data transfers to reduce page change time and boot time.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 327
Data transfer limitations and suggestions
328 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
25 Offline node management
When one of the controllers communicating with the HMI device goes offline, communication performance of the system
may eventually decrease.
The offline node management feature recognizes offline controllers and removes them from communication until they come
back online.
Additionally, if you know that any of the controllers included in the installation is going to be offline for a certain time, you
can manually disable it to maximize system performance.
Note: This feature is not supported by all communication protocols. Check protocol documentation to know if it
is supported or not.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 329
Offline node management process
l The system communicates normally with a certain device. When the device is not responding to a communication
request, the system will repeat the request twice before declaring the device offline.
l When a device is offline, the system sends communication requests to the device with a longer interval, called
Offline Retry Timeout. If the device answers to one of these requests, the system declares it online and restarts
normal communication.
The diagram shows the three communication attempts and the recovery procedure that starts when the Offline Retry
Timeout is elapsed.
l use an action to declare the device offline: the system stops communication with the device.
l use an action to declare the device online: the system restarts normal communication with the device.
WARNING: All disabled device nodes will remain disabled if the same project is downloaded on the
device, on the other hand, if a different project is downloaded, all disabled devices will be re-enabled.
The same happens with a package update.
Tip: To make this feature more dynamic, you may decide not to indicate a specific NodeID but attach it to the
value of a tag or to an internal variable created to identify different devices that might be installed in your network.
Note: When using the action EnableNode to force a device node back online, communication will start
immediately.
330 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
25 Offline node management
Parameter Description
Offline Retry Interval in seconds for the retry cycle after a device has been deactivated. Range:
Timeout 1–86.400 seconds (24h).
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 331
Automatic offline node detection
332 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
26 Multi-language
Multi-language feature has been designed for creating HMI applications that include texts in more than one language at the
same time
Multi-language feature uses code pages support to handle the different languages. A code page (or a script file) is a
collection of letter shapes used inside each language.
Multi-language feature can be used to define languages and character sets in a project. JMobile Studio also extends the
TrueType Fonts provided by Windows systems to provide different font faces associated with different character sets.
JMobile Studio also allows you to provide strings for each of the languages supported.
JMobile Studio also allows you to change the display language so that you can see the page look and feel during the design
phase.
In Windows 10, by default, the languages fonts are not pre-installed. To use a language (e.g. an Indian Language
Telugu), first you need to add the language in the PC (Settings->Region & Language->Add a Language->Select
Telugu), then Windows 10 will download and install the required fonts in the PC. Once the above step complete,
open JMobile Studio and then select Telugu writing system. This time, the font correctly set it works inside the
JMobile HMI Runtime.
Fangsong simfang.ttf
Kaiti simkai.ttf
NSImsun simsun.ttc
SimHei simhei.ttf
Simsun simsun.ttc
DFKai-SB kaiu.ttf
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 333
Font name Font file
MingLiU mingliu.ttc
PMingLiU mingliu.ttc
MingLiU_HKSCS mingliu.ttc
334 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
26 Multi-language
Language settings
Parameter Description
Language ISO 639 language code identifier, used to match language items when importing resources from
Code external xml files.
Note: When you choose a new font you are prompted to replace the font used in the widgets
you already created.
Tip: Store large font files on removable memory to free memory requirements in the HMI
device.
Adding a language
1. In the Languages tab, click +: a line is added to the table.
2. Enter all language settings.
3. Click Default to set the selected language as the default language when the Runtime starts.
4. Click Save Font to copy the fonts you marked as Removable on an external memory.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 335
Changing language
Important: Font files configured to be stored on removable memory must be provided to the final user
to complete font installation on the HMI device.
Removing fonts
To remove fonts no longer needed:
1. Click on the font number in the Multi-language editor: a dialog with the list of the used fonts is displayed.
2. Select the fonts to be removed and click Remove: removed fonts are replaced with the default font.
Changing language
Changing language during page design
A combo box is available for changing language during page design. If no texts appears, please check Text tab in the
Multilanguage editor and insert missing string.
Multi-language widgets
Multi-language support is available for objects such as buttons, static text, messages, alarm descriptions and pop-up
messages.
336 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
26 Multi-language
Enable/disable multi-language function, edit the text for the selected language and choose the font.
Note: Bold, italic and color properties set here for the widget are applied to all languages .
Parameter Description
Choose text from other Click on button to browse existing message strings in project to pick text for the
widget widget.
Parameter Description
Continuous Index Index for the widget is set of contiguous numbers (example 3, 4,5,6)
Choose text from other Click on button to browse existing message strings in project to pick text for the
widget widget.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 337
Multi-language widgets
Tip: Text labels with alarm states displayed by alarms widgets can be translated or personalized through the
Multilanguage text editor.
338 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
26 Multi-language
Important: The .csv file exported by JMobile Studio is coded in Unicode, to edit it you need a specific
tool supporting Unicode encoded .csv files.
1. In the Text tab, click Export: all multi-language strings are exported to a .csv file.
Important: Set all languages that will be used in the project before exporting the file. This will
guarantee that the exported file will contain all columns and language definitions.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 339
Changing language at runtime
2. Once the strings have been translated, click Import to re-import them into the project: strings are imported matching
the widget ID and the page number of each widget.
3. Click Save to save the new widget data.
Note: To change the separator used in the exported file, change the regional settings of your computer. When
importing, the separator information is retrieved from the file; if not found, the default character "," is used.
Import constraints
The following formats are supported for import:
Note: Use the Unicode Text file format when you import a file modified using Microsoft® Excel®.
Note: Once the language has been changed, it will be used also in future sessions.
The active language code is available from JavaScript API. See "curLangCode" on page 539 for additional details.
Missing fonts
When you change language, if the required fonts are not available in the device memory, a pop-up message prompts you to
insert the memory card containing the missing fonts. At the end of the operation you can remove the memory card.
340 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
26 Multi-language
Tag editor Name ASCII [32..126] . \ / * ? : > < | " & # %;=
Comment Unicode
Password Unicode -
Comment Unicode -
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 341
Limitations in Unicode support
Files A-Z,a-z,0-9,-,_ -
(Images/Video/etc..)
Widgets ID A-Z,a-z,0-9,-,_ -
342 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
27 Scheduler
JMobile Studio provides a scheduler engine that can execute specific actions at set intervals, or on a time basis.
1. You create a schedule with a list of actions to be executed when the scheduled event occurs. You do this in the
Scheduler editor
2. You create a runtime user interface that allows the end-user to change settings for each schedule. You do this
adding a Scheduler widget to a page of your project and configuring it to fit user scheduling needs.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 343
Creating a schedule
Creating a schedule
Path: ProjectView> Config> double-click Scheduler
Schedule parameters
Parameter Description
Schedule Scheduler settings and options. See "Recurring schedule" on the facing page for details.
The macros added in the action field are executed on the server-side with the exception of the below
macros that will be executed even on client-side (e.g. JM4Web).
l loadPage
l prevPage
l nextPage
l showDialog
l showMessage
l setLanguage
l jsAction
Priority Priority level for the event. If two schedules occur at the same time, the event with the higher priority will be
executed first.
344 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
27 Scheduler
HighResolution schedule
The HighResolution schedule is used to perform actions that need to be repeated at specified intervals. The interval
between executions is set in milliseconds in the Schedule column.
Note: You cannot change at runtime the settings of this type of schedule. If you need to change the action time
settings at runtime, choose Recurring schedule and set Type to Every. See "Recurring schedule" below for
details.
Recurring schedule
The Recurring schedule is used to perform actions at specified points in time. Settings can be modified at runtime.
Condition Boolean tag (true/false) to activate the specified actions at the moment the timer is triggered. Actions will
be executed if tag = true. By default, actions are executed when the timer is triggered.
Note: Only tags attached to the Boolean data type are shown.
weekdays Days of the week in which the scheduled actions will be executed.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 345
Configuring location for schedules
Every Actions are executed with the specified interval (Range: 1 s–1 day)
Monthly Actions are executed every month at the specified date and time.
Weekly Actions are executed every week on the specified weekday(s) and time.
Yearly Actions are executed every year at the specified date and time.
Time Depends on the schedule type. Allows you to specify date/time/week data.
Random10 Actions are executed in the time interval of 10 minutes before or after the set time.
For example, if set time is 10:30, actions are executed any time between 10:20 and 10:40.
Random20 Actions are executed in the time interval of 20 minutes before or after the set time.
For example, if set time is 10:30, actions are executed any time between 10:10 and 10:50.
Sunrise+ Actions are executed with a specified delay after sunrise. The delay is set in minutes/hours
and sunrise time is location specific.
Sunrise- Actions are executed with a specified advance before sunrise. The advance is set in
minutes/hours and sunrise time is location specific.
Sunset+ Actions are executed with a specified delay after sunset. The delay is set in minutes/hours and
sunset time is location specific.
Sunset- Actions are executed with a specified advance before sunset. The advance is set in
minutes/hours and sunset time is location specific.
See "Configuring location for schedules" below for details on sunset and sunrise settings.
Note: Mode options are not available for all schedule types.
346 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
27 Scheduler
Only a few locations are available by default. If your location is not listed, you can add it by entering latitude, longitude and
UTC information in the Target_Location.xml file.
For example, the information for the city of Verona (IT) is shown below:
Location information is also displayed in the dialog together with sunset and sunrise times.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 347
Scheduling events at runtime
1. Drag and drop a Scheduler widget from the widget gallery into the page.
2. In the Properties pane, click + for the Name parameter: the Schedule List dialog is displayed.
3. Add all the schedules you want to display in the page.
Scheduler settings
Parameter Description
348 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
27 Scheduler
Parameter Description
Enable Enabels/disables the execution of the scheduled actions without deleting the schedule.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 349
Scheduling events at runtime
350 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
28 21 CFR Part 11 Compliance
JMobile Studio includes a set of functions for responding to the requirements specified in FDA 21 CFR Part 11. The
standard is intended to provide a solution for securely handling electronic records and electronic signatures in industrial
applications.
The table lists all the requirements specified by the regulation and reports the functions available in JMobile Studio for
compliance.
FDA 21 CFR Part 11 compliance is optional during application development and the application
developer is responsible to configure the application in the proper way.
11.10(a) (a) Validation of systems to ensure accuracy, Reports generated by JMobile Studio can be signed
reliability, consistent intended performance, and the using x.509 Certificates. A certificate that includes
ability to discern invalid or altered records. the public key, necessary to verify the signature of
reports, will be exported with the report.
References:
l "SaveEventArchive" on page 236
l "PrintGraphicReport" on page 219
11.10(b) The ability to generate accurate and complete copies Application developer can select the resources
of records in both human readable and electronic (process values, alarms, etc.) whose changes will be
form suitable for inspection, review, and copying by tracked to the audit trail. Each change of the selected
the agency. Persons should contact the agency if resources will be recorded with the name of the
there are any questions regarding the ability of the operator doing the change. The audit trail reports can
agency to perform such review and copying of the be exported to .csv or .pdf files.
electronic records.
References:
11.10(c) Protection of records to enable their accurate and Applications can be developed to self-generate
ready retrieval throughout the records retention signed reports to external memory or network folders
period. at predefined interval (e.g. at the end of the day) or
when circular buffer is full. User is responsible to
keep these reports saved for the retention period.
References:
l "SaveEventArchive" on page 236
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 351
Chapter Description JMobile Studio compliance level (v2.8)
l "PrintGraphicReport" on page 219
l "Scheduler" on page 343
11.10(d) Limiting system access to authorized individuals. Application developer is responsible for the
appropriate security configuration of the application.
References:
11.10(e) Use of secure, computer-generated, time-stamped Audit trail records are stored using a circular buffer
audit trails to independently record the date and time (this is to ensure that the device will not run out of
of operator entries and actions that create, modify, or memory). Audit trails cannot be modified by the
delete electronic records. Record changes shall not operator. Each record contains a sequential number
obscure previously recorded information. Such audit to easily check the presence of all records. The
trail documentation shall be retained for a period at application can be developed to save/export a copy
least as long as that required for the subject of the data at regular intervals (e.g. at the end of each
electronic records and shall be available for agency day); operator is responsible for storing copy of
review and copying. reports in a safe place.
References:
11.10(f) Use of operational system checks to enforce Macros or JavaScript can be used to configure
permitted sequencing of steps and events, as command sequences in the application.
appropriate.
11.10(g) Use of authority checks to ensure that only The HMI application can be configured
authorized individuals can use the system,
l to be accessible only after user sign in with its
electronically sign a record, access the operation or
own password
computer system input or output device, alter a
record, or perform the operation at hand. l objects can be configured to be available or
not available depending on the user who
logged in to the system
l resources can be configured to require a
password confirmation before be modified
References:
11.10(h) Use of device (e.g., terminal) checks to determine, Resources can be configured to be accessible only
352 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
28 21 CFR Part 11 Compliance
as appropriate, the validity of the source of data input from selected user groups. List of allowed IP address
or operational instruction. can be configured from the User Management
settings.
References:
11.10(i) Determination that persons who develop, maintain, Application developer is responsible to define and
or use electronic record/electronic signature assign the appropriate user rights to each user that
systems have the education, training, and have access at the HMI device
experience to perform their assigned tasks.
11.10(j) The establishment of, and adherence to, written Application developer is responsible for establishing
policies that hold individuals accountable and appropriate procedures.
responsible for actions initiated under their electronic
signatures, in order to deter record and signature
falsification.
11.10(k) Use of appropriate controls over systems Application developer is responsible for establishing
documentation including: appropriate procedures.
11.30 Persons who use open systems to create, modify, JMobile Studio has been designed for operation in
maintain, or transmit electronic records shall employ closed systems.
procedures and controls designed to ensure the
authenticity, integrity, and, as appropriate, the
confidentiality of electronic records from the point of
their creation to the point of their receipt. Such
procedures and controls shall include those identified
in 11.10, as appropriate, and additional measures
such as document encryption and use of appropriate
digital signature standards to ensure, as necessary
under the circumstances, record authenticity,
integrity, and confidentiality.
11.50(a) Signed electronic records shall contain information All records will be added to the audit trail with time
associated with the signing that clearly indicates all stamp and user id of logged user.
of the following:
References:
(1) The printed name of the signer;
l "Exporting audit trail as .csv files" on
(2) The date and time when the signature was page 384
executed; and l "Table audit widget" on page 383
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 353
Chapter Description JMobile Studio compliance level (v2.8)
11.70 Electronic signatures and handwritten signatures Application developer is responsible for avoiding
executed to electronic records shall be linked to their using the macros that permit the import/export of
respective electronic records to ensure that the user passwords.
signatures cannot be excised, copied, or otherwise
transferred to falsify an electronic record by ordinary
means.
11.100(a) Each electronic signature shall be unique to one System will ensure that two users with the same id
individual and shall not be reused by, or reassigned cannot be defined. It is user responsibility to avoid
to, anyone else. removal and reassignment of the same user id to a
different user.
11.200(a) (a) Electronic signatures that are not based upon JMobile Studio Security functions are based on the
biometrics shall: combination Username/ Password.
354 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
28 21 CFR Part 11 Compliance
password.
(i) When an individual executes a series of signings Users must enter name and password to access the
during a single, continuous period of controlled system. Critical actions can be configured to require
system access, the first signing shall be executed entering again the password before execution is
using all electronic signature components; started.
subsequent signings shall be executed using at least
References:
one electronic signature component that is only
executable by, and designed to be used only by, the l "User management and passwords" on
individual. page 365
(ii) When an individual executes one or more l "Electronic Signature" on page 379
signings not performed during a single, continuous
period of controlled system access, each signing
shall be executed using all of the electronic signature
components.
(2) Be used only by their genuine owners; and Each user is responsible to not divulge own
password. Passwords defined by administrator for
(3) Be administered and executed to ensure that
first access can be forced to be redefined at first use.
attempted use of an individual's electronic signature
by anyone other than its genuine owner requires References:
collaboration of two or more individuals.
l "Configuring users" on page 373
11.200(b) Electronic signatures based upon biometrics shall be JMobile Studio does not support biometrics.
designed to ensure that they cannot be used by
anyone other than their genuine owners.
11.300(a) Maintaining the uniqueness of each combined It is not possible to define to define two users with
identification code and password, such that no two the same User ID
individuals have the same combination of
identification code and password.
11.300(b) Ensuring that identification code and password System can be configured to force each users to
issuances are periodically checked, recalled, or define a new and different password after a
revised (e.g., to cover such events as password configurable number of days
aging).
References:
11.300(c) Following loss management procedures to Users can change their password at any time.
electronically deauthorize lost, stolen, missing, or Administration can redefine each user's password
otherwise potentially compromised tokens, cards, and force them to redefine at the first login.
and other devices that bear or generate identification
References:
code or password information, and to issue
temporary or permanent replacements using l "User management actions" on page 245
suitable, rigorous controls.
l "Configuring users" on page 373
11.300(d) Use of transaction safeguards to prevent Failed logging attempts are logged to audit trail.
unauthorized use of passwords and/or identification
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 355
x.509 Certificate
11.300(e) Initial and periodic testing of devices, such as tokens User is responsible for ensuring appropriate
or cards, that bear or generate identification code or measures.
password information to ensure that they function
properly and have not been altered in an
unauthorized manner.
x.509 Certificate
To ensure authenticity of reports generated by HMI devices, JMobile HMI Runtime can generate reports with signed files to
verify the authenticity and the integrity of the generated reports.
JMobile HMI Runtime uses asymmetric cryptography keys to sign files and x.509 standard to manage public key
certificates. The picture shows the architecture.
356 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
28 21 CFR Part 11 Compliance
The public key can be signed by a Certificate Authority (CA) that guarantees its authenticity.
Workflow
1. Each HMI device contains two keys:
l Key1 is the secret key, that is used to sign the reports generated by the HMI device. This key is securely
stored inside the HMI device.
l Key2 is the public key that anyone can use to verify the authenticity of the reports signed by the HMI device.
2. The macros "SaveEventArchive" or "PrintGraficReport" can be used to generate signed reports (see
"SaveEventArchive" on page 236 or "PrintGraphicReport" on page 219 for additional details)
3. For the .csv file, you can use the public key and the signed file to verify the report is authentic and not tampered.
(See "Signed CSV files" on page 359)
4. For the .pdf file, you can use a PDF reader to verify the report is authentic and not tampered. (See "Signed PDF
files" on page 360)
Note that you can never retrieve the private key from the HMI device. You can instead provide a certificate with
both private and public keys.
After retrieving the "certificate signed request" file to send to the certificate authority, be sure to never
regenerate a new certificate otherwise the internal private key associated with the certificate send to the
authority will be lost.
When the certificate contains a private key, the current private key will be substituted with the key
found in the certificate and it will not be possible to recover it.
Example of a certificate with both public and private keys (certificates are encoded base64).
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 357
x.509 Certificate
You can import inside each HMI device the same certificate file to have a unique public certificate file for all your
HMI devices.
JMobile PC Runtime
When using JMobile PC Runtime the certificate files can be found inside the folder:
%AppData%\Exor\<Version>\server\config\ssl-certificate
358 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
28 21 CFR Part 11 Compliance
See also:
When required, using Signed=True, the SaveEventArchive macro in addition of the [ReportName].csv generate other two
files:
l [ReportName].csv.sign
l ssl-[CertificateName].crt
Where the [ReportName].csv.sign is the signature of the report and the ssl-[CertificateName].crt is a copy of the x.509
certificate of the HMI device. Note that you can retrieve the certificate of the HMI device even from the System Setting of
the HMI device.
How to verify the report's signature using the public OpenSSL library
To verify that nobody has tampered the content of the report you need
Reference.: https://www.openssl.org/
To verify that the .csv report generate from HMI device has not tampered you can install a public OpenSSL library, copy all
files generated from the macro inside the same folder and use the below batch file
File: SignatureVerification.cmd
@echo off
set OpenSSL="C:\Program Files (x86)\OpenSSL-Win32\bin\openssl.exe"
set FileToCheck=Report.csv
set hmiCertificate=ssl-myHMI.crt
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 359
Signed PDF files
pause
The below pictures are showing the possible outputs of the batch file
See also:
When you open the file, the PDF reader tries to decide if the signature is valid then it looks at the certificate used to sign the
document.
360 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
28 21 CFR Part 11 Compliance
If the document has been modified, it will be highlighted with a different message.
Trust of signed certificates depends on the issuer of the certificate. The PDF reader will trust a certificate if you have told it
to trust the issuer of that particular certificate. By default the Adobe Reader only trust certificates issued by Adobe or one of
their partners. This means that it will show a warning if the certificate wasn't issued by one of these authorities. Microsoft
Windows also uses certificates for validating software vendors and content providers. You can configure your Adobe
Reader to trust these issuers in addition to the Adobe partners.
Check inside the preferences of the PDF reader if you want to enable the PDF reader to use even the Microsoft Windows
certificates
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 361
Signed PDF files
This means that PDF Reader can confirm the file is signed and not tampered, but cannot confirm the signature (alias the
certificate) is authentic. Is the user have to take care to verify the certificate is authentic (for example, making sure that the
document was actually produced by the panel) and confirm to the PDF reader that the certificate included in the document
is valid and that can be considerate valid even for the next reports.
Now, if you close and reopen the PDF document you will get the valid signature. Moreover, even all other documents
produced from the same HMI device will be shown with the correct signature because the information that the certificate is
authentic has been stored inside settings of the PDF Reader.
362 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
28 21 CFR Part 11 Compliance
Compliant applications
Suggestions to development a CFR11 compliant applications
l Login
l Logout
l SwitchUser
l ChangePassword
l ResetPassword
l AddUser
l EditUsers
l ExportUsers,
Deprecated macros that must not be used inside CFR 21 part 11 compliance applications
l ImportUsers
l DeleteUser
l DeleteUMDynamicFiles,
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 363
Compliant applications
364 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
29 User management and passwords
You can restrict access to various widgets and operations by configuring users, users groups and assigning specific
authorizations to each group.
Each user must be member of one and only one group. Each group has specific authorizations and permissions.
By organizing permissions and groups you can define the security options of a project.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 365
Enable/disable security management
Important: Security settings are effective only if the security function is enabled.
Three predefined groups are available by default (admin, guest and unauthorized): they cannot be deleted nor renamed.
You can, however, modify authorizations and other settings.
Parameter Description
Home Page Page displayed when users belonging to this group log in
Use Last Visited When selected, the last page displayed by the previous user will be displayed when users
Page belonging to this group log in
366 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
29 User management and passwords
Parameter Description
Click the button: a dialog appears with a list of widgets and actions. You can modify access permissions for each one in the
list.
Widget permissions
In the Widget tab you can define widget access options at project level, at page level or at widget level for all the widgets
used in the project. Lower levels permission (for example, widget level) overrides higher levels (that is, page and project
levels).
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 367
Modifying access permissions
For example, if page permission for a widget is set at project level to Read Only, then all the same widgets will have
permission Read Only. When you select a widget inside a page from the tree structure, permission is actually set to Use
Base Settings. You can change this setting and modify access permissions only for this widget in this page.
Access priority
Widget permissions are considered with the following priority:
This allows you to specify exceptions for an action or a widget directly from the page view.
For example, if you set permissions for a widget at project level to Read Only and to Full Access at page level then the
page level settings will prevail.
Access permissions can be modified directly from the project page. See "Assigning widget permissions from page view" on
page 372 for details.
Action permissions
In the Action tab you can define action authorizations at project level, at page level or at widget level. Actions can be either
Allowed or Not Allowed.
368 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
29 User management and passwords
Action permissions can be modified directly from the project page. See "Assigning widget permissions from page view" on
page 372 for details.
Tag permissions
For each group of tags, you can define the Read/Write access rights
FTP authorizations
In the Ftp tab you can set specific authorizations for the FTP server.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 369
Modifying access permissions
Element Description
Enable FTP authorization Enables the FTP function for the specific group
l Read-Only
l Read-Write
Root Folder Folder to be used as root for FTP access. This is a relative path.
Additional folder Extra folders to be used as root for FTP access (for example, on USB drive or SD card)
Allowed IP Addresses List of IP addresses from which FTP connection can be accepted.
HTTP authorizations
In the HTTP tab you set restrictions to HTTP access to the web server integrated in JMobile HMI Runtime.
For example, the two following rules set the HMI device unit can only be accessed by all the IP addresses 192.168.*.* on
your local network in which only the IP address of 192.168.1.20 can access the device without entering a login name.
Element Description
Login When disabled, the username and password are not required.
Effect of these settings depends on whether the option Force Remote Login has been selected. See "Force remote login"
on page 376 for details.
370 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
29 User management and passwords
- Full -
To restore the default configuration click the Set default access limits icon. Default configuration allows access to the
following:
Miscellaneous settings
In the Miscellaneous tab you can define various authorization settings.
Option Description
Can enter config mode Enables switching from runtime to configuration mode. Normally used for maintenance.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 371
Assigning widget permissions from page view
Option Description
Can manage other Gives super user privileges at runtime to manage the select groups. Allows adding, deleting
users and modifying users' permissions.
Number of users Maximum number of users that can be connected to the HMI Runtime at the same time.
allowed to login
This setting is common to all users groups.
372 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
29 User management and passwords
Configuring users
Path: ProjectView> Security> double-click Users
In the Users editor, click + to add a user: one row is added to the table.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 373
Configuring users
Parameter Description
Default User This user is automatically logged in when the system is started or after another user has
logged off. Only one Default user can be set
Password User password. Note that for security reasons the password will never be displayed
Exception Allows to change the values forced from the User Settings parameters
Change Initial Password This user is forced to change his password at first log in
Logoff time (minutes) Minutes of inactivity after which the user is logged off. Set to 0 to disable
Must contain special Password must contain at least one special character
characters
Must contain numbers Password must contain at least one numeric digit
Must contain lower case Password must contain lower case and upper case
and upper case
Password cannot be The new password must be different from the last 3 used passwords
reused
Password aging (weeks) Number of weeks before forcing a password change (1/52 weeks)
Warning (days) Show a warning message before password expires (1/30 days)
Users Settings
From the Settings command, there is the possibility to define parameters values that will be common to all users.
Users with the Exception flag checked are not force to use the common parameters.
374 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
29 User management and passwords
Default user
You can define only one default user in a project. This is the user automatically logged in at system start up and when the
currently logged user logs out or is logged out after time-out.
To log into JMobile HMI Runtime with a different user, use one of the actions:
l SwitchUser
l LogOut
Note: When any modification is performed on user management in Studio, it is needed to delete User
Management dynamic files to apply new User Management settings.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 375
Force remote login
Select this option to force user to log in when using remote access viaHMI Client. If not selected, remote access will use
the same level of protection of local access.
WARNING: Use this option when you have a default user but at the same time you want to protect
remote access.
The only files/folders still accessible when this flag is enabled are:
See "Modifying access permissions" on page 367 for details on HTTP access limits.
376 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
30 Audit trails
The Audit trail is a chronological sequence of audit records. Each record contains information on the actions executed and
the user that performed them.
This function provides process tracking and user identification with time stamp for events.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 377
Enable/disable audit trail
Audit trail logging can be enabled from the “Enable Audit Trail” check box
When enabled, all changes to the selected resources will be logged to the audit buffer with the time stamp, user name that
performed the operation and some additional information concerning the modified resource (e.g. new value and previous
value for tags)
From the main tabs (Tags, Alarms, Recipes and Miscellaneous) of the Audit trail Editor you can switch between the list
views of the available resources.
Parameter Description
Signature The user password is required before allowing the resource to be modified from the user (see "Electronic
Signature" on the facing page to additional information)
Audit Internal buffer where store the related audit events (see "Events Buffer" on page 289 to additional
Buffer information)
Tags
Alarms
Recipes
Miscellaneous Resources
378 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
30 Audit trails
LogMessage Macro
In addition of that, the LogMessage macro gives the possibility to define additional events to log to the audit trail buffer.
Cache Memory
Data is temporarily saved in cache memory and flushed to file system when at least one of the following
conditions is true:
l temporary cache buffer is full
l an explicit dump procedure has been called
l 5 minutes cycle time has expired
Warning: data in cache memory will be lost if there is a power failure before data has been flushed to the file
system.
Electronic Signature
For each resources listed within the Audit Trail editor, it is possible configure the JMobile HMI Runtime to require the
password confirmation before changing it. If the audit trail log is enabled, the user has the option of adding a comment that
will be recorded within the Track Log.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 379
Electronic Signature
The user password is required before allowing the resource to be modified by the user
380 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
30 Audit trails
The introduced password will be not required again for the commands released in the next 10 Sec.
The validity time can be modified from the Settings dialog.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 381
Electronic Signature
382 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
30 Audit trails
Buttons:
l REFRESH
Retrieve trend data from internal buffer and refresh table view
l BACKWARD/FORWARD
Move the display window forward or backward as specified in the duration parameter
Filter:
Use the combo box to select the column where search for and the text filed on the right to enter the string to search to.
Parameter Description
AuditBuffer Event Buffer from which the event list is retrieved (see "Events Buffer" on page 289)
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 383
Exporting audit trail as .csv files
Parameter Description
Table Layout Defines the characteristics of the scroll bar and allows to remove the header of the table
Using the “attach to tag” feature is possible to use tags to define some properties of the historical trend to print at runtime:
l Page Duration
l End Time
"Page Duration" with "End Time" define the piece of the audit buffer to print.
384 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
30 Audit trails
File structure
RecordID Each record is stored with a progressive number which will give the possibility to easily identify missing
records or confirm that they are not lost. Note that the progressive number is not reset to zero when the
buffer is deleted.
Date, Time Event time stamp. Time can be configured as local or global from the dump action.
SYSTEM_IDAL: when the action is performed from the JMobile HMI Runtime application
l S_OK
Action executed correctly
l E_FAIL
Action non executed
l S_NEEDNOT_NOTIFY
Action triggered (will be executed asynchronously)
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 385
Exporting audit trail as .csv files
386 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
31 Reports
A report is a collection of information that will be printed when triggered by an event. When the programmed event is
triggered, the printing starts in background.
You can configure reports, their contents, trigger conditions and output printer in the Reports editor.
Not all widgets can be used in reports. When configuring reports, JMobile Studio provides access to a dedicated widget
gallery featuring only widgets available for reports.
Reports format can be customized using predefined templates for page layout.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 387
Adding a report
Adding a report
Path: ProjectView> Config > double-click Reports
In Reports editor, click Graphic Report or Text Report: one new row is added to the table.
Report types
Report
Description
type
Important: This printing mode requires using a physical port and only works on
Windows CE platforms.
Graphic Contain graphical elements and may include complex widgets such as screenshots or alarms.
Reports
Important: Each printer requires a specific printer driver. See "Configuring graphic
reports" on the facing page for a list of supported printer drivers.
Printing starts either immediately or after a timeout. In printer options you can force flush as soon as a specific condition
occurs, after a specified number of events, lines or seconds.
388 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
31 Reports
Re-size the field using the mouse, a tool tip shows the dimension in number of characters.
Note: If the text does not fit in the dedicated space, the auto wrap is applied.
When the mouse goes over a page, two icons are displayed and allow you to reorder or delete the pages.
2. Double click on the area you want to edit: the edit area is shown in white, others are grayed out.
The Widget Gallery is context-sensitive and displays only the widgets available for the area you are editing.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 389
Print triggering events
Widget Function
Screenshot Screen capture of the page currently displayed by the HMI device. The report page is automatically
resized to fit the HMI device page.
Alarm Entire contents of the event buffer (default buffer is Alarm Buffer1).
1. In the Alarms editor, open the Event Types dialog from the Events property.
2. In Print tab select all the conditions for which you want to trigger printing.
Important: Only one report can be set as Active alarm report in a project and it can be either a text
report or a graphic report.
390 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
31 Reports
Default printer
Printer setting
You can set a default printer for all graphic reports. Each report can then be configured to use the default printer or any other
printer available. Click Printer Setting button to set printer parameters.
For PDF printers you also define the folder where files are saved by using Printed Files Location.
Supported printers
List of printers and printer languages supported by the Windows CE driver printCE.dll. Printers not available in the list but
compatible with these languages are supported.
Printer Languages
SPT-8 SPT-8
M1POS M1POS
MP300 MP300
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 391
Default printer
Printer Languages
Intermec PB42, PB50, PB51, PB2, Intermect PB42/50/51/2/3 with ESC/P language
PB3
Supported ports
The following ports are supported:
Note: On Windows platform, only PDF and default printers are supported. Default printer is the default OS printer
and it can be connected with any kind of port (not only USB).
Tested printers
The following printers have been tested with printCE drivers in Windows CE HMI devices.
HP LaserJet 4700dtn
INTERMEC Intermec PB50 with ESC/P language with 4 inch roll paper. Yes Yes
PDF - Yes No
392 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
32 Screen saver
Screen saver can be used to execute actions and/or display a slide show when the HMI device is not in use. The screen
saver starts after a timeout if none of the following events occur:
l touch of display
l mouse movement
l external keyboard key pressed
l active dialogs
When the display is touched or a mouse movement is detected or a key from an external keyboard is pressed or a dialog is
launched, if the screen saver is active it is deactivated.
Important: You must enable the screen saver before you can configure it.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 393
Slide show parameters
Parameter Description
Images stored on USB or SD devices are saved in a screensaver folder on the device itself.
l Click + next to Actions in the onStart tab to configure actions to be executed when the screen saver starts.
l Click + next to Actions in the onStop tab to configure actions to be executed when the screen saver stops.
394 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
33 Backup/restore of Runtime and
project
You can backup all the content of the HMI device, including
to an external memory. This backup copy can be used to restore the content of the HMI device at a later time or copy it to a
new HMI device.
The backup function is available only if enabled for the logged user. See "Modifying access permissions" on page 367 for
details.
Backup function
The backup function automatically performs the following procedure:
Note: The backup process does not include files stored in USB and SD cards. Dynamic data such as recipes,
trends, events stored in these devices will not be included in the backup.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 395
Restore function
Restore the backup package can be perform on HMI device
l from the Context Menu (see "Update package" on page 105 for details)
l or from the System Settings (see "System Settings" on page 593 for details)
396 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
34 Keypads
Several keypads are provided by default in the JMobile Studio so that they can be used for data entry.
The alphabet keypad can be use associate with a string data type
The numeric keypad can be use associate with a numeric data type
The calendar keypad can be use associate with a date data type
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 397
Keypad position 402
398 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
34 Keypads
Creating a keypad
1. In ProjectView, right-click Keypads and select Insert Keypad: the New Keypad dialog is displayed.
2. Select one of the available keypads, or Blank to create a keypad from scratch. In this case a blank keypad is
displayed.
3. Use the Keypad Widgets and Keypad Buttons from the Widget Gallery to create your custom keypad.
The keypad you create, as in this example, will be saved in the project folder.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 399
Creating and using custom keypads
Text/Numeric Controls
Min_ Min value defined inside the field's property currently editing.
Max_ Max value defined inside the field's property currently editing.
400 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
34 Keypads
If you want to apply a customized version of the numeric keypad to all the numeric widgets you add to your project proceed
as follows:
1. Create a new keypad and select Numeric as Keypad type. This will be a backup of the original settings for the
numeric keypad.
2. Customize the default numeric keypad and save it. This customized version of the numeric keypad will now be
assigned as default in the project.
See "Deleting or renaming custom keypads" below for details on how to rename a custom keypad.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 401
Keypad type
Keypad type
Path: ProjectView> Keypads > double-click a keypad > Properties
Set Keypad Type parameter for a keypad to define the type of data entry.
Keypad
Description
Type
Decimal Only numeric keys are accepted. Entering 10, the keypad returns 10 that will be displayed
as "10" if the attached field is numeric or ASCII, as 'A' if the attached filed is hexadecimal.
Hexadecimal Only hexadecimal keys are accepted. Entering 10, the keypad returns 16 that will be
displayed as "16" if the attached field is numeric or ASCII, as "10" if the attached field is
hexadecimal.
Ascii All keys are enabled. Entering 1A, the keypad returns 1A that will be displayed as '1' if the
attached field is numeric, as "1A" if the attached field is ASCII or if the attached field is
hexadecimal.
Keypad position
Runtime Positioning property of keypads can be used to define where keypads will appear in the screen.
Option Description
Automatic The best position is selected according to here data entry is required.
Left-center
Left-bottom
Center-top
Center-center
402 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
34 Keypads
Option Description
Center-bottom
Right-top
Right-cente
Right-bottom
Select the Lock Keypad position option if you do not want the keypad to be moved by dragging.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 403
Keypad position
404 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
35 External keyboards
JMobile HMI Runtime has been designed to work with external keyboards connected via USB.
For example, the right arrow key OnClick event can be mapped to the LoadPage action.
Keyboard can be programmed at project level so that settings will be inherited by all the pages. In each page you can then
choose which key setting will be inherited from the project and which one you will customize for the specific page.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 405
Element Description
Inherits project actions Defines whether the key is inheriting the action programmed at the project level
Inherits
JMobile HMI Runtime
Enable project Editor appearance
behavior
actions
Checked Unchecked Action lists show the page actions (or nothing if the Only the page actions (if
list is empty) any) will be executed.
Checked Checked Action lists show the project actions only and Only the configured project
cannot be edited actions (if any) will be
executed.
Unchecked Checked Inherits project actions check box and all action No page or project action
lists are disabled. Action lists show the project will be executed.
actions only.
Unchecked Unchecked Inherits project actions check box and all action No page or project action
lists are disabled. Action lists show the project will be executed.
actions only.
406 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
35 External keyboards
Alternatively, in Filter by select key code and type a letter in the search field: only the key containing that letter in their
code will be displayed in the Keyboard editor.
Displayed keys
You can easily select what keys will be listed in the Keyboard editor window. To display a limited set of keys, select an
option in Shows.
Option Description
all keys All keys available in the keyboard layout are listed
modified keys Only the keys associated with actions at the page level are listed
modified keys in project Only the keys associated with actions at project level are listed
1. Select the keys for which you want to remove the association.
2. Click the Clear all actions of selected keys button.
If you are working at page level, page actions will be removed, if you are working a project level, project actions will be
removed.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 407
Keyboard layout
Keyboard layout
Select the layout of the keyboard from the Keyboard Layout combo box. Generic Keyboard refers to a generic
international keyboard layout.
Enable/disable keyboard
You can enable/disable keyboard actions both at project and at page level. To enable keyboard actions, in the Properties
pane set Keboard macro to true.
You can enable/disable keyboard actions also at runtime using the KeyboardMacros action. See "Keyboard actions" on
page 207 for details.
1. Click + next to the key you want to program: the fields for key configuration are displayed.
408 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
35 External keyboards
You can associate actions both to the OnClick event and toe the OnHold event.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 409
Associating actions to keys
410 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
36 Storing data to external databases
JMobile Studio allow to connect to the SQL4Automation Connector, a software solution for the industrial usage. It connects
HMI, PLC and robotic controls directly with SQL databases. HMI directly access SQL databases via the connector and
can query data from tables, insert, change and delete data in tables by using SQL commands [structured query language].
The database site communicates by ODBC. Therefore all SQL databases can be integrated, which support an ODBC
interface. The SQL syntax needs to be adapted to the given database, e.g. MS SQL Server, mySQL, MS Office Access,
SQLite, Oracle, PostgreSQL...
1. Install the SQL4Automation tool on the computer hosting the database or in a computer between the HMI device and
the database.
2. Configure the SQL4Automation tool.
3. Create a project that use the dedicated DB actions to access at the external database.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 411
412 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
36 Storing data to external databases
Installing SQL4Automation
Download the latest version of SQL4automation and install it on the computer. Refer to www.sql4automation.com for
details and download.
Configuring SQL4Automation
Important: Refer to the SQL4Automation user manual for detailed configuration instruction.
You must have the MS Office Suite installed on a computer and create an empty database using Microsoft Access.
Start SQL4Automation and follow the procedure to configure your SQL4Automation Connector:
1. Select ODBC Admin: the ODBC Data Source Administrator dialog is displayed.
2. Select the System DSN tab.
3. Click Add: the Create New Data Source dialog is displayed.
4. Select the Microsoft Access Drive
5. Click Finish to confirm.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 413
Configuring SQL4Automation
6. Enter Data Source Name and Description then click Select: the Select Database dialog is displayed.
7. Select your Access database.
8. Click OK to confirm.
414 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
36 Storing data to external databases
14. Select License> Activate Test License: when the Link 1 led turns green the procedure has been completed
correctly.
15. Click OK to confirm.
To save a project data to an external database you need to create a link with the specific database
Important: The link name here is not necessarily the same defined inside the SQL4Automation
Connector. But this is the name to be used in all actions using the remote database.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 415
Transfer data with JavaScript
Status of database connection is available through system variable tags. See "Database variables" on page 1.
Error status can be reset with actions. See "Database actions" on page 203
dbQuery
project.dbQuery(databaseLink, customSQL, dbCallback);
Parameter Description
dbCallback() Function that will be call when query data are ready
dbCallBack
project.dbCallBack(dbStatus, dbResponse);
416 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
36 Storing data to external databases
Parameter Description
In the example:
TagnName - Tagvalue
Tag09 - 103
Tag10 - 302
Database tables
Here the structure of the database tables used by the database actions.
Note: These tables can be generated on an empty database from the DBInit action.
Table: Tags
FieldName Text(255) PRIMARY KEY
TagValue Text(255)
Table: Trends
Id Long Integer PRIMARY KEY
TrendName Text(255)
SampleTime Text(255)
TrendValue Text(255)
Quality Text(255)
RefreshTime Text(255)
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 417
Custom tables
Table: Recipes
Recipe Text(255) PRIMARY KEY
SetValue Text(255)
Table: Event
Id Long Integer PRIMARY KEY
EventName Text(255)
SampledTime Text(255)
EventType Text(255)
EventSubTime Text(255)
EventValue Text(255)
Custom tables
SQL queries released from the DB actions are listed inside the project file config\dbconnector.xml.
Modify the commands defined inside this file to customize the SQL strings released from the DB actions and then get
access to a different structured database.
Example
Where "%_JMV" will be replaced with the tag value and "%_JMT" with the tag name.
Connection Limits
SQL4Automation is delivered as a USB dongle with a license for a predefined number of connections. Connections are
called "Links" inside SQL4Automation Connector. The number of connections depends on the license you have purchased.
SQL4Automation Connector can be installed on the same Computer/Server running the databse:
418 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
36 Storing data to external databases
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 419
Connection Limits
420 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
37 OPC UA Server
Path: ProjectView> Config > Interfaces > double-click OPC UA
Parameter Description
Data values defined in the HMI device are published by the OPC UA Server.
Features
Parameter Description
Tag groups Only tags belonging to selected groups will be available to the OPC UA Server.
Alarm groups Only alarms belonging to selected groups will be available to the OPC UA Server.
Network
Parameter Description
Node Name Enter node name or leave empty to use host name.
Port number proposed as default may be different from port used by OPC UA
Client.
Authentication
Select authentication options for OPC UA Server.
OPC UA Clients will be responsible for choosing, from available options, the most appropriate option to use
according to their capabilities.
User authentication
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 421
Using x.509 Certificates
Parameter Description
Any valid user has unrestricted access to OPC UA Server (see "Configuring
users" on page 373).
OPC UA Clients will be responsible for choosing, from available options, the most appropriate option to use
according to their capabilities.
Sign OPC UA Client must provide its own certificate: communication through signed
messages is allowed.
SignAndEncrypt OPC UA Client must provide its own certificate: communication through signed and
encrypted messages is allowed.
Basic128Rsa15 Accepted encryption level (used only when Security Mode is active).
Basic256 Accepted encryption level (used only when Security Mode is active).
Basic256Sha256 Accepted encryption level (used only when Security Mode is active).
Parameter Description
Automatically trust any new All certificates provided from any OPC UA Clients are accepted.
clients
Trusted Certificates Only OPC UA Clients that provide one of the listed certificates are accepted.
To add a new certificate to the list of trusted certificates, you must have the
certificate file supplied by the owner of the OPC UA Client device. Both
binary and ASCII certificate file formats are accepted.
422 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
37 OPC UA Server
To be able to successfully connect to OPC UA Server, you must retrieve the certificate of the GDS tool
and add it to the trusted certificate list of OPC UA Server.
Example
When an OPC UA Client attempts a connection with the OPC UA Server, the server checks if the client certificate is
available inside its own trusted certificate list. If it is not found, the communication will be rejected and the certificate will be
stored in a list of unreliable certificates.
Using a GDS tool, you can connect to the OPC UA Server, inspect available certificates and define trust or not trust state
of each certificate.
Certificate Files
HMI device will store certificates inside the subfolders of folder "/workspace/<ApplicationName>/config/pkiserver"
l own
Own certificate and private key
l trusted
Trusted self signed certificates and CA certificates
l rejected
Rejected certificates
l issuers
Trusted intermediate (not directly trusted) CA required to validate the trust chain
Server Identity
Parameter Description
Product name A human readable name for the product running in the server.
Certificate Parameters
Server certificate can be either generated automatically or by adding an existing certificate file.
If auto generated certificate is enabled the certificate is regenerated after every change made by user to certificate
parameters. The certificate is also replaced by any explicitly set certificate.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 423
Using x.509 Certificates
Certificate parameters
Each certificate must contain information that should identify the certificate and its restrictions. If you have chosen to use a
self-generated certificate, enter the information you want to be inside the self-generated certificate. Otherwise parameters
are read from the certificate you have supplied.
Parameter Description
State State or Province field specifies where the organization is physically located.
Country The X.509 naming scheme standard requires a 2-character country code.
Country code for the United States is US; country code for Italy is IT.
Parameter Description
Example: "urn:NodeName:CompanyName:ServerName"
DNS Names DNS name or IP Address of the device where this OPC UA Server is installed.
The certificate will be valid only if the IP address where the OPC UA
Server is running is included in this list.
If you want provide your own certificate, note that the certificate must include the “Subject Alternative Name (SAN)”
parameters as required by the OPC UA standard.
Here is an example of how to generate a certificate using a public OpenSSL-Win32 library (Reference:
https://www.openssl.org/)
424 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
37 OPC UA Server
@echo off
set OpenSSL="C:\Program Files (x86)\OpenSSL-Win32\bin\openssl.exe"
set NodeName=HMI-Server
set IPAddress=192.168.44.165
pause
OPC UA Server
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 425
Using self-signed certificates
OPC UA Client
426 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
37 OPC UA Server
9. Repeat step 7, accept the Server OPC UA certificate and import some tags. Note that you can accept the certificate
permanently or temporarily. If you accept the certificate permanently, a copy of the certificate will be saved inside
your computer for later use without popup again the dialog to asking for confirmation.
10. Open again the protocol dialog box. Select the Security Policy = Basic256 and Security Mode = SignAndEncrypt
11. Download the project to the HMI device
Since in the OPC UA Client protocol parameters we left empty the “Client certificate” field, the OPC UA Client protocol has
generated its own certificate and sent it to the OPC UA Server but since the server does not know this certificate it rejects
the connection request. Now we have to tell the server to trust these certificates. There are different ways to do it.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 427
Using self-signed certificates
/workspace/<YourProjectName>/config/pkiserver/rejected
/workspace/<YourProjectName>/config/pkiserver/trusted/certs
You can double click the certificate file to open it and look to certificate parameters to be sure about the certificate
you are validating
Now you can manage certificates using the tools in the HMI device.
428 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
37 OPC UA Server
Generate certificates
You can use the script given in this manual to generate a copy of your own certificates, one for OPC UA Server and another
one for OPC UA Client.
OPC UA Server
7. Remove the check on “Automatically generate self-signed certificate” and add the server certificate (server.der) and
the server private key (server-key.pem)
OPC UA Client
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 429
Alarm map
You will note that OPC UA Client is retrieving data from OPC UA Server using the given certificates.
Alarm map
The alarm states are mapped to OPC UA states according to the following rules:
l TRIGGERED
l TRIGGERED_NOT_ACKED
l TRIGGERED_ACKED
l TRIGGERED_ACKED
l NOT_TRIGGERED_ACKED
l NOT_TRIGGERED
l TRIGGERED |
l TRIGGERED_NOT_ACKED |
l TRIGGERED_ACKED |
l NOT_TRIGGERED_ACKED but a RESET is required
Opcua.Alarm.Confirmed True when alarm is returned (Not triggered, acknowledged and reset)
l NOT_TRIGGERED
430 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
38 MQTT Interface
Path: ProjectView> Config > Interfaces > double-click MQTT
Note that a tag or an alarm, to be transferred through the MQTT protocol, must be defined within a group.
Parameter Description
Enable Alarms The selected groups of alarms will be published to the MQTT broker.
Alarms are published whenever there is a change in the alarm status.
Tags configuration
Parameter Description
Enable Enable the transferring of the tags listed inside the group
Tag Group List of tags that will be transferred when the assigned police condition will be satisfied.
Retain This flag defines whether the message is saved by the broker as the last known good
value for a specified topic. When a new client subscribes to a topic, they receive the
last message that is retained on that topic.
Persistence When true, the messages with QoS greater than 0 are queued into the file system file to
be available even after a panel reset or when a broken communication with the MQTT
server is reestablished.
Policy Defines the criteria for deciding when to publish the value of a tag. When it is empty, the
"Default push policy", defined on top of the table, is used.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 431
Tags configuration
Trigger
Parameter Description
l Interval (ms)
Cyclical publication time
Conditions
All folders must be validated to have the transmission requested by the trigger. A folder of type "All the following condition
are met" is validated when all the contained conditions are true while a folder of type "Any of the following conditions are
met" is validated when at least one contained condition is true.
432 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
38 MQTT Interface
Settings
Topic Description
Max pending messages The number of messages that can be queued in RAM when there are communication
errors. Queue messages will be released as soon as the MQTT Server returns
reachable.
Defaults Values of "QoS", "Retain" and "Persistence" parameter to use for the topics that are not
defined inside the "Tags configuration" table.
Topic Description
Birth This is a special topic that is publish only one time when HMI device start.
Will This is a special topic that is publish when HMI device start but it is keep hidden and
stored from the MQTT Broker. It will be published from the MQTT Broker if it detects
that the client has disconnected ungracefully.
Data (Pub) Topic is used to publish the tags' values following the transmission policies associated
with tag groups.
Data (Sub) Topic is used to subscribe to tags. The payload is the template used to recognize the
values of the received tags.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 433
Topic and Payload
For each topic, the payload defines the structure of the associated value. Note that in topic and payload definitions can be
used placeholders.
Placeholder Description
${inactiveTimestamp} Timestamp of the last event that ceased the alarm condition
${[0]} If available in the alarm description, the value of the first live tag, [1] the second, etc.
${[Tag1]} If available in the alarm description, the value of "Tag1" live tag
JSON Payload
434 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
38 MQTT Interface
When the JSON format is selected, the quotation marks are added around string values to conform to the JSON syntax.
With the use of the JSON format is possible to optimize the communication to include multiple messages inside a single
message. When the "Message aggregation" is selected, the messages are sent to MQTT Server after the selected
timeout expired or when the message to send reaches the select size.
Port MQTT server port. Generally, the default TCP/IP port is 1883, or the port 8883 when
MQTT over SSL is used.
Client ID The client identifier is an identifier of each MQTT client connecting to an MQTT broker.
You can write what you prefer, but it has to be unique per broker. The broker uses it for
identifying the client and the current state of the client. If you don’t need a state to be
hold by the broker, in MQTT 3.1.1 (current standard) it is also possible to send an empty
Client ID, which results in a connection without any state. In this case, the "Use clean
session" checkbox has to be checked, otherwise, the connection will be rejected.
Username If the MQTT broker is configured to require client authentication using a valid user name
Password and password
Keep-alive time (s) Time interval before sending a PING request to the server when there are no data flows
(useful to know if both client and server are still alive and reachable).
Use clean session When the clean session flag is set to false, the broker creates a persistent session for
the client. All information and messages are preserved until the next time that the client
requests a clean session. If the clean session flag is set to false and the broker already
has a session available for the client, it uses the existing session and delivers
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 435
MQTT Broker Settings
Parameter Description
Use legacy The “Use legacy” flag makes client comply with MQTT spec 3.1
Enable TLS
If the MQTT server is configured to works over TLS connection, the HMI device must provide its own certificate to the
server. Even it's not mandatory, each client should have its own certificate (however it is possible you can deploy the same
certificate to all clients).
It is required that both server and client certificates are signed by the same authority.
Parameter Description
CA Certificate Public certificate of the CA that has signed the server certificate on the Mosquitto
Broker
Client Certificate Public certificate of the HMI Device. Must be signed from the CA Certificate
TLS Version TLS Version to use (must be aligned with the encryption level used from the MQTT
Broker)
l tlsv 1
l tlsv 1.1
l tlsv 1.2
Insecure This option disables verification of the server host name in the server certificate. This
can be useful when testing initial server configurations but makes it possible for a
malicious third party to impersonate your server through DNS spoofing, for example.
Use this option in testing only.
Note that you can use the "attach to tag" to entered the MQTT parameters at runtime using, e.g., macros, JavaScript or a
configuration page. This could be useful to have different values (e.g. for the ClientID) even downloading the same project
to different HMI devices.
If you use tags to define MQTT settings (e.g. Client ID), be sure to not include these tags into the tags
list exchanged with the MQTT server to avoid to receive back wrong settings.
The string Tags used for the certificate must be great enough (e.g. 2.048 bytes) to contain the entire certificate. The format
of the certificates must be ASCII with the first and the last text line included as for the below example.
436 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
38 MQTT Interface
The following script file will create a couple of server and client certificates and a public Certificate Authority that will be
used to sign server and client certificates and to verify the authenticity of these certificates.
l ca.crt
l server.crt, server.key
l client.crt, client.ket
File: CreateCertificates.cmd
@echo off
set OpenSSL="C:\Program Files (x86)\OpenSSL-Win32\bin\openssl.exe"
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 437
MQTT Broker Settings
pause
Note the server hostname is localhost (/CN=localhost), this means that you cannot use the secure connection if in the
Broker address parameter you cannot write the "localhost" domain. You can use the "localhost" domain only if both the
MQTT Server and the HMI device are running on the same device otherwise, to be able to reach the MQTT server, you
must use the IP Address and the "Insecure" flag.
The server certificate (server.crt, server.key) and the authority certificate (ca.crt) must be place inside a subfolder of the
MQTT folder, e.g. inside the "certs" subfolder.
# =================================================================
# Default listener
# =================================================================
... (omiss) ...
# Port to use for the default listener.
#port 1883
port 8883
# -----------------------------------------------------------------
# Certificate based SSL/TLS support
# -----------------------------------------------------------------
438 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
38 MQTT Interface
MQTT Broker can be started using the below command from a dos command window:
mosquitto -v -c mosquitto.conf
MQTT Client
For testing purposes, it could be useful to start an MQTT client with the subscription of all the topics so that you can see the
messages that will be exchanged with HMI Device. Since we are using TLS communication, we must provide the client
certificate. We can copy client.crt, client.key and the authority certificate ca.crt inside the certs-client subfolder.
HMI Device
l set the broker address parameter with the IP address where the MQTT server is running
l set the port address to 8883
l load the authority certificates, the client certificate and the client key files
l set the TLS Version to version 1.2 to be aligned with the MQTT server settings
l since it is probably that you are referencing the MQTT server using the IP address, which is different from the
domain declared by the server certificate you must set the "Insecure" flag
To perform the first tests, you can leave the default values on topics and payloads and configure the alarms groups and
tags groups that you want to transfer to the MQTT broker.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 439
MQTT Broker Settings
440 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
Widgets designed for special purposes are called special widgets and include control lists, date and time widgets, variable
widgets and so on.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 441
BACnet widget
BACnet widget
Path: Widget Gallery> BACnet
BACnet widgets are special widgets that let you interact with native BACnet objects.
l BACnet Calendar
l BACnet Scheduler
l BACnet Effective Period
These widgets are using special keypads that are added into the keypads folder when widgets are used. Generally, you do
not need to take care of these keypads unless you want customized them.
Refer to the BACnet manual inside the “Communication Drivers” folder for a detailed description of BACnet special
widgets.
Browser widget
Path: Widget Gallery> Media> Web Controls
Use this widget to embed web pages into your HMI device pages. This is an HTML5 compatible browser widget based on
the WebKit engine.
Note: The WebKit library is available as a plugin (see "Plug-in" on page 89 for details) to download to the JMobile
HMI Runtime only when required.
442 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
Parameter Description
Home Page Default URL to open when widget is shown on the page.
This allows you to save around 3 MB of space if the widget is not required in your project.
An Hyper Link widget is available to create pages hyperlinks. Once clicked these links notify to the browser widget that a
particular web page is to be loaded.
Canvas Widget
Path: Widget Gallery> Basic> Generic Canvas
Note: the JavaScript methods are the same that are available for the HTML5 <canvas> tag
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 443
Canvas Widget
Parameter Description
Draw Hint Define how fit the canvas inside the widget size
l Clip
No Transformation is applied, coordinate system is not scaled and
drawing is clipped inside the widget bounding rectangle.
l Fit to size
Fit to the widget size preserving the canvas model aspect ratio.
l Stretch
Fit to the widget size ignoring the canvas model aspect ratio.
Note the JavaScript code could use data not available inside
JMobile Studio but only inside the HMI device
Auto Clear Background Automatic clear the background before draw canvas. When disabled, the
painted items are persisted and is not necessary redraw everything from
scratch.
OnDraw Action The OnDraw event is executed when the page is painted. This event has to
be linked with the JavaScript code that draws the canvas graphic.
444 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
// Scale/Transform
// Gradient
// Rectangle Functions
// Path
l void beginPath();
l void closePath();
l void moveTo(qreal x, qreal y);
l void lineTo(qreal x, qreal y);
l void quadraticCurveTo(qreal cpx, qreal cpy, qreal x, qreal y);
l void bezierCurveTo(qreal cp1x, qreal cp1y, qreal cp2x, qreal cp2y, qreal x, qreal y);
// Drawing Text
// Arc
l void arcTo(qreal x1, qreal y1, qreal x2, qreal y2, qreal radius);
l void arc(qreal x, qreal y, qreal radius, qreal startAngle, qreal endAngle, bool anticlockwise);
// Fill/Stroke
l void fill();
l void stroke();
l void clip();
l bool isPointInPath(qreal x, qreal y) const;
l void drawImage(QObject *pObjImage, qreal sx, qreal sy,qreal sw, qreal sh, qreal dx, qreal dy,qreal dw, qreal dh);
l void drawImage(QObject *pObjImage, qreal dx, qreal dy);
l void drawImage(QObject *pObjImage, qreal dx, qreal dy, qreal dw, qreal dh);
l void drawImage(const QVariant& image, int width, int height, const QString& format, qreal sx, qreal sy,qreal sw,
qreal sh, qreal dx, qreal dy,qreal dw, qreal dh);
// Pixel manipulation
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 445
Combo Box widget
then you can use the canvas methods, as in the below example
Use this widget as a selector widget or to filter rows in a table to display only the values selected in the combo box.
446 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
Parameter Description
Data / Data List Returns the value in the Data List column (as string) in the Data field of the widget.
Tip: Use this parameter to return a custom value based on an item selected in
the combo box.
Data List
The Data List is associated with the "listData" property and can be modified dynamically using the JavaScript code.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 447
Combo Box widget
In many projects you may need to attach fields such as Index or Data to tags to know the values of the selected item in the
combo box. Use:
Path: ProjectView> double-click Project properties> Properties pane> Project> ComboBox View Mode
Parameter Description
ComboBox Select the visualization mode of all the Combo Box widgets of the project
View Mode
Context
Classic view with drop-down menus
Full screen
Enhanced view with configurable texts and images that will pop up in the middle of the
screen for easy scroll and selection.
448 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
Parameter Description
Image Return, inside the attached tag, the file name of the selected image
ListViewItems Define the items type that will be inside the Combo Box
Image Mode:
l Only Text
l Only Images
l Text and Images
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 449
Consumption Meter widget
Use this widget to monitor a resource which is continuously increasing. The system reads the value of the resource and
calculates the increment in a set range of time, the increment is then displayed in a bar-graph in a trend-like window.
Different colors can be used to used in the graph based on the time frame.
Parameter Description
Time Periods Assigns a specific color to highlight the increment of the monitored resource in a specified
time period (minimum resolution = 1 hour).
450 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
1. Attach a tag to the physical variable to monitor. In this example, to the total energy consumed (Tag KWh). This tag
contains an incremental number that indicates how many KW/h have been consumed from when energy
consumption started.
2. Add a Trend and link it to the tag to be monitored, Tag KWh.
3. Add a Consumption Meter widget to a page.
4. Attach the Value property of the Consumption Meter to the Trend you created in step 2.
5. Set Graph Duration/Units to 1 week: this will give you a weekly graph of consumed energy.
6. Set Bar Duration/Units to 1 day, this is the time range when energy consumption is calculated.
7. In Consumption Meter set the number of labels to show in the bar graph, in this case 7 to display a weekly graph.
8. From the Time Periods property open the Configure Time Periods dialog: set the different colors for different
values of Tag KWh in each bar.
Tip: To assign the color to the cells of the table, select the cells and click on the desired color, or enter the
index value of the band (1, 2, 3) into the cell.
9. Add as many color bands as you need, in this example 3 color bands.
10. Assign a band to each hour in the weekly table, in this example a red band (E1) is used to indicate the range of time
in the day/week where the cost of energy is the highest.
Note: You can apply a scale factor to each color band, if needed.
The result is a bar graph consumption meter showing daily consumption of energy in KW/h, with colors indicating the
different energy costs. The height of each bar represents the amount of energy in the time range considered, 1 day in this
example.
Use the action ConsumptionMeterPageScroll to scroll the bar graph back and forth and the action RefreshTrend to refresh
the bar graph since data is not refreshed automatically.
Important: No other Trend action is currently supported by the Consumption Meter widget.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 451
Control list widgets
Use these widgets to represent the status associated with a particular process and to control that process from the same
widget.
l a group control list, with a limited set of navigation button already included, and
l a basic control list with no pre-configured button to be navigated using the touch screen feature.
Parameter Description
Value The value corresponding to the status of the widget. If there is a tag attached to the value property, when
loading the widget, the State will be aligned with the tag value.
State State of widget. The widget highlights the item related to its State with a different background color (see
"state color" in the properties of the widget).
Selection State selection. The selected item will be displayed with a small triangle on the left side of the list.
452 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
Parameter Description
List Data List of status items. Each item has a status name, a corresponding value and a flag that enables to display
the item inside the widget.
Defining states
Add/remove states, that is items in the list, from the List Data property.
Any value can be assigned to a state. When you activate the state, by selecting the related item if in WriteOnSelect mode
or selecting it and confirming with enter if Write On Enter, this will write the value assigned to state to the tag linked to the
Control List widget Value .
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 453
Control list widgets
Where
The getProperty("listData"), instead, will just return a comma separated string of just the names.
454 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
State
The getProperty("state") can be used to retrieve the State value. Here is an example of the JavaScript code
DateTime widget
Path: Widget Gallery> Basic> Controls
Use this widget to display and edit current date and time .
In the Properties pane different formats are available for representing date and time.
Time options
For the Time Spec property select which time the widget will show at runtime.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 455
DateTime widget
Option Description
local shows local time, the time of the HMI device where the project is running
server shows time information as handled by the server side of the HMI device
Date Description
Time Description
ss the whole second with a leading zero where applicable (00 to 59)
Regional Settings
You can use even the SHORT-DATE or the LONG-DATE placeholders to use the format defined inside the Regional
Setting (see "Regional Settings" on page 95)
456 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
OnSwipeRight
OnPinchClose
RotateAntiClockwise
OnPinch Only JavaScript can be used to service these events, through the JavaScript code
the developer can manage the gestures events as he prefer.
OnRotate
WARNING: Only multi touch HMI devices can generate OnPinch and
OnRotate events
OnPan
boolean onGesturePan(me, eventInfo)
This event occurs when one point inside the area has pressed and a linear movement has been detected.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 457
Gesture area widget
Parameter Description
running = True except for last event delivered to notify gesture completion.
dx = Total X axis movement in screen pixel units from initial touch position .
dy = Total Y axis movement in screen pixel units from initial touch position.
OnPinch
boolean onGesturePinch(me, eventInfo)
This event occurs when two points inside the area have been pressed and a linear movement has been detected.
Parameter Description
running = True except for last event delivered to notify gesture completion.
dx = Total X axis movement in screen pixel units from initial touch position. It
represents the distance change between fingers. Positive value means that the
distance is increasing; negative value means that the distance is decreasing. This
amount may be used to control a zoom value.
OnRotate
boolean onGestureRotate(me, eventInfo)
This event occurs when two points inside the area have been pressed and a rotate movement has been detected.
Parameter Description
running = True except for last event delivered to notify gesture completion.
drot = How many degrees (0/360) have been added since the previous event.
458 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
can be modified from the “Gesture Passthru Delay” parameter that is available in the advanced properties view.
Parameter Description
Gesture Passthru Enabled Enable the possibility to pass gesture events to underlying widgets after a
configurable delay. User has to keep pressed the finger and then execute the gesture.
default = Use the value defined in the project properties. See "Project" on page 90
Gesture Passthru Delay (ms) The time that must be waited for to send the command to the underlying object
0/500 mSec
Swipe Gesture
How to recognize a "swipe" gesture to change page in the application.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 459
Gesture area widget
Pinch Gesture
How to recognize a "pinch" gesture to resize an image.
1. Put a Gesture area widget into the page over the image
2. Configure the OnPinch Action to trigger a JavaScript function
3. Write the JavaScript code that recognize and manage the pinch gesture
Pan Gesture
How to recognize a "pan" gesture to move an image.
460 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
1. Put a Gesture area widget into the page over the image
2. Configure the OnPan Action to trigger a JavaScript function
3. Write the JavaScript code that recognize and manage the pan gesture
IP Camera widgets
Path: Widget Gallery> Media> IP Camera
Use these these widgets to show images captured from an IP Camera or a video stream.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 461
IP Camera widgets
Parameter Description
Refresh Rate Number of JPEG images for second allowed. Max rate = 1 fps.
When this widget is used to stream HTTP MJPEG, Camera URL and Refresh Rate are ignored.
Performance of streaming is not fixed and depends on many factors such as: frame size, frame compression level, CPU of
HMI device, quality of IPCamera. Based on these factors the widget can reach up to 25 fps.
You can add multiple IP Camera widgets, but this will reduce the frame rate for each widget.
Supported IPCameras
The following IP Cameras have been tested so far:
HTTP http://{ip_address}/snapshot.cgi
HTTP http://{ip_address}/axis-cgi/jpg/image.cgi
462 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
HTTP http://{ip_address}/picture.jpg
HTTP http://{ip_address}/snapshot.cgi
NOTE:
HTTP http://{ip_address}/image.jpg
HTTP http://{ip_address}/jpg/image.jpg
NOTE:
NOTE:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 463
JavaScript function block widget
The PTZ Controls widget uses the MoveIPCamera action to send HTTP/cgi commands to the PTZ IP Camera.
Parameter Description
Authentication methods
The authentication method is automatically set by the camera web server to which the widget connects. Authentication
methods supported are:
l Basic
l NTLM version 1
l Digest-MD5
Web Browser
On the Web Browser, only the "Basic Authentication" mode is supported. When used, the IP Camera with authentication
shows a pop dialog to enter login and password.
Widget is supported by Chrome and Firefox, we found issues using the current version of the Edge browser.
JavaScript Function Block is a widget that contains JavaScript logic that is executed when tags values change.
464 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
Parameter Description
OnDataUpdate Action that will be executed when a change of an associated value is detected
Note: This widget is rendered only in JMobile Studio, and it is not rendered in the HMI device.
Example:
A JavaScript code that check the combination lock of three selectors
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 465
Media Player widgets
Use these widgets to play videos from a playlist. The video files can be stored on a USB drive, on the Flash card or an SD
Card.
Two widgets are available: one includes a multimedia frame with buttons to play and stop the video, the other is a plain
frame where the video is played without user control.
466 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
Parameter Description
Media Player Open Windows file browser for selecting video files to collect in the play list. Selected
List files will be downloaded to the HMI device together with the project.
When a USB device or an SD Card has been selected, files must be placed in a
subfolder “mediafiles” of the external memory media. Video files will be played according
to filename alphabetical order.
Note: The Media Player widget only works with some HMI devices (see "HMI devices capabilities" on
page 589). It doesn’t work the HMI Client.
Note: You can have only one Media Player widget in a page.
List of HMI devices that support the DSP (video hardware acceleration) is available on "HMI devices
capabilities" on page 589.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 467
Media Player widgets
Be aware that video performance are depending from the chosen resolution, bit rate and device capabilities. If
video rendering is not smooth, try to reduce the resolution or the bit rate of your video.
The videos encoded with Microsoft MPEG4 v3 are not using the hardware acceleration and have more
limitations. To prevent the videos from running jerky, a maximum resolution of 640x512 pixels and a bit rate of
1300 kb/s are suggested. In addition, the size of the Media Player widget used on the page should have the
same size as the videos in the play list, in order to avoid up scaling and down scaling. Audio is not supported.
Converting a video
The FFMPEG (www.ffmpeg.org) can be used to convert a video into the correct codec supported from the HMI device.
Using the folder structure of the below picture, the following batch file could be used to convert any video file.
468 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
Now you can open the converted video with a standard video player, such as Windows Media Player and check the quality.
You can add the resulting video to the play list of the Media Player widget.
Note : The FFMPEG tool is not distributed with the JMobile Suite.
See "JavaScript " on page 511 for details on how to work with JavaScript.
Use this widget to display an image from a collection based on the value of a tag used as Index. You can use this widget
also for simple animations.
Parameter Description
For example, set Value=0, to display the image with index 0 in the image collection.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 469
Multistate Image Multilayer widget
Use this widget to create different animations and select the most suitable at runtime.
3. Double click on each layer to add as many images as you want to include in the layer.
470 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
Parameter Description
Animate Enables slide show for active layer. Animations can be started/stopped at runtime attaching
it to a tag.
Note: Default Layer, Default Frame, Color and Fill can be changed at runtime, attaching the to a tag.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 471
RSS Feed widget
The system variable Network->Status contains the result of the last operation performed by the IP Widget (see "Network
variables" on page 142for details)
Use this widget to display on the HMI device your favorite RSS feeds directly from the Internet.
Parameter Description
472 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
The RSS Feed widget has been specifically designed to work with Pocket Internet Explorer.
Use this version of the main RSS Feed widget to display highlights inside a text line using a smoothing scrolling text.
Parameter Description
Table widget
Path: Widget Gallery> Basic> Table
Use this widget to create a table with data provided from a data source.
To configure a table:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 473
Table widget
1. Put a table widget on the screen and configure the template of the table.
2. Add widgets into cells to configure one or more rows that will be used as row templates when the table will be filled
with data provided from the data source.
3. Select a data source that will be used to fill the rows of the table
4. Define the links from widgets and data source.
l View mode
l Edit mode.
Click on the table to manage the widget in view mode, double click to enter in the edit mode. To exit and return to view
mode click outside the table.
View Mode
In view mode, you can configure the table layout. Drag and drop the table onto the page, resize the table, define number of
template rows, number of columns and the main table properties.
474 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
Edit Mode
In edit mode, it is possible configure the format and the content of each cell of the table. Each row of the table will act as a
row template.
To configure the look of the table, click on table's selectors to select the item to configure.
To add or remove rows or columns, double click over the grid to enter in edit mode and right click over column or row
selector to open the context menu.
To merge or split rows or columns, double click over the grid to enter in edit mode and move the cursor over the ribbons:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 475
Table widget
l Double click the black triangle to merge the two adjacent rows or columns (1)
To configure the contents of cells, drag and drop the widgets inside the cells.
If you need more widgets inside a single cell, create a group of widgets and copy the group from the page to the
cell.
1. Drag and drop a Table Data Source Widget onto the page
2. Set the Table Model parameter to link at the data source.
476 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
Select the Data Source and inside the TableDataSrcWgt Editor add the rows and columns that are needed. In the following
example, we have defined two row templates:
l Row 0
Header of the table. Contains only static text.
l Row 1
Template of rows with data. On the first column we added a label that will contain the description and on the second
column a field that will contain the value.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 477
Table widget
Each row must be assigned a row type. The row will take on the format of the corresponding row template. Widgets that
were placed in each cell of the row template will appear in rows of that type.
1. Double click over the Table widget to enter in edit mode and select a widget
2. Select the property that is to be read from the data source
3. Select the column of the data source that will provide the data
The below picture is showing how our example will be rendered at runtime
Fixed Header
If you want the first row will be not scrollable, check the "Fix Header" check box on Data Source toolbox or set true the
"Show Header" propert inside the Data Source properties panel (note the parameter is available only in advanced view).
Column override
You can use an array of integers to define or modify the columns order at runtime. When you use this property, be sure to
attach an array of integer and set the index to -1 (to select the entire array).
478 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
Multilanguage
To enable the Multilanguage support right click on the Multilanguage icon of the column. The icon will change color to
indicate that the support is enabled.
Avoid enabling the Multilanguage support when not necessary to better performance.
The configuration of the Data Source can be imported/exported using xml files
JavaScript Object
In alternative to the Data Source Widget, for data to fill the table could be provided from a JavaScript Object. In this case,
we have to fill an array of elements with the data to use and assign the array to the table widget.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 479
Table widget
myTable.model = model;
model is an array of elements with the table definition and data. The first element of the array will contain the template of
the rows while the other elements will contain the data to fill in the rows of the table
The row templates is a multi dimensional array where each array defines the datalink of one template row.
var row_templates = {
_h : [
[ [] , [] ], //rowType = 0
[ ["text"] , ["value"] ] //rowType = 1
]
}
The first row has two columns that do not contain data links. We use this template for the header on the first row of our
table.
The second row defines the template of one row with the “text” property of the widget into the first column and the “value”
property of the widget into the second column. They will be dynamically filled using the data provided inside the model
variable.
var row_data = {
_t : 1,
_v : ["Temperature:", { _c : "dl" , s : "_TagMgr", a : "Tag1", i: 0, m : 2 }]
}
The first element is the row template to use while the second element is the array with the data to use. In our example
“Temperature:” is the text to use inside the widget on the first column, while the other element is a datalink that will provide
the value to fill the value property of the widget into the second column.
Parameter Description
a : "Tag1", i: 0, m:2 Specify tag name and index (necessary when the tag is an array) and the
read/write mode
480 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
Parameter Description
The below JavaScript code will generate the same table of the previous example using the Table Data Source Widget
var row_templates = {
_h : [
[ [] , [] ], //rowType = 0
[ ["text"] , ["value"] ] //rowType = 1
]
}
var row_data1 = {
_t : 0,
_v : [],
_h : true
}
var row_data2 = {
_t : 1,
_v : ["Temperature:", { _c : "dl" , s : "_TagMgr", a : "Tag1", i: 0, m : 2 }]
}
var row_data3 = {
_t : 1,
_v : ["Humidity:", { _c : "dl" , s : "_TagMgr", a : "Tag2", i: 0, m : 2 }]
}
var row_data4 = {
_t : 1,
_v : ["Noise:", { _c : "dl" , s : "_TagMgr", a : "Tag3", i: 0, m : 2 }]
}
var row_data5 = {
_t : 1,
_v : ["Brightness:", { _c : "dl" , s : "_TagMgr", a : "Tag4", i: 0, m : 2 }]
}
model[0] = row_templates;
model[1] = row_data1;
model[2] = row_data2;
model[3] = row_data3;
model[4] = row_data4;
model[5] = row_data5;
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 481
Table widget
Note the first row (row_data1) contains the directive _h: true to avoid the first line will be scrollable.
var row_data1 = {
_t : 0,
_v : [],
_h : true
}
Multilanguage
Parameter Description
Example:
l "en-US" : "Temperature:"
l "it-IT" : "Temperatura:"
Example:
var row_data2 = {
_t : 1,
_v : [ { _c : "ml" , mltext : { "en-US" : "Temperature:",
"it-IT" : "Temperatura:"} },
{ _c : "dl" , s : "_TagMgr", a : "Tag1", i: 0, m : 2 }
]
}
1. Add a new column inside the Data Source Widget to contain the background color of each row
2. Configure the “Row background” color parameter of the Table to point to the color column of the Data Source Widget
482 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 483
Table widget
Table Filter
Content visible inside the table can be filtered using the “Table Filter” property. On datalink you can use a formula (see
"Formula" on page 54 chapter for additional details) to define the criteria to use to filter the data.
Each row of the table will be visible only when the Datalink of the Table Filter return true value.
Example 1
If you want choice to see only the rows that contain “something” inside the Description column, you can use the below
formula:
=$Contains($('Description:TableDataSrcWgt'),$('value:SearchOnTable'))
Where
l 'Description:TableDataSrcWgt' is a Dynamic Field of the Data Source Widget used from the table to identify the
column to check
l 'value:SearchOnTable' is the value of a text field that will contains the string to search
484 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
Example 2
First, add a new column inside the Data Source that will contains the flags that will enable the associate row. Then, link the
datalink of the table filter to the new column that contains the flags
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 485
Table widget
Table Sorting
To sort the rows of the table, select the column of the Data Source that you want to use to sort the table
Multiple sorting (STABLE sorting) is useful when a column has repetitions. You can use up to three sort columns.
486 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
The table can be ordered even using the SetTableSortingColumn macro (see "SetTableSortingColumn" on
page 250 for details).
Horizontal scroll position parameter is available only in Advanced Proprieties View mode
Precached Pages
Normally the JMobile HMI Runtime retrieve only the data that will be visible into the display. To make table scrolling more
pleasant, it may be useful to preload the data of the next and previous rows of the displayed ones. Using the Precached
Pages parameter is possible define how many pages will be preloaded
l 0 = no pages preloaded
l N = number of pages to preoload
Example:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 487
Table widget
488 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
Printing table
A table widget can be found and used from the print report gallery.
TextEditor widget
Path: Widget Gallery> Advanced> Editor
Use this widget to edit text files. Widget can load the text file from the local HMI device or download the file from a remote
device using an ftp connection.
Note: TextEditor widget is available as a plugin (see "Plug-in" on page 89 for details) to download to the JMobile
HMI Runtime only when required.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 489
TextEditor widget
Widget Buttons
Button Description
Widget Properties
Option Description
Keyboard TextEditor widget has an embedded keyboard. When widget is used without the embedded
keyboard, the alphabetic keyboard will be displayed when enter edit mode.
l Hidden
l Visible
FTP Config FTP parameters to download the text file from a remote FTP server. Leave this filed empty
to load the text file from the local HMI device.
Parameter Description
File Name File name to edit. When empty a file browser to load a local file will be opened
Syntax Highlight Type Displays text in different colors according to the selected language
l None
l GCode
490 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
39 Special widgets
Variables widget
Path: Widget Gallery> Advanced> Data Sources
Use this widget to add internal variables for operations such as data transfer or to be used in JavaScript programs.
Note: The variables are local to the page where the widget has been inserted.
When you drag and drop this widget into you page, a place holder will be displayed to indicate the widget location, but it will
not be visible at runtime.
These variables can then be referenced from the Attach tag dialog, from the Page Editor.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 491
Variables widget
If you need global variables, configure them at project level, adding the desired variables to the global variable widget.
492 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
40 Custom widgets
JMobile Studio has a large widget library which includes predefined dynamic widgets (buttons, lights, gauges, switches,
trends, recipes, and dialog items), as well as static images (shapes, pipes, tanks, motors).
You can drag and drop an object from the gallery to the page, and then size, move, rotate or transform it. All widgets in the
gallery are vector based, so they do not loose definition when resized.
You can, however, modify any of the pre-defined widgets to create your own custom widget. Custom widgets can be made
up of several elements only including the properties needed to their purpose.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 493
Creating a custom widget
Parameter Description
Include used custom When checked, list all the widgets used inside the project. Even system
widgets widgets.
Name You can define everything you prefer, but is common keep a name structure.
The folder com.hmi is reserved for the system widgets
All widgets that share the same version share the properties defined from the
Inheritance parameter.
494 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
40 Custom widgets
If the Inheritance flag is enabled, a lock icon will appear to warn you that you are add changes that will be propagated to all
the other custom widgets that share the same version. Click the padlock icon to confirm to enter in edit mode, padlock will
be open. Click again when modifies are done.
Share properties
When a custom widget is modified, all the modifies will be propagated to all the other custom widgets that share the same
version and that are configured to inherit the widget properties.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 495
Adding properties to a custom widget
To display a list of all the elements that are part of a widget, select the widget, open the padlock and open the ObjectView
pane: all the element making up a complex widget are listed in hierarchical order.
496 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
40 Custom widgets
1. Right-click on the grouped object and select Widget catalog: the properties dialog is displayed.
2. Click + to open the Property Select dialog: this lists all the properties of all the grouped widgets.
3. Select the properties you want to define for your custom widget.
4. Define each property's details.
Note that you can create folders and use drag & drop to move or reorganize the Properties list
Parameter Description
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 497
Adding properties to a custom widget
Parameter Description
Id The name exposed by JMobile Studio, to JavaScript functions and Attach Tag dialog.
Support Tags Specifies if the property supports the “Attach to" attribute.
Advanced Specifies whether each property should appear in the advanced, or in the simple view mode of the
Properties pane.
Combining properties
To combine two or more properties:
Example
If you insert into a “Color” property the fill color of all widgets (e.g. filed1.fill and BtnStd4.btn.fill) when you set the exposed
Color property of the custom widget all colors of the included widgets will changes.
498 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
40 Custom widgets
For example, think about the below widget. It use four tags, the room name, temperature, humidity and pressure. If we want
use two instances of this widget for two different rooms we have to configure eight tags, four tags for each room.
By using a Parameter property, is possible to set all the data links of the widget by giving only the name of the structure.
A “Parameter” field can be added inside the custom widget using the "Add Parameter" icon:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 499
Using structured tags
To configure the data links of the custom widget the keyword ${RoomID} can be used to reference at the structure instance
Type filter
Typically, value of the parameter will be an element of a structured tag. Using the “Type filter” parameter, the “Select
datatype text” will list filtered tags.
500 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
40 Custom widgets
The “Select datatype text” will return a string while the “Attach to” will return a datalink to a tag that will contains
the string to use.
getParameter
From JavaScript you can read the parameters' value using the getParameter()
object getParameter(paramID)
Example:
You can also use getProperty(), but getParameter() is more efficient to read custom widget parameters
After doing a double click on the custom widget and clicked on the padlock, the edit mode is active and it is possible to
associate the JavaScript code to the available events.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 501
JavaScript in custom widgets
Note the usage of the operator this. that is necessary to allow the multiple instance of the custom widget.
If you need to reference to an element of the widget, you can use the keyword wgt.. For example, use wgt.id to reference at
the id of the active widget instance.
502 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
40 Custom widgets
If you cut and paste some instances of the custom widget of the above example and execute it, e.g. inside the simulator,
you will obtain the below result.
onActivate property
To initialize the custom widget is possible to define the onActive property with an initializing function as for the below
example.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 503
User's Gallery
Note that the custom widget can also past inside the User’s Gallery for later reuse.
/*!
javascript module: widget-1.0.js
javascript source file path: lib\com\example\widget-1.0\widget-1.0.js
*/
this.wMSG = wgt.getWidget(wgt.id+".field1")
this.onActivate = function()
{
this.wMSG.setProperty("value", "Button never pressed");
};
this.onActivate();
User's Gallery
Widgets created from the developers can be saved inside the Widgets Gallery to be available during development of new
projects.
504 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
40 Custom widgets
Command Description
Open the selected widgets folder into the JMobile Studio editor
To add a new widget into the user gallery, open the widget folder and then edit the gallery page creating or adding the new
widget.
Tip: To import a user gallery sub folder, simply copy the folder to import inside the main user gallery folder.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 505
User's Gallery
506 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
41 Sending an email message
Send emails using the SendMail action, including tags in the email body and attachments.
The SendMail action has been created for working with alarms and schedulers but can be triggered and executed by many
other events.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 507
Configuring the email server
Parameter Description
Tip: Use tags if you want change the server parameters dynamically from the JMobile HMI Runtime.
Configure emails
Enter the following information for the EmailInfo setting:
Parameter Description
To Recipient e-mail addresses. To enter multiple addresses, separate them with a semi-colon.
Attachment Path of the file to be sent as attachment. Only one attachment at a time can be sent.
Note: The maximum size of the attachments is usually set by the SMTP server.
Body Main content of the email. Here you can insert live tags if you include them in square
brackets.
For example, a message body as “Tag1 value is [Tag1]”, will be sent as “Tag1 value is 45”, if
the current value of Tag1 is 45.
Tip: Attach a string tag to the From, To and Subject fields so that their value can be changed in the JMobile HMI
Runtime.
508 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
41 Sending an email message
WARNING: The maximum size for the message body is 4096 bytes, the exceeding text will be
truncated.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 509
Configure emails
510 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
The purpose of this section is to describe how JavaScript is used in the JMobile Studio applications, not to explain the
JavaScript language.
JMobile Studio JavaScript is based on the ECMAScript programming language http://www.ecmascript.org , as defined in
standard ECMA-262.
If you are familiar with JavaScript, you can use the same type of commands in JMobile Studio as you do in a web browser.
If you are not familiar with the ECMAScript language, refer to:
https://developer.mozilla.org/en/JavaScript
Events 515
Objects 521
Keywords 545
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 511
Global functions 546
512 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
JavaScript editor
JMobile Studio includes a powerful JavaScript editor.
JavaScript functions are executed only when the programmed event occurs and not cyclically. This approach minimizes
the overhead required to execute logic in the HMI device.
JMobile Studio provides a JavaScript engine running on the client side. Each project page can contain scripts having a
scope local to the page where they are added; global scripts can be created to be executed by scheduler events or alarm
events.
In both cases scripts are executed on the client. This means that if more than one client is connected to the HMI device (for
external computer running the HMI Client), each client will run the same script, providing different output results depending
on the input, since inputs provided to different clients may be different.
For example, if a script acts according to the position of a slider and this position is different on the different clients, the
result of the script will be different on each client.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 513
Execution of JavaScript functions
You can also open the JavaScript editor from the Script tab at the bottom of the workspace.
514 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
Note: JavaScript actions are client actions so they are executed only when a client is logged in.
Events
You can add JavaScript to the following categories of events:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 515
Widget events
l Widget events
l Page events
l System events
l OnMousePress
l OnMouseRelease
l OnMouseClick
l OnWheel
Parameter Description
eventInfo.wheelDelta Mouse wheel delta. Integer value with sign representing the rotation direction.
The actual value is the rotation amount in eighths of a degree. The smallest value
depends on the mouse resolution. Typically this is 120, corresponding to 15
degrees.
Widget events
onMouseClick
void onMouseClick (me, eventInfo)
This event is available only for buttons and it occurs when the button is pressed and released quickly.
Parameter Description
onMouseHold
void onMouseHold (me, eventInfo)
516 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
This event is available only for buttons and it occurs when the button is pressed and released after the number of seconds
set as Hold Time in the widget properties.
Parameter Description
onMousePress
void onMousePress(me, eventInfo)
This event is available only for buttons and it occurs when the button is pressed.
Parameter Description
onMouseRelease
void onMouseRelease (me, eventInfo)
This event is available only for buttons and it occurs when the button is released.
Parameter Description
onDataUpdate
boolean onDataUpdate (me, eventInfo)
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 517
Page events
Parameter Description
eventInfo An object with the fields listed below (you can refer fields using “.” - dot notation)
mode = W when the user is writing to the widget. R in all others status.
The event is triggered before the value is passed to the widget. A JavaScript code can intercept the event and decide to
avoid to update the widget by return true value.
Note: if there are additional macros associate at the event, all macros will be execute regardless of the return
value used inside the JavaScript code.
Page events
onActivate
void onActivate( me, eventInfo )
Parameter Description
JavaScript will be executed when the page is active, that is when the page is loaded.
518 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
onDeactivate
void onDeactivate( me, eventInfo )
Parameter Description
onWheel
void onMouseWheelClock( me, eventInfo )
This event occurs when a wheel device is moving (for example, a mouse wheel).
Parameter Description
System events
System events can be related to:
l scheduler
l alarms
l a wheel device
Important: Make sure you do not duplicate JavaScript function names at page and project level. When
a conflict happens, that is two functions with the same name in current page and at project level, the
system execute the JavaScript callback at page level.
When a JavaScript callback is not found in the current page, the system automatically searches for it at project level.
Scheduler events
These events occur when triggered by the associated action in the scheduler.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 519
System events
You can edit the JavaScript from the Project Properties tab.
Alarm events
These events occur when triggered by the associated alarm condition.
You can edit the JavaScript from the Project Properties tab.
onWheel
void onMouseWheelClock( me, eventInfo )
This event occurs when a wheel device is moving (for example, a mouse wheel).
520 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
Parameter Description
Objects
JMobile Studio uses JavaScript objects to access the elements of the page. Each object is composed of properties and
methods that are used to define the operation and appearance of the page element. The following objects are used to
interact with elements of the HMI device page:
Object Description
Widget This is the base class for all elements on the page
including the page element
Widget, in this case, is not used to indicate a specific screen object but a JavaScript class.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 521
Widget properties
Important: If the widget property Static Optimization is not set to Dynamic, changes to properties will
be ignored.
Whenever a call to getWidget fails, the remote debugger reports the following error:
“Trying to access static optimized widget "label1". Disable widget static optimization to access widget from script.”.
var wgt;
try {
wgt = page.getWidget('label1');
} catch(err) {
alert("" + err);
}
Widget properties
Some properties are common to all widgets.
objectName
string objectName
function btnStd04_onMouseRelease(me) {
var wgt = page.getWidget("rect1");
var name = wgt.objectName;
}
x
number x
function btnStd1_onMouseRelease(me) {
var wgt = page.getWidget("rect1");
wgt.x = 10;
}
y
number y
522 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
function btnStd1_onMouseRelease(me) {
var wgt = page.getWidget("rect1");
wgt.y = 10;
}
width
number width
function btnStd1_onMouseRelease(me) {
var wgt = page.getWidget("rect1");
wgt.width = 10;
}
height
number height
function btnStd1_onMouseRelease(me) {
var wgt = page.getWidget("rect1");
wgt.height = 10;
}
visible
boolean visible
function btnStd4_onMouseRelease(me) {
var wgt = page.getWidget("rect1");
wgt.visible = false;
}
function btnStd5_onMouseRelease(me) {
var wgt = page.getWidget("rect1");
wgt.visible = true;
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 523
Widget properties
value
number value
function btnStd6_onMouseRelease(me) {
var wgt = page.getWidget("field1");
wgt.value = 100;
}
opacity
number opacity (range from 0 to 1)
Gets or sets the widget opacity. Values are decimals from 0 to 1, where 1 is 100% opaque.
function btnStd8_onMouseRelease(me) {
var wgt = page.getWidget("rect1");
wgt.opacity = 0.5;
}
rotation
number rotation (in degrees)
Gets or sets the rotation angle for the widget. The rotation is done clockwise and by degrees, starting at the East position.
function btnStd9_onMouseRelease(me) {
var wgt = page.getWidget("rect1");
wgt.rotation = 45;
}
userValue
string userValue
Gets or sets a user-defined value for the widget. This field can be used by JavaScript functions to store additional data with
the widget.
function btnStd9_onMouseRelease(me) {
var wgt = page.getWidget("rect1");
wgt.userValue = "Here I can store custom data";
524 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
Every widget has some specific properties that you can access using dot notation. For an up-to-date and detailed list of
properties you can use the JavaScript Debugger inspecting the widget methods and properties.
Widget methods
Some methods are common to all widgets.
getProperty
object getProperty( propertyName, [index] )
Returns a property.
Parameter Description
Almost all properties that are shown in the JMobile Studio Properties pane can be retrieved using the getProperty
method. The index value is optional and only used for widgets that support arrays.
setProperty
boolean setProperty( propertyName, value, [index] )
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 525
Page object
Parameters
Parameter Description
Almost all properties that are shown in the JMobile Studio Properties pane can be set by this method. The index value is
optional and only used for Widgets that support arrays (for example, a MultiState Image widget). The setProperty
method returns a boolean value (true or false) to indicate if the property was set or not.
Page object
This object references the current HMI device page. The page is the top-level object of the screen.
backgroundColor
string backgroundColor (in format rgb(xxx, xxx, xxx) where xxx range from 0 to 255)
function btnStd11_onMouseRelease(me) {
page.backgroundColor = "rgb(128,0,0)";
}
526 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
width
number width
function btnStd05_onMouseRelease(me) {
var middle_x = page.width / 2;
}
height
number height
function btnStd05_onMouseRelease(me) {
var middle_y = page.height / 2;
}
userValue
string userValue
Gets or sets a user-defined value for the widget. This field can be used by JavaScript functions to store additional data with
the page.
function btnStd9_onMouseRelease(me) {
page.userValue = "Here I can store custom data";
}
getWidget
object getWidget( wgtName )
Parameter Description
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 527
Page object methods
Return value
An object representing the widget. If the widget does not exist, null is returned.
function btnStd1_onMouseRelease(me) {
var my_button = page.getWidget("btnStd1");
}
setTimeout
number setTimeout( functionName, delay )
Parameter Description
Return value
A number corresponding to the timerID.
clearTimeout
void clearTimeout( timerID )
Stops and clears the timeout timer with the given timer.
Parameter Description
setInterval
number setInterval( functionName, interval )
528 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
Starts a timer that executes the given function with the given interval.
Parameter Description
Return value
A number corresponding to the timerID.
clearInterval
void clearInterval( timerID )
Stops and clears the interval timer with the given timer.
Parameter Description
clearAllTimeouts
void clearAllTimeouts()
page.clearAllTimeouts();
Project object
This object defines the project widget. The project widget is used to retrieve data about the project such as tags, alarms,
recipes, schedules, tags and so on. There is only one widget for the project and it can be referenced through the project
variable.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 529
Project object properties
startPage
string startPage
nextPage
void nextPage()
project.nextPage();
prevPage
void prevPage()
project.prevPage();
lastVisitedPage
void lastVisitedPage()
project.lastVisitedPage();
homepage
void homePage()
530 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
project.homePage();
loadPage
void loadPage(pageName)
The script executes to load the set page defined in the script.
project.loadPage("Page5.jmx");
WARNING: When page change, all active time events are forced to removed and the JavaScript
procedure will run until the end before switch to the new page.
showDialog
void showDialog(pageName)
project.showDialog("Dialog.jmx");
closeDialog
void closeDialog()
project.closeDialog();
showMessage
void showMessage( message )
getGroup
number getGroup( groupName, groupInstance, [callback] )
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 531
Project object methods
Fast read method; this gets the values of all tags in a group.
Parameter Description
The and/or expression to retrieve tags list from multiple group is supported.
| OR operator
(...) The brackets can be used to define how evaluate the expression
Examples:
l project.getGroup("one", group);
l project.getGroup("(one|two)", group);
l project.getGroup("((one&two)*three)", group);
callback String containing the name of the function to be called when the group is ready
Return value
532 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
getTag
object getTag( tagName, state, index, forceRefresh)
It returns the tag value or the complete array if index value is -1 of the given tagName.
Parameter Description
index Index if the tag is of array type. -1 returns the complete array. Default = 0.
forceRefresh (Optional parameter) True = the Runtime will read an updated value of the tag directly from the device.
Default is false.
Return value
Tags value is returned. If tag is array type and index = -1 then the complete array is returned. For non-array tags provide
index as 0.
setTag
number setTag( tagName, tagValue, [index], [forceWrite] )
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 533
Project object methods
Sets the given tag in the project. Name and value are in strings.
Parameter Description
index Index if the tag is of array type. -1 pass the complete array. Default = 0.
forceWrite Boolean value for enabling force write of tags, the function will wait for the value to be written before it
returns back. Default = false.
Return value
Interger value for denoting success and failure of action when forceWrite is true. 0 means success and -1 means failure. If
forceWrite is false, returned value will be undefined.
updateSystemVariables
void project.updateSystemVariables()
project.updateSystemVariables()
selectAllAlarms
void project.selectAllAlarms(bool selected)
project.selectAllAlarms(true)
ackAlarms
void project.ackAlarms()
534 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
project.selectAllAlarms(true);
project.ackAlarms();
project.selectAllAlarms(true);
resetAlarms
void project.resetAlarms()
project.selectAllAlarms(true);
project.resetAlarms();
project.selectAllAlarms(true);
enableAlarms
void project.enableAlarms()
project.selectAllAlarms(true);
project.enableAlarms();
project.selectAllAlarms(true);
getRecipeItem
object getRecipeItem (recipeName, recipeSet, recipeElement)
Parameter Description
recipeSet String representing the recipe set, can be either the recipe set name or 0 based set index.
recipeElement String representing the recipe Element, can be either the element name or 0 based element index.
Return value
An object with the value of the recipe. undefined is returned if invalid. If of type array, an array object type is returned.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 535
Project object methods
setRecipeItem
number setRecipeItem (recipeName, recipeSet, recipeElement, value )
Parameter Description
recipeSet String representing the recipe set, can be either the recipe set name or 0 based set index.
recipeElement String representing the recipe Element, can be either the element name or 0 based element index.
value An object containing the value to store in the recipe. It can be an array type.
Return value
Interger value for denoting success and failure of action. A ‘0’ means success and ‘-1’ means failure.
downloadRecipe
void downloadRecipe (recipeName, recipeSet )
Parameter Description
recipeSet String representing the recipe set, can be either the recipe set name or 0 based set index.
project.downloadRecipe("recipeName", "Set");
uploadRecipe
void uploadRecipe (recipeName, recipeSet )
Parameter Description
recipeSet String representing the recipe set, can be either the recipe set name or 0 based set index.
536 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
project.uploadRecipe("recipeName", "Set");
launchApp
void launchApp( appName, appPath, arguments, singleInstance)
Parameter Description
singleInstance true = only single instance allowed, false = multiple instances allowed
Note the pathname's syntax depend from the native OS format (see "HMI devices capabilities" on page 589).
project.launchApp("PDF.exe","\\Flash\\QTHMI\\PDF","\\USBMemory\\file.pdf","true");
On Linux devices, the pathname's syntax need slash character (even double slash character is permitted).
project.launchApp
("pdfViewer","/mnt/data/hmi/qthmi/deploy","/mnt/usbmemory/test.pdf","true");
getClientType
string getClientType()
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 537
Project object methods
login
int project.login("username", "password")
var ReplyCode;
ReplyCode = project.login("admin", "admin");
if (ReplyCode != 0) {
alert("Access denied");
}
Return value
0 No Error
logout
project.logout(AllowDefaultUser)
538 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
hasPage
boolean hasPage(string pageName)
//Page exists
var pageExists = pageMgr.hasPage( "Page10" );
if (pageExists) {
project.showMessage( "Page10 exists" );
} else {
project.showMessage( "Hei Page10 not exists!" );
}
curLangCode
string curLangCode
// Show curLangCode
var curLangCode = MultiLangMgr.curLangCode;
project.showMessage( "Current active language is: " + curLangCode );
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 539
Print reports object
Parameter Description
printText
void printText( text, silentMode)
Parameter Description
printBytes
void printBytes( text, silentMode)
Prints a hexadecimal string representing data to print. For example, "1b30" to print < ESC 0 >
Parameter Description
emptyPrintQueue
void emptyPrintQueue()
540 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
project.emptyPrintQueue();
pausePrinting
void pausePrinting();
Suspends printing operations. Will not suspend the print of a page already sent to the printer.
project.pausePrinting();
resumePrinting
void resumePrinting();
project.resumePrinting();
abortPrinting
void abortPrinting();
Aborts current print operation and proceed with the next one in queue. This command will not abort the print of a page
already sent to the printer.
project.abortPrinting();
printStatus
project.printStatus;
printGfxJobQueueSize
project.printGfxJobQueueSize;
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 541
Print reports object
printTextJobQueueSize
project.printTextJobQueueSize;
printCurrentJob
project.printCurrentJob;
printActualRAMUsage
project.printActualRAMUsage;
printRAMQuota
project.printRAMQuota;
printActualDiskUsage
project.printActualDiskUsage;
542 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
printDiskQuota
project.printDiskQuota;
Returns the maximum allowed size of spool folder (for PDF printouts).
printSpoolFolder
project.printSpoolFolder;
printPercentage
project.printPercentage;
Returns current job completion percentage (meaningful only for multipage graphic reports)
Group object
A group is a basic logical element that associates a set of logical tags.
getTag
object getTag( TagName )
Parameter Description
Return value
An object that is the value of the tag or, if tag value is an array, the complete array. If you need to retrieve an element of the
array, check the method getTag available in the project object. Undefined is returned if tag is invalid.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 543
State object
getCount
number getCount()
getTags
object getTags()
function {
var group = new Group();
project.getGroup("enginesettings", group);
var tagList = group.getTags();
for(var i = 0; i < tagList.length; i++){
var tagName = tagList[i];
//do something…
};
State object
This is the class holding the state of a tag acquired from the controlled environment.
getQualityBits
number getQualityBits()
544 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
getTimestamp
number getTimestamp()
Return value
A number containing the timestamp (for example 1315570524492).
isQualityGood
boolean isQualityGood()
Return value
A Boolean true if quality is good, false otherwise.
Keywords
Global objects are predefined and can be referenced by the following names.
page
object page
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 545
Global functions
function btnStd04_onMouseRelease(me) {
var wgt = page.getWidget("rect1");
var name = wgt.objectName;
}
project
object project
Global functions
print
void print( message )
Parameter Description
print("Test message");
alert
void alert( message )
Displays a pop-up dialog with the given message. The user must press the OK button in the dialog to continue with the
execution of the script.
Parameter Description
Note: The alert function may be used for debugging JavaScript functions.
alert("Test message");
546 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
Creates a folder, if not already existing, in the specified path. Returns true on success and false if it fails.
Parameter Description
Remove folder
boolean fs.rmdir(dirPath);
Remove directory at strPath if exists and empty. Returns true on success and false if it fails.
Parameter Description
Reads the contents of a folder. Returns an array of the names of the files in the folder excluding '.' and '..'. Returns empty
list if it fails.
Parameter Description
Read file
object fs.readFile(strfile [,strFlag]);
Opens the strFile file in read mode, reads its contents and returns it.
Parameter Description
“b” reads and returns as binary file (otherwise returns a text file)
Write file
fs.writeFile(strFile, fileData, [strFlag]);
Creates the strFile file if not present. Opens the strFile file in write mode and writes the data fileData to the file.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 547
Handling read/write files
Parameter Description
Default flag is for writing text file in append and write mode. File path will be created if not present.
Append file
int fs.appendFile(strFile, fileData);
If the files does not exist creates it, otherwise append to existing file. Returns the number of character written or -1 on error.
Parameter Description
File exists
boolean fs.exists(strPath)
Parameter Description
Remove file
boolean fs.unlink(strPath)
Removes the given file at strPath from filesystem if exists. Returns true on success and false if it fails.
Parameter Description
File status
object fs.stat(strPath)
548 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
Parameter Description
File system object is a client side object. So operations are performed on local file system, not on server file system.
Current JavaScript API to get access at the device file system has been designed to manipulate small files. When a file is
read, the entire file contents is temporarily stored inside the RAM available for JavaScript environment (16MB) and an
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 549
Sign in from JavaScript
exception is raised when there is not enough available memory. Good programming practice is to include the
fs.readFile() call inside a try/catch block.
This chapter show an example of how configure the application to manage the sign in by a remote device.
Since the project's functions are working only when the application is active, the application must start with a default user,
maybe with read only privilege. Reading the badge, the application can be switched to a user with additional privilege.
Later, the logout command will reactivate the default user without any particular privileges
In the below example we are using three tags to communicate with the remote device:
l TAG_USERNAME
l TAG_PASSWORD
l TAG_LOGIN
The remote device has to fill the required TAG_USERNAME and TAG_PASSWORD parameters, then fill the TAG_LOGIN
parameter with the required login or logout command. Engine on HMI-RUNTIME will detect the TAG_LOGIN changes and
perform the required command, then reset the TAG_LOGIN to its idle status.
TAG_LOGIN Commands
0 Idle
1 Login request
2 Logout request
At the project level, we have to add a JavaScript function block to detect when TAG_LOGIN will changes. The JavaScript
code attached at the OnDataUpdate Action of the JavaScript function block will execute the required login/logout
command.
550 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
var Username;
var Password;
var Login_CMD;
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 551
Limitations in working with widgets in JavaScript
Login_CMD = tagState.getValue();
}
See also:
l "login" on page 538
Debugging of JavaScript
JMobile Studio and JMobile HMI Runtime include a JavaScript debugger.
Enabling debugging
In the Properties pane of a page, set JavaScript Debug to true.
For schedulers and alarms debugging, enable JavaScript Debug in Project properties.
552 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
In the JMobile HMI Runtime, when the events are called, the debugger will show the debug information. In the Locals pane
you can inspect all variables and elements.
http://qt-project.org/doc/qt-4.8/qtscriptdebugger-manual.html
1. Set the Allow JavaScript Remote and the JavaScript Debug parameters in the project Properties to true in all the
pages where debugging is required.
2. Download the project: the following message is displayed on the runtime.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 553
Debugging of JavaScript
3. In the JS Debugger window, select the IP of the HMI device and click Attach to connect the debugger to the HMI
device.
Remote JavaScript debugger connects to JMobile HMI Runtime using port 5100/TCP.
Note: The Remote JavaScript debugger tool is not supported in HMI Client.
JavaScrip memory limit can be accessed from the global object $EngineMemory. The default is 16MB, which should be
enough for the typical JavaScript usage (mainly control, without many allocations).
l $EngineMemory.setLimit()
set maximum memory allowed for JavaScript (the default limit is 0x00FFFFFF)
l $EngineMemory.getLimit()
get maximum memory allowed for JavaScript
l $EngineMemory.getSize()
get currently used memory from JS (fastMallocStat)
To generate and test memory exception you can use the following snipped. Please note that we need to reset the memory
limit to 0xffffffff to be able to run the alert, otherwise the memory allocations required to pop up the alert would fail.
554 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
42 JavaScript
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 555
Debugging of JavaScript
556 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
43 Handling Gestures
Some widgets have the capability to detect and manage pan and pinch gestures.
For widgets based on table presentation, when the Scrollbars Type parameter has been set to "Gesture", the pan gesture
is used to smoothly scroll the table.
l Alarms
l Control List
WARNING: Pinch and Rotate gesture requires two fingers. Them are available only with HMI devices
supporting multi touch operation (see "HMI devices capabilities" on page 589)
Tip:Using multi touch HMI device you can implement safe commands by programming a command to be
executed only when two buttons are pressed at the same time.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 557
558 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
44 Web access
JM4Web allows users to access HMI projects from a remote web browser running on a computer or on a mobile device
such as a tablet or a phone. With JM4Web, users can create a web project to display at a remote location the same
graphical display shown on the HMI device. JM4Web projects are based on HTML5 technology which means that no plug-
ins or external software is needed for displaying the information.
This document assumes that you have a basic understanding of how to operate the web browser on your mobile devices as
well as how to set up a connection to the HMI device where the server is running. For example, you must know how to set-
up Wi-Fi access if you are working with tablet or phone devices to access the JM4Web pages on the HMI device.
Privacy 569
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 559
Supported platforms and browsers
You can therefore create pages of different content and size for the different platforms. For example, you may want to
create a set of smaller pages in your project for phones whereas you will use full size pages for desktop web browsers and
tablets.
Web pages
To enable web clients to access at the pages is necessary to include the "Web" reference in the Technology parameter of
the page's category and make sure that when you download the project to the HMI device the Download Web Project
option is selected (normally checked by default).
560 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
44 Web access
If the application needs to send different pages to different web clients (e.g. Smart phone instead of PC browser, etc.),
have a look at the "Differentiated pages " on page 76 chapter.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 561
Testing the Web project
remote client device. See "Web supported features" on page 565 for a list of the features supported in JM4Web and of the
existing limitations.
You can use the Project Validator tool to check if your project contains widgets configured with properties that are
currently not supported in Web technology (see "Project Validator" on page 74)
In addition to the standard page properties, there is an additional property to configure how the page will be adapted to the
browser's viewport.
Property Description
Fit to Screen Size How the page will adapted to the browser's viewport
l None
l Fit to Screen
Simple modify the zoom level to adapted the page to viewport of the browser
l Responsive Design
Smart modify the zoom level to adapted the page to viewport of the browser
respecting the restrictions defined inside the grid layout
http://address/index.html?loadPage=pageName
Important: If you make any changes to the project pages in JMobile Studio you must stop and restart
the simulator.
Note: If you are using a device (for example, a smartphone) that is not the localhost where the simulator is
running, you will be required to enter username and password.
562 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
44 Web access
The JM4Web project is downloaded together with the JMobile Studio project, see "Download to HMI device" on page 102
for details.
After the download process is completed, the HMI project automatically starts on the HMI device and the JM4Web project
is ready to be used.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 563
Web connectivity issues
2. Enter User Name and Password and click Sign In: the Home page will be displayed.
See "User management and passwords" on page 365 for details on how to create credentials.
You can interact with the project using the browser in the same way you interact with a device when touching the screen:
click buttons to change pages, view indicators and gauges, drag slider handles to change values, and so on. The JM4Web
project will manage all communications with the web server while you are interacting with the HMI device remotely.
Server disconnection
Since JM4Web runs remotely from the HMI device, the server might disconnect from the browser (for example if the server
is stopped or the network cable is unplugged). If this happens, a ‘disconnect’ icon will appear in a toolbar on top of the
JM4Web as in this example.
564 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
44 Web access
Once the server is back online, the red circle-bar icon will disappear indicating normal communications with the device.
The “Connection status” system variable can be used to know the status of the connection. See "Remote Client
variables" on page 144 for additional details.
Note: If you make changes in the JM4Web pages while the server is disconnected, these changes will be visible
on the client but will not be transferred to the server until the connection is restored.
Inactivity timeout
JM4Web will require you to re-enter your login credentials if the browser has been inactive for several minutes. If no activity
is detected for 10 minutes, the login screen will reappear and you need to enter your login credentials to continue operation.
A timeout feature guarantees that no unauthorized access is possible.The web inactivity timeout can be modified from the
Project Properties table.
In specific conditions the server might send a request to the client (browser) to perform the login process. In this case the
user is redirected to the login page and then back to the page where he was working. This will happen for example if the
user clears the browser cache or browser cookies.
Note: If the user is working in a dialog when redirected to the login page, he will be then redirected to the page
from which the dialog was opened.
Note: This redirection assumes that the current active project has JM4Web pages in it.
If you choose to stay in the non-active project all the actions you perform in the browser may not be executed properly as
the JM4Web cannot perform any server-bound communication.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 565
Web supported features
Trend/Graph ConsumptionMeterPageScroll
566 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
44 Web access
System Variables
Using the "Attach To", only the system variables listed below are supported, while all system variables are supported using
the protocol "System Variables"
l System Time
l X Screen resolution
l Y Screen resolution
l This Client Group-Name
l This Client User-Name
l Connection status
l This Client ID
l Available System Memory
l Current Language Id
l Current Language Name
l Current Language Code
Font files
Font files without "Font Embeddability = Installable" property (to be verified in the font file properties > details) are not
loaded from the JM4Web unless the font is already installed in the operating system of the device running the browser
Allarms
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 567
Web supported features
Others
https://<device_ip_address>
Note that since the self-certificate provided from the HMI device is not firmed from a known Authority, you will get a
warning message.
After inserting the value the user can either press Enter, or equivalent in touch devices, or click Save to make the newly
inserted value permanent. Only meaningful numbers will be accepted during the save process. Anything else will be
ignored and will not result in a value change.
568 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
44 Web access
By default most browsers come with JavaScript enabled. But if you have disabled JavaScript in the past, please re-enable
JavaScript before accessing JM4Web pages.
Browser cache
JM4Web includes resources that change infrequently such as CSS files, image files and JavaScript files. These resources
take time to download over the network which increases the time required to load the JM4Web page in your browser.
Browser caching allows these resources to be saved by a browser and used without requesting them each time from the
server. This results in faster loading of JM4Web pages.
Caching is normally enabled by default, for optimal JM4Web performance make sure it has not been disabled.
Note: JM4Web pages will still work properly with disabled browser caching, however resource loading time will
be slower compared with normal cached operations.
Using a proxy
Some users may be accessing the JM4Web project through a proxy. The proxies may control the number of parallel
connection for the browser.
Make sure that the maximum parallel connections allowed (max connections) is not more than 16 and not less than 12.
Privacy
We do not use cookies to collect private information from any user.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 569
Privacy
A cookie is a piece of data stored on the user’s hard drive containing information about the user. Usage of a cookie is in no
way linked to any personally identifiable information while on our device. Once the user closes their browser, the cookie
simply terminates.
570 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
45 License activation of HMI device
software modules
You perform license related tasks for the HMI device in the Manage Target dialog of JMobile Studio.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 571
Activate the device
Important: JMobile HMI Runtime must be installed in the device before you can activate your license.
Once you have entered an activation key, the Add Another Key button is enabled, and you can add another
activation key.
8. Click Activate license: if the activation key is valid, the license file is downloaded to the HMI device and the license
is activated.
The enabled features or status of the activation keys is displayed in the Feature/status list box.
Note: You need to restart the HMI device to enable the activated license.
572 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
45 License activation of HMI device software modules
Save a license
You may need to create a license file for later activation oh the HMI device.
Once you have entered an activation key, the Add Another Key button is enabled, and you can add another
activation key.
6. Click Save License: if the activation key is valid, the license file is stored in the selected folder.
The enabled features or status of the activation keys is displayed in the Feature/status list box.
Import a license
If no working Internet connection is available on the computer running JMobile Studio, you can neither save or activate a
license. You must therefore import your license from another computer where you where able to download it.
1. First you download and activate your license on a computer connected to the internet
2. Then you import the downloaded license to the HMI device.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 573
Import a license
Note: You need to restart the HMI device to enable the activated license.
574 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
46 Protecting access to HMI devices
The following operations are password protected on the HMI device:
l JMobile HMI Runtime management: install JMobile HMI Runtime and update JMobile HMI Runtime
l Board management: replace main BSP components such as Main OS, Configuration OS, Bootloader, and so on
l Download and upload of project files
l Optional services on Linux devices (e.g. SSH Protocol, VNC Server)
l Change the default passwords (See: "Password protection" on page 617 for HMI devices on Linux platform,
"Password protection" on page 628 for HMI devices on WinCE platform, "Changing password on HMI device" on
the next page for HMI devices on Win32 platform)
l Enable security management (See: "Enable/disable security management" on page 366)
l Force remote login (See: "Force remote login" on page 376)
WARNING: Unauthorized access to the device can cause damage or malfunctions. When connecting
the device to a network protect the network against unauthorized access.
l Firewall
l Intrusion Prevention System (IPS)
l Network segmentation
l Virtual LAN (VLAN)
l Virtual Private Network (VPN)
l Security at physical access level (Port Security).
Further information, guidelines and standards regarding security in information technology: IEC 62443, ISO/IEC 27001.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 575
Changing password on HMI device
l From the JMobile HMI Runtime context menu: Settings> Password tab.
l Use the Set Target Password function in update package: the password is updated by JMobile HMI Runtime just
after the update process is completed.
l Using HMI device "System Settings" on page 593 Tool
576 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
46 Protecting access to HMI devices
11740-11743/tcp CODESYS 3 - - -
1217, 1740-
1743/udp
Remote access
Remote access is required to connect to JMobile HMI Runtime using:
l HMI Client
l Internet Browser
Note: When broadcast service is not available, for example in VPN networks, type in the exact IP address to
connect to the HMI device from JMobile Studio.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 577
Ports and firewalls
578 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
47 Tips and tricks to improve
performance
JMobile Studio allows great flexibility for a project designers.
Follow these guidelines to create projects that perform better in terms of boot time, page change and animations.
Image DB 584
Precaching 584
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 579
Static Optimization
Static Optimization
Static optimization is a technique used in JMobile Studio to improve runtime performance.
Using a lot of images and pictures in a project might degrade performances, static optimization merges several images into
a single background image thus reducing rendering and loading times. Using this method only one raster image needs to be
loaded and rendered instead of many single raster and/or vector images.
When you create a project in JMobile Studio, the pages might contain widgets such as texts, images, background images,
background colors and so on which can be classified as:
Note: Based on security settings, static parts of widgets could be not merged to background. This happens
when a widget is configured as “hide” in security settings.
Important: When you change the properties of widgets with JavaScript set the widget Static
Optimization to Dynamic, otherwise changes to properties will be ignored.
When downloading or validating a project, JMobile Studio identifies static components and renders them as background
images to .png files. These background images are saved as a part of the project under the folder /opt.
l full page background images, containing all widgets merged to page background
l group background images, containing a group of static widgets merged together to form a group background. For
example, the Gauge group is normally composed by a background, a scale, a label and a needle, where background
scale and label can all be merged to a single background image.
The Static Optimization page attribute enables and disables static optimization of the whole page. If it is set to false the
optimization is totally disabled.
Finer control can be achieved setting the Static Optimization attribute of each single widget as follows:
l Normal: JMobile Studio automatically detects if the widget can be merged with the background. This can be used if
the widget is not a dynamic widget and does not overlap, that is it is not stacked above, a dynamic widget.
l Static: The image is forced to be merged with the background. This can be used when the static widget overlaps a
dynamic transparent widget.
Note: In this case the automatic optimization will fail because it does not make any assumption on invisible
areas which might be rendered at runtime.
l Dynamic: The widget is not optimized at all. Use this flag when a static widget needs to be changed by JavaScript.
580 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
47 Tips and tricks to improve performance
2. Do not use static optimization if your pages contain almost only dynamic objects. Static optimization would save
many almost identical full size images for each page using up a lot of memory space that could be more effectively
used to improve project performance with other techniques (such as, for example, page caching).
3. Bounding rectangles can include transparent areas, minimize transparent areas (for example splitting the image in
multiple images) since they can be a waste of resources even when optimized.
4. Optimize image size. The image will be rendered at the size of the image widget containing the image. For best
performances the widget needs to be the same size of the image.
5. Avoid using Scale to fit for image widgets, since this forces a rescaling at runtime for dynamic images and “hides”
the actual image size during editing.
6. Use Size to fit to make the widget to the real size of his contents.
7. If overlapping cannot be avoided make sure to place the static widgets in the back, that is behind the dynamic
widget.
8. Choose the image file format based on the HMI device you are connecting to.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 581
Static Optimization
9. Avoid using too many widgets in a single page. Often widgets are placed outside the visible area or their
transparency is controlled by a tag. Since widgets are loaded even if they are not visible, having too many widgets in
a page can significantly slow down the page change time.
10. Split a page with many widgets into multiple pages with less widgets.
11. For popping up new graphic elements in a page, prefer dialog pages with controlled positioning to transparent
widgets.
12. Check the opt folder to see if static optimization is working as expected, the widgets z-order might need to be
adjusted.
13. Numeric fields are often used to run JavaScript code on OnDataUpdate event even if the widget doesn’t need to be
visible on the page. In this case place the widget outside the page visible area instead of making it invisible, altering
font color or visibility property. In the latter case you might end up with many left over wedges.
14. Use a HotSpot button if you need a touch area to react to user inputs.
15. If you reuse a widget from the gallery or you create your own, remember to set the correct optimization properties.
For example button widgets are dynamic widgets, if you use a button widget just for its frame it won’t be optimized
since the button widget is dynamic. If you just need the frame you should use the Up image.
16. With many pages having many dynamic widgets and using a common template:
1. set template static optimization to true,
2. set page static optimization to false, since the background is already provided by the template.
In this scenario the background image can be reused by many different pages thus saving memory space.
17. Do not use dynamic widgets, such as buttons, only for graphic purposes, when the button function is not needed,
use image widgets instead to obtain the same graphical effect.
582 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
47 Tips and tricks to improve performance
Image
Pros Cons
format
VECTOR l Small file size l Complex SVG images with many graphic items and layers
(SVG) l Rescale without can be slow to render.
quality loss l Creating an optimized SVG is not simple.
l Can handle l Only Tiny 1.2 (http://www.w3.org/TR/SVGTiny12/)
dynamic supported.
properties
Note: Scour software is free tool that can be used to remove foreign code from file
(http://www.codedread.com/scour/).
If a huge background image should be repeated in every page that uses the same template, this would increase the
footprint of the device as the same static image would be created for each of the pages using the template page.
Q: Why are the static images stored in a separate folder called opt instead of storing them directly
in the project folder?
A: This avoids name collisions and allows skipping the upload of optimization images
Q: Why are the static images stored as a PNG files instead of common JPEG files?
A: PNG format uses a lossless compression for images and supports transparencies. JPEG files would render fuzzier
compared to the PNG files with a different result in JMobile Studio(not using optimization) and JMobile HMI Runtime.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 583
Page caching
Page caching
Once accessed all pages are kept in a RAM cache up to the maximum allowed cache size depending on the actual
platform’s available RAM. This allows a much faster access since cached pages, once reloaded, only need to re-paint their
content without reloading all page resources.
Image DB
Image DB is a technique used to track the usage of image files and reduce the cost of image loading by caching most
frequently used images (example, Push Button images, Gauge needles, Slider thumbs and so on). The same image used in
many different places is therefore loaded just once.
The image DB function will preload the top most used images at startup until memory limit is reached. This would further
improve the individual page loading times.
Precaching
The Precache attribute of pages can be used to notify JMobile HMI Runtime to preload some pages in RAM at boot time for
quicker access. Precaching is useful for complex pages having many dynamic widgets.
When this function is enabled on a page, access to the page is faster, however it also slows down boot-time since the
system is not ready until all pages to be precached are not saved into the RAM.
Tips to precaching
1. Enable the precache function just for few pages having many dynamic widgets or for pages frequently used by
users.
2. Do not enable the precache function for all the pages in the project since you would run out of memory and have no
benefit at all.
3. Disable static optimization for pages where the precache function is enabled to reduce memory used.
FAQ on precaching
Page limit for precaching
Based on the size and complexity of a page, the space required for precaching can be from 1,5Mb to 3Mb.
584 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
47 Tips and tricks to improve performance
1. Page images are preloaded until 76 MB of memory space is still available (imageDBLowMem)
2. Pages where precache is set to true are preloaded untill 64 MB of memory space is still available
(pageCacheLowMemMax). The images of these pages are loaded in the RAM (into the Image DB).
1. Any new page visited is saved in the cache (RAM) with all related images until 40 MB of memory space is still
available(pageCacheLowMemMin)
2. When a page change happens and space in RAM is critical (<40MB), the JMobile HMI Runtime starts emptying the
cache (RAM) removing pages and related images until 64 MB of memory space is made available. JMobile HMI
Runtime removes data stored in the cache in the following order:
1. last visited pages and bigger and unused images (>320x240),
2. if more memory is needed also the pages in precache and all images loaded in Image DB can be removed.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 585
FAQ on precaching
586 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
48 Functional specifications and
compatibility
Here is an overview of the supported functions and related limitations. Limitations indicated here represent a safe limitation,
beyond that proper operation and state-of-the-art performance of the system is not guaranteed.
Compatibility 591
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 587
Table of functions and limits
Number of Recipes 32
Number of schedulers 30
Memory reserved for trend buffer See "HMI devices capabilities" on the facing page
Max number of trend table printable rows 10.000 on JMobile HMI Runtime
Number of languages 24
HMI Devices based on WEC platform support until 12 languages (See "HMI
588 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
48 Functional specifications and compatibility
Number of reports 32
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 589
HMI devices capabilities
l LaunchBrowser macro
l Printer devices are not supported. Reports can be printed only on PDF files. Print of text reports and alarm events
are not supported.
590 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
48 Functional specifications and compatibility
Compatibility
The following compatibility policy has been adopted:
l JMobile Studio version must always be aligned with JMobile HMI Runtime on the device,
l the user is responsible for updating JMobile HMI Runtime components on the HMI device at any JMobile Studio
update,
l the JMobile HMI Runtime update can be done directly from JMobile Studio using the Update Target command
available in the Run\Manage Target dialog,
l projects created in a JMobile Studio version no older than V1.00 (00) can be opened and handled by any newer
version,
l projects created with older versions of JMobile Studio, opened with later versions and deployed to compatible
JMobile HMI Runtime, are ensured to maintain the performance and functionality,
l compatibility between newer versions of JMobile HMI Runtime and projects created and deployed with older
versions of JMobile Studio is not ensured.
Important: Do not edit projects with a version of JMobile Studio older than the one used to create
them. It can result in a damage of the project and to JMobile HMI Runtime instability.
Guideline
Before converting a project have a look if some unsupported features are present (see "HMI devices capabilities" on
page 589), and adjust your project by removing the unsupported features before converting the project.
In particular:
l Verify limitations and features not supported by the new HMI device (see "Table of functions and limits" on page 588
for details).
l Remove unsupported widgets, actions, system variables, protocols, project properties.
l If the project uses external storage, verify if the same storage path is still available.
l Adjust OS-specific external applications or paths.
l If necessary, reduce project size according to the new HMI device type limitations (see "Limitations" for details).
l Since HMI devices are based on different hardware platforms with different CPU speed, RAM memory size, cache
size, make sure to check project boot time and page loading time for each page in the project.
l Verify JavaScript code for OS-specific operations.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 591
Converting projects between different HMI devices
OS-specific features
Linux is case sensitive while Windows CE is not. Consequently, projects on Linux HMI devices might have different files
named based on upper and lower case, e.g. 'dump1.csv' and 'Dump1.csv' are not possible on Windows CE HMI devices.
592 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
49 System Settings
System Settings is an internal tool of the HMI device that can be used for the basic device settings or for the system
components update.
Note: the system components can be update even from the JMobile Studio (see "Updating system components
in HMI devices" on page 631 for details)
CAUTION: Working with the System Settings tool is a critical operation and, when not performed
correctly, may cause product damages requiring service of the product. Contact technical support for
assistance.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 593
Linux Devices
Linux Devices
Linux products offer a powerful integrated tool called System Settings that allows management and upgrade of system
components. Operations can be done directly on HMI or remotely using web browser.
Runtime Installation
HMI devices are delivered from factory without Runtime, at first power up HMI shows the “Runtime Loader” screen.
WARNING: Runtime installation via Ethernet download requires the HMI to have a valid IP address.
l Automatically via DHCP server. This option is enabled by default. If a DHCP server is available on the network IP
address will be assigned automatically by the server.
l Automatically via Auto-IP feature. If DHCP assignment is enabled but no DHCP server is available on the network
the HMI assigns itself an IP Address into range 169.254.x.x with subnet mask 255.255.0.0
l Manually via System Settings. From System Settings menu, in Network section the IP address can be manually
assigned, disabling the DHCP server assignment feature.
1. Create an Update Package from JMobile Studio and copy into an empty USB memory stick
594 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
49 System Settings
Note: File systems supported are FAT16/32 and Linux Ext2, Ext3 and Ext4.
4. Then on “usbmemory”
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 595
Linux Devices
596 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
49 System Settings
System Settings
The user interface of System Settings is based on HTML pages and can be accessed both locally on the HMI device
screen and remotely using a Web browser.
Administrator username with full access right is "admin" with default password "admin". Generic username is “user” with
default password “user”
WARNING: For security reasons, change the default passwords for both usernames (passwords can
be modified from the “System Settings -> Authentication” command)
Accessing at the system settings from the HMI device do not require to enter a password until the default
"admin" password is not changed.
To access System Settings using a Web browser, enter the IP address of the device, in the following format:
https://IP/machine_config
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 597
Linux Devices
Note the remote access use encrypted https protocol on port 443. When the connection is established, the HMI
device send a certificate to use for the encryption. Since the certificate is not signed from a Certificate Authority
you will get a warning message. Please, click on advanced options and choice to proceeding.
Browse through the options available in the menu on the left: the active item is highlighted and related information is
displayed on the right.
Default security protocols proposed by the HTTPS server in the Linux HMI device are:
WARNING: We discourage usage of CBC cyber suites in the context of SSL3 or TLSv1.0 connections
since potentially affected by some vulnerabilities.
When Runtime is not installed, the System Settings is accessible from the Runtime Loader screen,
598 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
49 System Settings
When Runtime is installed the System Settings is accessible selecting “Show System Settings” option of Context Menu,
Tap-tap consists in a sequence of several touch activations by simple means of the finger tapping the touch screen
performed during the power-up phase and started immediately after the HMI is powered on.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 599
Linux Devices
When “tap-tap detected” message appears on the top of the screen. Wait for 5 seconds (without touching the screen) to
enter System Settings sub menu
Wait for 5 more seconds (without touching the screen) to enter Default Mode
600 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
49 System Settings
To change system settings values, enter in edit mode by click the edit button on the right top.
The edit button is available only inside the dialogs that contains modifiable parameters.
Languages
Select the language for the system settings interface
System
Parameter Description
Logs
Set the persistent log option if you want maintain the log files saved after a power reset.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 601
Linux Devices
Parameter Description
Current Date Date and Time can set manually only when the Automatic Update is disabled.
Local Time
Automatic Update (NTP) Enable to keep date and time synchronized from a remote server
l NTP Server
Specify the Internet NTP Server address
Networks
Network parameters. Available parameter in edit mode:
Parameter Description
l DHCP
l IP Address
l Net Mask
l Gateway
Search Domains
Optional domains that will be used in concatenation with the provided urls
Services
Services are available only when logged as admin.
Mouse click on the enable button to enable/disable the service. Click the service name to list the associate parameters.
602 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
49 System Settings
Avahi Daemon
Avahi is a system which enables programs to publish and discover services and hosts running on a local network. When it
is enabled, the HMI device can be reached even using the device's host name (in alternative to the IP Address).
On Linux and Apple PCs, the Avahi service comes for free with the OS. On Windows PCs instead, you need to
install an Avahi service to be able to reach the panel by his Avahi host name (e.g. you need to install the Apple
Bonjour application - Bonjour is a trademark of Apple inc.).
Bridge/Switch Service
Using the bridge service is possible connect together the WAN (eth0) network adapter with the other network interfaces.
When used, the two Ethernet interfaces are bridged and both Ethernet interfaces are sharing the same IP address.
Bridge Service creates a Linux-based layer-2 Network Bridge between two or more network interfaces. If both WAN and
endpoint devices are attached to such bridge, the two networks will be physically joined and endpoints will be available as if
they were directly connected to the WAN (Note: Cloud scenario still requires Router Service to be active)
Cloud Service
Allow to manage remote HMI devices connected to a centralized server through gateways.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 603
Linux Devices
DHCP Server
Provide the DHCP Server on the selected interfaces.
Parameter Description
Fast Boot
When fast boot is enabled, at the power up the HMI device will start the HMI application as fast as possible. In this mode,
there are not showed diagnostic information (e.g. the loading bar) but only the minimum necessary features are loaded
before loading the User Interface (e.g. System Settings, VNC, SSH, etc. will be load after loading the HMI application).
To obtain best performance, in addition of enabling the fast boot mode, it is recommended to:
Firewall Service
When the firewall is enabled, only connections matching the defined rules are allowed. Note that some rules must be
enabled for the HMI can to work properly.
604 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
49 System Settings
Notes:
l The firewall is based on IP tables which operates only at layer 3 (layer 2 packets won't be filtered, e.g. ARP)
l Only INPUT and FORWARD packets are filtered, not OUTPUT
l PING/ICMP echo reply packets are always allowed
l Internet sharing scenarios (e.g. 3g or wifi connection to endpoints) are not supported
l Packets filtered by the firewall are dropped
If you enable the Firewall and you need to use the FTP passive mode with JMobile HMI Runtime older
than version 2.10.0.280 then you need to open the ports 1024-2048/tcp and 16384-17407/tcp. From
version 2.10.0.280 instead, JMobile HMI Runtime uses the ports 18756-18760/tcp that are proposed into
Firewall settings by default.
Router Service
This service uses IP Forwarding and Network Address Translation to share the connection from WAN (eth0) towards LAN
(eth1 or eth2): connected endpoints may reach the same networks reachable by the gateway (including Internet if
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 605
Linux Devices
available). With Cloud Service active, endpoints can be reached via the gateway's LAN port (please refer to "Cloud
Service" on page 610 for more information)
Port Forwarding
Port forwarding redirects incoming TCP packets requests from WLAN interface from one address and port number
combination to another combination of address and port number.
1:1 NAT
1:1 NAT, create alias IP on WLAN and forward all packets (or given port range) with that destination IP to another device
attached to a LAN
SNMP Server
SNMP is a network protocol that allow to manage network infrastructures. It is commonly used to monitor network devices
as switches, routers, etc. connected to a LAN network.
When the SNMP service is enabled, an SNMP Manager can retrieve information from the HMI device using the SNMP
protocol. Currently, there are not proprietary MIBs available. Only the standard public community MIBs are available in read
only mode.
606 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
49 System Settings
Example:
This service is designed to be used during the development phase. For security reasons, remember to
disable the service before switch to production.
SSH Server
SSH service has been designed only for advanced users. It provides remote login to HMI device using the secure shell
protocol. On PC you can run a SSH Client as, for example, PuTTY that is an open source software distributed under the
MIT license.
The default password for the username the admin is “admin”. See the "Authentication" on page 609 chapter to
additional information.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 607
Linux Devices
This service is designed to be used during the development phase. For security reasons, remember to
disable the service before switch to production.
VNC Service
VNC is a service that allows remote access to the display of the HMI device. VNC clients can be used to get the remote
control of the HMI device.
l Port: VNC Server listens for connections on TCP port 5900 (default)
l Multiple clients: allow multiple sessions on the same port (if disabled, previously logged clients are disconnected
upon a new incoming connection)
l View only: do not allow active user interactions (clients can only watch)
l Encryption: activate SSL encryption of connections (not widely supported - check client compatibility)
l Authentication: whether users are authenticated upon session creation. A custom VNC specific password can be
set or system passwords can be used (this option is only available if also Encryption is enabled)
Plugins
This page will show the parameters available to configure the optional plugins modules attached to the HMI device. See the
description of the each plug-in module to additional information.
Management
Management is available only when logged as admin.
From the management area is possible "Update System Components" on page 613 of the HMI device.
608 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
49 System Settings
CAUTION: Working in the Management area is a critical operation and, when not performed correctly,
may cause product damages requiring service of the product. Contact technical support for
assistance.
Use the “Clear” command inside the “Data” section to remove HMI Runtime from the device (Factory Restore)
Display
Parameter Description
Restart
HMI device restart command
Authentication
Enter in edit mode to change the authentication passwords.
Administrator username with full access right is "admin" with default password "admin". Generic username is “user” with
default password “user”
WARNING: For security reasons, change the default passwords for both usernames
x.509 Certificate
HMI Device use a self-certificate to encrypt the Internet communication trough the HTTPS protocol. You can personalize
the certificate with the data of your Company and ask to a Certificate Authority to firm it.
1. Enter in edit mode and fill the necessary parameters, then push GENERATE button to generate a self-signed
certificate with your data.
2. Export the “Certificate Signed Request”
3. Sent the “Certificate Signed Request” to a Certificate Authority to firm it (general this is a paid service)
4. Import the signed certificate into the HMI device
Certificate's parameters
Parameter Description
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 609
Linux Devices
Parameter Description
Country The two-letter ISO code for the country where your organization is location
Key Length Number of bits of the key used from the cryptographic algorithm
EXIT
Exit from the System Setting tool.
Cloud Service
Cloud Service allows devices to connect to a Cloud Server, making them securely available to remote clients.
Prerequisites
This service requires external access to the server for VPN setup (default port UDP/1194) and for self-configuration/other
advanced features on TCP port 443 (Cloud Server mode only), so please check configuration and make sure no firewalls
block such ports.
Setup
If you need endpoints behind your gateway device to be reached, make sure Router Service is active and set it up as
follows:
l WAN port (eth0) connected to the main network with Internet access (Cloud Server must be reachable from this
network)
l LAN port (eth1) connected to one or more endpoint devices (newly-created private network)
This functionality is automatically supported when using a Cloud Server, but will require extra manual setup for
plain OpenVPN server.
Configuration
Configuration options are available in the Services Menu of System Settings (they are visible only once the service is
enabled). Two Server Types are currently available:
1. Cloud Server
2. OpenVPN
610 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
49 System Settings
In case of connectivity error, from the BSP v1.0.348 and later the retry timeout has a geometric
progression: starting from 5s, the successive retry is after 2*(Previous Time). This means 5s, 10s, 20s,
40s, etc. until a max retry time of 5 minutes. On previous BSP versions, the retry times was fixed to 5
Seconds.
Cloud Server
Cloud Server is a VPN-based solution that allows seamless connection of users with gateways and endpoints. It provides
a full management infrastructure to make such process painfree.
Configuration is downloaded automatically from Cloud Server, so the only required parameters are Server (hostname or IP
address), Username and Password.
OpenVPN
This mode uses a standard OpenVPN configuration to connect devices.
In remote access environments based on an OpenVPN server, system administrators normally supply a number of
OpenVPN configuration files directly to end users.
In such case configuration is quite straight-forward since it requires only two simple steps:
1. browse and upload N files (this should include at least a main OpenVPN configuration file, but may also include
server and/or client certificates in .pem, .p12 or other formats); make sure you select all necessary files in one shot
by using platform-dependent multiselection;
2. select an appropriate Authentication type and insert credentials if they are required.
You're done! now press Save, wait a little while and you should see an updated connection status.
If no configuration files have been provided by your system administrator, you will need to create the OpenVPN
configuration file yourself.
Sample 1: Username/Password
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 611
Linux Devices
l username/passsword-based authenticaition
l LZO compression and TAP device
l server running on UDP port 1194
openvpn.conf
client
dev tap
proto udp
remote testserver.whatever.com 1194
comp-lzo
ca cacert.pem
auth-user-pass
This configuration file only refers to one external file (cacert.pem), so:
openvpn.conf
tls-client
dev tun
proto tcp
tun-mtu 1400
remote testserver.whatever.com 1195
pkcs12 mycert.p12
ca cacert.pem
cert client.pem
key client.key
cipher AES-128-CBC
comp-lzo
verb 4
1. upload main openvpn.conf and external files (total 4), using the Browse option
2. since no passwords are required, choose None (from file) Authentication
3. Save and wait for State change
612 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
49 System Settings
openvpn.conf
[..]
pkcs12 mycert.p12
The PKCS #12 bundle normally contains both CA certificate client keypair, so this configuration file only refers to one
external file (mycert.p12). Hence:
openvpn.conf
[..]
pkcs12 mycert.p12
auth-user-pass
Links
The system components of the Linux device can update locally using an USB memory key or remotely via web browser.
To update system components enter System Settings in Config OS mode via tap-tap procedure on HMI or open web
browser to https://<HMI-IP-address>/machine_config and select the “Management” section.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 613
Linux Devices
On the opened dialog, click [Browse Image], then select the “xxx-mainos-xxx.tar.gz” file. Click then on [Browse MD5] and
select the “xxx-mainos-xxx.tar.gz.md5” file.
Important: Do not turn off the device while a system component is being upgraded.
At the end of the component update, restart HMI and leave it starting normally.
Tap-tap consist in a sequence of several touch activations by simple means of the finger tapping the touch screen
performed during the power-up phase and started immediately after the HMI is powered on.
614 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
49 System Settings
When “tap-tap detected” message appears on the top of the screen, press and hold the finger on touchscreen, to select
“Restart: Config OS”
Touchscreen calibration
System Setting Calibration allows to calibrate Touchscreen device, can be accessed by tap-tap procedure.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 615
Linux Devices
Tap-tap consists in a sequence of several touch activations by simple means of the finger tapping the touch screen
performed during the power-up phase and started immediately after the HMI is powered on.
When “tap-tap detected” message appears on the top of the screen, wait for 5 seconds (without touching the screen) to
enter System Settings sub menu
Press on touch screen, “Touchscreen calibration” voice will be highlighted in yellow, hold pressed for few seconds until
touchscreen calibration procedure starts
616 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
49 System Settings
Follow the instructions on screen to complete the calibration procedure, system will prompt to touch specific points to
calibrate the touchscreen device.
Password protection
Internal password of the HMI device.
From the Authentication tab, inside the "System Settings" on page 597, activate the edit mode and select the username to
change the associated password.
Password for admin user can modified even from the context menu of theJMobile HMI Runtime (see "Context
menu options" on page 12 for details) and from the update package (see "Update package" on page 105for
details).
Accessing at the system settings from the HMI device do not require to enter a password until the default
"admin" password is not changed.
l Administrator username with full access right is "admin" with default password "admin".
l Generic username is “user” with default password “user”
Factory restore
System Settings in Default mode allows to uninstall HMI Runtime or change Startup sequence, this mode is available via
tap-tap sequence and can be accessed also when HMI is facing a software failure.
Tap-tap consists in a sequence of several touch activations by simple means of the finger tapping the touch screen
performed during the power-up phase and started immediately after the HMI is powered on.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 617
Linux Devices
When “tap-tap detected” message appears on the top of the screen. Wait for 5 seconds (without touching the screen) to
enter System Settings sub menu
Wait for 5 more seconds (without touching the screen) to enter Default Mode
To uninstall the Runtime from HMI in Default Mode screen select [Startup Sequence]:
618 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
49 System Settings
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 619
WinCE Devices
Configuration mode
In the case that it is not even possible to boot the device, there is a special procedure to recovery the device by booting it in
a special mode called configuration mode. From this mode you can open the device management dialog from where you
can delete user data, restore system setting or update the firmware of the device.
To boot the device in configuration mode choice one of the below procedures
l Power on the device and immediately power off when splash screen appear on the screen (if you cannot see the
splash screen, power off the device when you heart the beep-beep). Repeat this procedure for three time then power
on again the device and wait the configuration mode appears.
l Create a special file named “$0030D8$.bin” and put it inside an empty SD card. Insert the SD card into the device
and power on the device. Device will start in configuration mode.
WinCE Devices
The System Settings tool includes a rotating menu, and navigation buttons to scroll between the available options.
For each function and component on the left, the Info pane on the right displays all available information. In the example the
version of the Main OS component is shown.
l User mode
l System mode.
620 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
49 System Settings
Runtime Installation
HMI devices are delivered from factory without Runtime, at first power up HMI shows the “Runtime Loader” screen.
WARNING: Runtime installation via Ethernet download requires the HMI to have a valid IP address.
l Automatically via DHCP server. This option is enabled by default. If a DHCP server is available on the network IP
address will be assigned automatically by the server.
l Automatically via Auto-IP feature. If DHCP assignment is enabled but no DHCP server is available on the network
the HMI assigns itself an IP Address into range 169.254.x.x with subnet mask 255.255.0.0
l Manually via System Settings. From System Settings menu, in Network section the IP address can be manually
assigned, disabling the DHCP server assignment feature.
1. Create an Update Package from JMobile Studio and copy into an empty USB memory stick
2. On HMI select [Transfer from disk] and select the UpdatePackage.zip to load.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 621
WinCE Devices
System Settings
System Settings has two operating modes:
l User Mode
a simplified interface that gives users access to the basic settings of the HMI device.
l System Mode
a full interface that gives users access to all the tool's options.
When you access the tool at runtime selecting "Show system settings" from the context menu, the tool is started by default
in User Mode.
Note: Press and hold on a screen area without buttons or other touch sensitive elements to display the context
menu.
l Execute a tap sequence on the touch screen during the power-up phase. A tap sequence is a high frequency
sequence of touch activations executed immediately after the device has been powered.
l From the System Setting page in User Mode, restart the panel in Configuration OS mode
Time Set HMI device date and time manually or configure NTP servers
For the ARM devices, the synchronization frequency parameter of the NTP server is available
from the BSP v2.21. On the MIPS devices and on the ARM devices with older BSP versions, the
system searches the NTP server when turned on, or once a week if the HMI device is not turned
off.
622 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
49 System Settings
Element Description
BSP Display operating system version and unit operating timers to control buzzer and battery led.
Settings
Plug-in List the plug-in modules installed and recognized by the system.
List
Note: this option may not be supported by all platforms and all versions.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 623
WinCE Devices
Element Description
x.509 You can personalize the certificate with the data of your Company and ask to a Certificate Authority to firm
Certificate it.
1. Fill the necessary parameters, then push GENERATE button to generate a self-signed certificate
with your data.
2. Export the “Certificate Signed Request”
3. Sent the “Certificate Signed Request” to a Certificate Authority to firm it (general this is a paid
service)
4. Import the signed certificate into the HMI device
Certificate's parameters
Parameter Description
Country The two-letter ISO code for the country where your organization
is location
Key Length Number of bits of the key used from the cryptographic algorithm
l Main OS
Restart the HMI device in the operating mode
l Configuration OS
Restart the HIM device with System Setting tool active in System Mode
624 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
49 System Settings
Element Description
Format Flash Formats the internal device flash disk. All projects and the JMobile HMI Runtime
will be erased, returning the device to its factory settings.
Restore Factory Settings Restores factory settings as an alternative to Format Flash, in a more flexible
way. The following options are available:
Uninstall HMI: removes the JMobile HMI Runtime (entire qthmi folder) at the
next start the device will behave as a brand new unit. This command does not
reset settings such as IP address, brightness or RTC.
l \Flash\QtHmi\RTS\APP\*.*
l \Flash\QtHmi\RTS\VISU\*.*
l \Flash\QtHmi\codesys\*
l \Flash\$SysData$\codesys\*
Note: Not all these options are available for all HMI devices and BSPs.
Resize Image Area Resizes the flash memory reserved to store the splash screen image displayed at
power up. Default settings are normally suitable for all units.
Download Configuration OS Checks and upgrades the current version of the operating system used in System
Mode
Download Main OS Checks and upgrades the current version of the main operating system
Download Splash Image Loads a new file for the splash screen image displayed by the unit at power up.
Tip: Update the splash screen image directly from the JMobile Studio
programming software.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 625
WinCE Devices
Element Description
See "Update of system components from the application" on page 632 for details.
Download Bootloader Checks and upgrades the current version of the system boot loader.
Download Main FPGA Checks and upgrades the current version of the main FPGA file. This function
may not be available for all platforms and versions.
Download Safe FPGA Checks and upgrades the current version of the backup copy of the FPGA file.
This function may not be available for all platforms and versions.
Download System Supervisor Checks and upgrades the current version of the system supervisor firmware
(used for the RTC and power supply handling).
Upload Configuration OS Copy the system files from the operator panel on the external device (usually an
USB stick).
Upload Main OS
Upload Bootloader
Note: Upgrading procedures depend on hardware and operating system versions. Contact technical support for
assistance.
626 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
49 System Settings
1. Copy all the upgrade files you need to a USB drive and plug it into the USB port of the HMI device.
2. Start the System Settings tool in System Mode (see "System Settings" on page 622for details).
3. Click on the desired download function.
4. Browse the content of the USB drive to the files to download. The example shows Main OS components.
Note: From this dialog click Upload to transfer files to the USB device.
6. Follow the instructions displayed to complete the update: the progress of the operation in displayed in a progress
bar.
Important: Do not turn off the device while a system component is being upgraded.
Component Description
Application The HMI Application and the HMI Runtime generated from the Run> Update
Package command
Configuration OS Backup operating system that ensures units recovery in case of main operating
system corruption
Splash The initial screen shown during the startup of the HMI device
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 627
WinCE Devices
Component Description
Safe FPGA Backup copy of the Main FPGA that ensures unit booting in case of main FPGA
corruption
Important: Use the same file for updating Main and Safe FPGA
components.
System Supervisor Firmware of the system supervisor controller (for example: packaged_GekkoZigBee_
v4.13.bin).
Touchscreen calibration
System Setting Calibration allows to calibrate Touchscreen device, can be accessed from System Settings
l Execute a tap sequence on the touch screen during the power-up phase. A tap sequence is a high frequency
sequence of touch activations executed immediately after the device has been powered.
or
l Press and hold on an empty area of the screen for a few seconds to display the context menu.
From the rotating menu, select “Calibrate Touch” and follow the instructions on screen to complete the calibration
procedure, system will prompt to touch specific points to calibrate the touchscreen device.
Password protection
Internal password of the HMI device can be defined from the System Settings in System Mode (see "System Settings" on
page 622 for entering in system settings mode)
628 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
49 System Settings
l Password
Protect the system settings from local accessing
l Remote
Protect the system settings from remote accessing
From the rotating menu, select “BSP Settings” and then the Password tab or the Remote tab to open the set password
dialogs.
The "Remote" password can modified even from the context menu of theJMobile HMI Runtime (see "Context
menu options" on page 12 for details) and from the update package (see "Update package" on page 105for
details)
This feature is available from BSP versions V1.64 ARM UN30/31 and V2.73 MIPS UN20 based on WCE OS.
Factory restore
If you’re having problems with the HMI device, try and restore factory default settings from System Mode.
Note: Both operations do not involve firmware factory restore (MainOS, ConfigOS, Bootloader, FPGA images,
etc).
System Mode
To access System Settings tool in System Mode you may use one of the below procedures:
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 629
WinCE Devices
l TAP-TAP sequence: this procedure consists in a tap-tap sequence over the touch interface during power-up phase.
Tap-tap consist in a high frequency sequence of touch activations by simple means of the finger tapping the touch
screen performed during the power-up phase and started immediately after the device is powered on. When the
procedure succeeded the system returns a visual feedback, the text: “Tap Tap detected, Going to Config Mode” is
displayed in page.
l BIN file procedure: this procedure consists in the use of an SD Card, containing a specific file, called
“$0030D8$.bin”. Copy the BIN file into the SD Card, then insert the card into the proper slot on the device. Power on
the device, when the file is detected the system returns a visual feedback, the text: “Tap Tap detected, Going to
Config Mode” is displayed in page.
Warning: if you are updating a Series Glass Device it is necessary to use the BIN file procedure
630 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
50 Updating system components in
HMI devices
Most of the system software components can be easily upgraded ensuring a high degree of flexibility in providing updates
and fixes to existing and running systems.
l Directly on HMI device using an USB flash drives (see "System Settings" on page 593 for details)
l From JMobile Studio application (see "Update of system components from the application" on the next page for
details)
Each HMI device is labeled with a product code including all factory settings (hardware, software and firmware
components). Refer to this label for information on your HMI device. The HMI device update tool also provides detail on the
components actually running on the device.
CAUTION: Make sure you use the correct upgrade files, since loading upgrade files unsuitable for
your device will cause serious system malfunction. Always check your device product code.
Note: Upgrade files are distributed upon request as a part of technical support activity.
Service call: Downgrade operations are complex tasks which might cause serious damage to your equipment if
not performed correctly. These operations are reserved to technical support.
Settings 633
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 631
Update of system components from the application
1. Select the folder that contains the files to download to the HMI device or where to upload files from the HMI device
2. Select one or more HMI device.
3. Select the components that you will download (or upload) to/from the devices
4. Start the Download to HMI or the Upload from the HMI operation
Note:
l The tool is designed to update multiple HMI devices of the same type. Please avoid putting files for different device
type into the same folder
l If the desired target IP is not listed, type it directly into the box. The discovery service is a broadcast service. When
a remote connection is done via VPN or from external networks, it will not work and you will have to enter the
address manually.
l Download of the selected components will be performed only to the compatible devices
l Based on your network and hardware capabilities you can increase the number of devices to update in parallel
l You need to restart the HMI device to finalize the update.
632 JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A.
50 Updating system components in HMI devices
Settings
From the Settings tab you can specify the Port and the Password parameters to use to communicate with the HMI
devices. Leave Password empty if no password is set on the HMI device side.
WARNING: Bulk mode is working only with the HMI devices that have the same connection
parameters
The image used as splash screen must comply with the following requirements:
Filename splash.bmp
1. Rename the new image splash.bmp and copy it in the source folder.
2. Select HMI devices
3. Click Download.
To ensure the best visual results, splash screen images must have a black background.
JMobile Studio | User Manual | v400 (2020-02-04) | EN | © 2009-2020 Exor International S.p.A. 633
Exor International S.p.A.
Via Monte Fiorino, 9
JMobile Studio 37057 San Giovanni Lupatoto (Verona)
User Manual Italy
4.00 info@exorint.com
2020-02-04 phone: +39 045 8750404
fax: +39 045 8779023
Copyright © 2009-2020