Exor JMobile Suite

Add to my manuals
487 Pages

advertisement

Exor JMobile Suite | Manualzz

JMobile Suite

User Manual

2.06

© 2009-2017 Exor International S.p.A.

Subject to change without notice

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.

Microsoft

®

, Win32, Windows

®

, Windows XP, Windows Vista, Windows 7, Windows 8,

Visual Studio are either registered trademarks or trademarks of the Microsoft

Corporation in the United States and other countries. Other products and company names mentioned herein may be the trademarks of their respective owners.

The example companies, organizations, products, domain names, e-mail addresses, logo, people, places, and events depicted herein are fictitious. No association with any real company, organization, product, domain name, e-mail address, logo, person, place or event is intended or should be inferred.

Contents

1 Getting started

Assumptions

Installing the application

2 Runtime

HMI device basic settings

Context menu options

Built-in SNTP service

2 Runtime on PC

Typical installation problems

3 My first project

The workspace

Creating a project

Communication protocols

Designing a page

The Widget Gallery

Adding tags

Exporting tags

Importing tags

Attaching widget to tags

Dialog pages

4 Programming concepts

Data types

"Attach to" parameters

Events

Widgets positioning

Managing overlapping widgets

Grouping widgets

Changing multiple widgets properties

Changing fill color property according to tag values 55

41

44

45

35

36

36

46

52

27

29

29

22

24

25

32

34

12

15

19

8

8

11

20

20

2

7

1

2

6 Project properties

Project properties pane

Developer tools

FreeType font rendering

Software plug-in modules

Behavior

Events

7 The HMI simulator

Data simulation methods

Simulator settings

Launching and stopping the simulator

8 Transferring the project to HMI device

Download to HMI device

Update package

The Runtime loader

Upload projects

System Variables

10 System Variables

Alarms variables

Buzzer variables

Communication variables

Database variables

Daylight Saving Time variables

Device variables

Dump information variables

FTP client variables

Keypad variables

Network variables

PLC variables

Printing variables

90

91

92

88

88

89

93

93

93

94

82

83

85

76

78

81

87

87

71

72

72

63

64

69

73

75

57

58

60

63

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

I

II

Remote Client variables

Version variables

Screen variables

SD card variables

Server variables

Time variables

Touch screen variables

USB drive variables

User management variables

System Variables Protocol

12 Actions

Alarm actions

Database actions

Event actions

MultiLanguage actions

Keyboard actions

Media Player actions

FTP actions

Page actions

Print actions

Recipe actions

Remote Client actions

System actions

Tag actions

Trend actions

User management actions

Widget actions

13 Using the Client application

The Client application toolbar

Workspace

Settings and time zone options

Transferring files to a remote HMI device

14 Using the integrated FTP server

161

162

170

171

175

177

181

182

145

146

146

148

148

151

155

156

182

182

183

185

99

101

141

97

97

98

142

142

95

96

96

96

96

FTP settings

15 Using VNC for remote access

Starting VNC server on WinCE devices

Starting VNC server on Linux devices

Starting VNC viewer

16 JMcloud

17 Alarms

Alarms Editor

Remote alarms acknowledge

Alarm state machine

Setting events

Active Alarms widget

Alarms History widget

Managing alarms at run time

Enable/disable alarms at run time

Displaying live alarm data

Exporting alarm buffers to .csv files

Exporting alarm configuration

18 Recipes

Managing recipes

Configuring a recipe widget

Recipe status

Uploading/downloading a recipe

Backup and restore recipes data

19 Trends

Data logging

Exporting trend buffer data

Trend widgets

History trends

Trend widget properties

Trend widget gestures

Values outside range or invalid

Showing trend values

206

207

211

211

214

215

215

216

196

197

198

200

204

205

205

206

185

187

188

189

189

191

193

194

217

218

219

220

222

223

224

225

226

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Scatter diagram widget

20 Data transfer

Data transfer editor

227

229

230

Exporting data to .csv files 232

Data transfer limitations and suggestions 232

21 Offline node management

Offline node management process

235

236

Manual offline node management process 236

Manual offline configuration

Automatic offline node detection

22 Multi-language

The Multi-language editor

Changing language

236

237

239

241

242

Multi-language widgets 242

Exporting/importing multi-language strings 244

Changing language at run time 246

Limitations in Unicode support

23 Scheduler

Creating a schedule

HighResolution schedule

Recurring schedule

246

249

250

250

250

Configuring location for schedules

Configuring the Scheduler widget

Scheduling events at run time

24 User management and passwords

Enable/disable security management

Configuring groups and authorizations

Modifying access permissions

Assigning widget permissions from page view

Configuring users

Default user

Managing users at run time

252

253

254

257

258

258

259

264

265

265

266

Force remote login

25 Audit trails

Enable/disable audit trail

Configure audit events

Configure tags for audit trail

Configure alarms for audit trail

Configure recipes for audit trail

Configure login/logout details

Exporting audit trail as .csv files

Viewing audit trails

26 Reports

Adding a report

Configuring text reports

Configuring graphic reports

Print triggering events

Default printer

275

276

277

27 Screen saver 281

28 Backup/restore of Runtime and project 283

29 Keypads 285

Creating and using custom keypads

Deleting or renaming custom keypads

Keypad type

Keypad position

30 External keyboards

Search and filter

Displayed keys

Removing action associations

287

289

289

290

291

293

293

293

Keyboard layout

Enable/disable keyboard

Associating actions to keys

31 Tag cross reference

Updating data in the Tag Cross Reference pane

294

294

294

297

270

270

271

271

272

273

274

274

266

267

268

268

269

298

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

III

IV

32 Indexed addressing

Creating an indexed addressing set

Using indexed tag set in pages

33 Storing data to external databases

Installing SQL4Automation

Configuring SQL4Automation

Configuring the HMI project

Transfer data with JavaScript

Database tables

Custom tables

Connection Limits

34 OPC UA Server

35 Special widgets

BACnet widget

Browser widget

Canvas Widget

Combo Box widget

Consumption Meter widget

Control list widgets

DateTime widget

Gesture area widget

IP Camera widgets

Javascript function block widget

Media Player widgets

Multistate Image widget

Multistate Image Multilayer widget

Network Adapters widget

RSS Feed widget

Scrolling RSS Feed widget

Table widget

TextEditor widget

Variables widget

36 Custom widgets

340

341

343

343

344

345

324

328

329

331

332

333

336

338

352

354

357

309

311

312

313

314

314

317

319

320

320

321

301

302

305

307

309

Creating a custom widget

Adding properties to a custom widget

Using structured tags

JavaScript in custom widgets

User's Gallery

37 Sending an email message

Configuring the email server

Configure emails

38 JavaScript

JavaScript editor

Execution of JavaScript functions

Events

Widget events

Page events

System events

Objects

Widget class objects

Widget properties

Widget methods

Page object

Page object properties

Page object methods

Group object

Group object methods

Project object

Project object properties

Project object methods

Project object widgets

State object

State object methods

Keywords

Global functions

Handling read/write files

391

393

393

394

394

394

405

406

381

382

384

385

385

388

390

390

406

407

407

408

369

370

370

373

375

375

377

378

358

360

362

364

366

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Limitations in working with widgets in

JavaScript

Debugging of JavaScript

39 Handling Gestures

40 System Settings

WinCE Devices

Linux Devices

41 Web access

Supported platforms and browsers

Generating page for Web access

Platform specific Home pages

Testing the Web project

Downloading the Web project

Web connectivity issues

Web supported features

Troubleshooting and FAQ

42 License activation of HMI device software modules

Activate the device

Save a license

Import a license

CODESYS Demo mode

43 Updating system components in HMI devices

Update of system components from the application

457

Settings

44 Protecting access to HMI devices

Changing password on HMI device

Ports and firewalls 462

45 Tips and tricks to improve performance 465

Static Optimization

FAQ on Static Optimization

466

469

458

459

461

462

451

452

453

453

454

454

445

446

447

450

425

441

442

442

444

444

411

411

415

417

418

Page caching

Image DB

Precaching

FAQ on precaching

46 Functional specifications and compatibility 473

Table of functions and limits

HMI devices capabilities

Compatibility

474

475

476

Converting projects between different HMI devices 477

470

470

470

470

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

V

VI

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 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

Installing the application

2

2

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 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.

Installing the application

JMobile Suite installation contains: 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

JMobile 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 platforms (computers instead of HMI devices).

JMobile Studio system requirements

JMobile Studio has the following system requirements:

Operating System

Storage

RAM

Other

Windows XP (SP2 or SP3)

Windows Vista Business/Ultimate

Windows 7

Windows 8

Windows 10

500 MB Minimum

512 MB

One Ethernet connection

Installation procedure

To install JMobile Suite:

1. Run JMobile Suite setup and click Next.

2. Read the JMobile Studio Software License and accept the agreement.

2

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

3

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.

Verifying license status

To check the status of your license:

1. Go to: https://license.x-formation.com/licenses

2. Enter your activation key and click the Log In button.

4

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

1    Getting started

Installing multiple versions of JMobile Suite

You may install different instances of JMobile Suite on the same computer. Each installation has its own settings and can be uninstalled individually.

Three installation scenarios are possible:

Installation scenario

First installation of JMobile Suite in the system

Results

Software is installed in the specified destination folder

Current version can be replaced or maintained.

System with only one instance of JMobile Suite already installed

System with multiple instances of JMobile Suite already installed

Last version installed can be replaced or 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.

Each installation is listed separately in the Windows Start menu.

Opening older projects

When opening a JMobile Studio project (.jpr file) created with an older version of the software JMobile Studio asks to convert the project to the current version:

Option

Convert and overwrite current project

Select a new location before converting the project

Description

The project is converted without a backup copy of the original version

The project is copied inside the specified folder and then 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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

5

Installing the application

Multilanguage for JMobile Studio

JMobile Studio is available in multiple languages. All languages are installed by default as part of JMobile Suite.

The default language is English. To change it go to Help > Change Language.

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.

Note: Crash reports are unavailable in Windows XP.

6

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

2 Runtime

JMobile HMI Runtime is designed to support different platforms and different operating systems.

HMI device basic settings

Context menu options

Built-in SNTP service

8

8

11

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

7

HMI device basic settings

HMI device basic settings

HMI devices are delivered from factory without Runtime. If no Runtime is installed on the device, see

"The Runtime loader" on page 81

for details.

Runtime modes

The JMobile HMI Runtime is composed of two logic units: l l

Server: runs communication protocols, collects data, monitors alarms, drives trend buffer sampling.

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.

The server unit works in two operating modes: 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.

Context menu options

On the HMI device press and hold on an empty area of the screen for a few seconds to display the context menu.

Zoom In/Out

Select view size at run time

Pan Mode

Enables/disables pan mode after a zoom in

8

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

2    Runtime

Settings

Main parameters

Context Menu Delay

(s)

Show Busy Cursor

Use keypads

Keep retentive data on project download

Password

Description

Context menu activation delay. Range: 1–60 seconds.

Display an hourglass when the system is busy

Display keypads when user touches a data entry field.

Set to disable when an external USB keyboard is connected to the device.

Preserve the content of the retentive data at project download or update.

Define password  protected operations amongst the following: l

Download Project/Runtime l

Upload project l

Board management (BSP Update)

See  "Protecting access to HMI devices" on page 461

for details.

Project Manager

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

9

Context menu options

This tool allows you to: l unload the current project l l load another project delete a project.

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 78 for 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.

Show log at boot

This function enables the logger at start up. If the Log to file option has been enabled, log files are saved from startup.

Logout

Logs off the current user.

Show system settings

Allow the HMI settings and the management of system components. See

"System Settings" on page 417

for details.

HMI Cloud Enabled

Open the HMI Cloud Enabler.

10

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

2    Runtime

Developer tools

Utility functions for debugging at run time. It is visible only if enabled in the Project Properties (see

"Developer tools" on page 60

for details)

About

This function shows information about the Runtime version.

WARNING: Context Menu action has no effect if executed from a dialog page.

Built-in SNTP service

The HMI device features an integrated SNTP that synchronizes the internal real-time clock panel whenever the predefined server is available. The system searches the SNTP server when turned on, or once a week if the HMI device is not turned off.

Use HMI device

"System Settings" on page 417

to configure the service.

Availability: BSP v1.76 ARM / 2.79 MIPS or higher

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

11

Built-in SNTP service

2 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.

JMobile PC Runtime system requirements

JMobile PC Runtime as the following minimum system requirements:

Operating System

Storage

RAM

CPU

Graphic

Other

Windows XP Professional

Windows XP Embedded

Windows Embedded Standard (WES 2009)

Windows Vista Business/Ultimate

Windows 7 Professional

Windows Embedded Standard 7

Windows 8

Windows Server 2003

256 MB Min

512 MB min. 300 MHz Pentium III or similar processors with 500 MHz.

min. SVGA

One Ethernet connection

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.

Multiple instances of JMobile PC Runtime

JMobile PC Runtime can run in multiple instances. Copy the installation folder to a writable location and double-click on the

HMI application in each folder to start it.

12

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

2    Runtime on PC

The port used by JMobile PC Runtime can be changed from the Settings dialog. Restart the application to apply the port change.

Licensing

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.

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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

13

Built-in SNTP service

See

"Installing the application" on page 2

for instructions on how to verify the activation status.

Limitations

The following features are not supported in JMobile PC Runtime:

Function Feature NOT supported

Manage Target

Board section

System Mode/ User Mode

Tap sequence and rotating menu

VNC/PDF readers

Backup/Restore

Protocols

Non-standard computer software

Backup and restore functions. Standard computer software can be used for the purpose.

Serial protocols requiring special hardware.

See

"Functional specifications and compatibility" on page 473

for more details.

Fullscreen mode

JMobile PC Runtime can start in fullscreen mode or in a window.

To switch to full screen:

1. Right click in the JMobile PC Runtime main window to display the context menu.

2. Choose Full Screen.

The workspace folder

When using JMobile PC Runtime, project files are stored in a workspace folder in:

%appdata%\Exor\[build number]\server\workspace

where [build number] is a folder named as build number (for example, 01.90.00.608).

14

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

2    Runtime on PC

Typical installation problems

Important: Make sure that ports 80/HTTP and 21/FTP are not blocked by the firewall.

If a port is in use and a conflict is detected a dialog is displayed to allow the user to change the default ports.

See

"Protecting access to HMI devices" on page 461

for details.

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.

Issues with port numbers

JMobile PC Runtime uses ports 80 and 21 by default. If at least one is occupied a warning message is displayed:

Make sure that when you change this port you also change the port used for download to HMI device in JMobile Studio. 

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

15

1. From the Download to Target dialog select Advanced.

2. Modify the port number to match that set on JMobile PC Runtime.

Typical installation problems

3. Click OK to confirm: you can now download you project to the JMobile PC Runtime.

Restoring port information

If information about changes made on JMobile PC Runtime listening ports has been lost, the following error message is returned: 

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.

16

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

2    Runtime on PC

Bypassing firewall or antivirus blocks

If JMobile Studio is running on the same machine as the JMobile PC Runtime, your firewall or antivirus may block the connection from JMobile Studio to JMobile PC Runtime.

1. From the Download to Target dialog manually type-in the localhost IP address 127.0.0.1.

2. Click Download

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

17

Typical installation problems

18

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

3 My first project

This section describes how to create a simple JMobile Studio project.

The workspace

Creating a project

Communication protocols

Designing a page

The Widget Gallery

Adding tags

Exporting tags

Importing tags

Attaching widget to tags

Dialog pages

27

29

29

32

34

20

20

22

24

25

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

19

The workspace

Workspace areas

JMobile Studio workspace is divided into the following main areas:

The workspace

Area

Project View

Object View

Working Area

Properties

Widget Gallery

Tag cross reference

Description

Project elements in hierarchical project tree.

Tree view of widgets organized by page.

Space where pages are edited. Tabs at the top of the area show all open pages.

Properties of selected object.

Library of graphic objects and symbols.

List of locations where a given tag is referenced.

Note: The workspace layout can be changed at any time, changes are saved and maintained through working sessions.

Resetting the workspace layout

To restore the default layout, use the File > Reset and Restart function.

Creating a project

Path: File> New Project

20

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

3    My first 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. Click Finish to complete the Wizard.

Portrait rotation exceptions

The following elements are not rotated in portrait mode.

Element

Operating system dialogs

ContextMenu and related dialogs

Video

JavaScript

Dialog pages

Scheduler

Macro

External applications

Description

System settings and system dialog

Project Manager, About, Settings, Logging, Backup

IPCamera, MediaPlayer

Alert and Print function

“Title” of dialog pages

Dialogs for data entry

ShowMessage, LunchApplication, LunchBrowser

PDF Reader, VNC

HMI devices based on Linux platform can be rotated from the BSP (see "Displays" tab from the

"System

Settings" on page 417"Linux Devices" on page 425 page) without these limitations.

Changing the device model

Once you have developed your project you can still change the device model, from the Project Properties pane. This will not resize the widgets, but will relocate them on the screen. A warning will be displayed if some objects cannot be relocated.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

21

Communication protocols

Copying, moving, renaming a project

JMobile Studio projects folder contain all the files of the project: to move, copy or backup a project, move or copy the project folder to the desired location.

To rename a project use the File > Save Project As function: this operation might take a few minutes.

WARNING: Do not rename the project folders manually.

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.

22

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

3    My first project

Adding a protocol

1. Click +.

2. Select the protocol from the PLC list and enter the required values.

Changing protocol settings

To change configuration parameters, click the browse button in the Configuration column.

Protocol parameters

Click Show Advanced Properties icon to see all parameters.

Parameter

Dictionaries

Enable Offline AlgorithmOffline Retry

Timeout

Description

Tags imported for the protocol.

See

"Importing tags" on page 29

for details.

See

"Automatic offline node detection" on page 237

for details.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

23

Designing a page

Parameter

Version

Description

Protocol version available in JMobile Studio for selected HMI device.

Designing a page

Path: ProjectView > Pages

When a project is created, the first page is automatically added and shown in the Page Editor.

Adding objects to a page

Drag and drop objects from Widget Gallery to the page.

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.

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.

24

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

3    My first project

Group of pages

You can group similar pages for easier maintenance. Grouping pages does not affect how pages appears at run time. 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.

The Widget Gallery

Path: View> Toolbars and Docking Windows> Widget Gallery

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.

Adding a widget to a page

1. Select the widget from the Widget Gallery.

2. Drag and drop it on the page.

Changing the appearance of a widget

All widgets have properties (Properties pane) that can be changed, Some widgets are presented in various styles. You can click the buttons in each category to see available styles.

Example

To set the widget style for round gauges:

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

25

1. Click the style button to display the available styles for the widget.

The Widget Gallery

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.

26

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

3    My first project

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.

See

""Attach to" parameters" on page 36

for details.

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: new tags are named Tag1, Tag2, ....

3. Click on the tag name to rename it.

Tag properties

See specific protocol documentation for details.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

27

Adding tags

Property Description

Name

Unique tag name at project level. Primary key to identify information in the runtime tag database.

WARNING: Duplicate tag names are not allowed.

Groups

Driver

Group names associated to a tag

Communication protocol

Address

Controller memory address.

To edit click on the right side of the column to get the dialog box where you can enter the address information.

Encoding

Encoding type for string data type (UTF-8, Latin1, UTF-2 and UTF-16)

Comment

Tag description

Simulator

Tag behavior during simulation. Several profiles are available.

Scaling

Conversion applied to tag before database storage.

By formula = defined as a linear transformation.

By range = defined as a range conversion.

The below properties will be visible only after select the “Show Advance Columns” mode from the tag editor tollbar..

Property Description

PLC

Tag

Name

Rate

(ms)

Original PLC tag name, used to match tags used by HMI application (Tag Name) and tags exported from PLC

R/W only in advanced view to allow for adjustments in case tag import errors.

Tag refresh time. Default: 500ms.

WARNING: Tags refresh rate is the maximum refresh rate. Actual refresh rate depends on: communication type (serial, fieldbus, Ethernet), protocol, amount of data exchanged.

R/W

R/W tag attribute (R/W, R or W).

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.

Active

Update mode.

false = tags are read from controller only when required by the HMI device.

true = tags are continuously read even if not required by the displayed page.

Important: Leave this value set to false for higher communication performance.

28

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

3    My first project

Managing tag names

Tag names must be unique at project level. If the same tags, from the same symbol file have to be used for two different controllers, use the “Alias” feature to add a prefix to the imported tags and make them unique at project level.

Note: Not all protocols support the “Alias” feature.

Managing tag groups

Tags used in each page are identified as part of a group, so that requests made by the communication protocol to the connected controller(s) can be processed faster: only the tags included in the displayed page are polled from the controller.

Exporting tags

Path: ProjectView > Tags

1. Select the protocol for the tags you want to export.

2. Click the Export Tags button: all the tags configurations for the selected protocols are exported into an .xml file.

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).

Importing is a two step process:

1. Import of the tag definition into a dictionary

2. Import tags from the dictionary to the project

WARNING: Special characters in tag names such as “&” character cause communication errors. See

"Limitations in Unicode support" on page 246

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

29

Importing tags

Note: When importing tags, character "." in tag names is replaced with "/" . The protocol will use the correct syntax when communicating to the PLC.

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.

Linear view

Hierarchical view

Importing tags

To import tags from an external file:

30

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

3    My first project

1. In ProjectView, Tags select the protocol from the filter list.

2. Click the Import Tags button: the select file dialog appears. A dialog to choose the importer type appears.

3. Select the file: a list of tags is shown in a linear or hierarchical view.

4. To import tags, select one or more tags or a node (hierarchical view only) and click the are copied to the project and listed in the upper window section.

Parameter

Recursive

Description

All elements of the structure are imported into separate tags.

Import tag button: tags

Note: 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.

Updating the imported tags

Using the Update Tag(s) command you can re-import tags. A dialog allows you to select the tags to be reimported:

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

31

Attaching widget to tags

These tags need to be updated. A 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.

Attaching widget to tags

To control a widget and animate it through live data it is possible to bind a specific property to different data sources. For example it is possible to bind the gauge Value property to a probe temperature tag, or the Display property to a recipe data

Data sources

Elements to which an object property can be attached:

Data source

Tag

Alias

System

Widget

Recipe

Description

Tag defined in the Tag Editor

Indexed tag address

Predefined system tags (see

"System Variables" on page 85

)

Connect to a widget property (for example, value of a slider widget)

Data from the Recipe Manager (see

"Recipes" on page 211

)

32

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

3    My first project

Attaching a property to a tag

1. Click + in the Properties pane.

2. In Source choose the data source, in the list choose a protocol and the tag. Use the Search box to filter 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.

See

""Attach to" parameters" on page 36

for details.

Communication Error

Two icons may appear close to widgets that have an attached tag.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

33

Dialog pages l l

: communication error

: data not yet available (slow communication protocol)

Dialog pages

Path: ProjectView> Web > Dialogs

Dialog pages are opened at run time on top of the current page on project request. They are used to notify alarms, errors or to require user action.

Main dialog properties

Property

Dialog Type

Title Bar

Title Name

Runtime

Position

Description

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.

true = dialog title displayed

false = no dialog title displayed

Dialog title. Only if Title Bar=true.

Dialog fixed position

false = Dialog will be placed centered on the screen

true = Dialog will be placed with upper-left corner at position X and Y

Maximum number of dialogs

Maximum number of open dialogs is defined in

"Functional specifications and compatibility" on page 473 .

When the maximum number of open dialogs is reached, the oldest dialog is closed to open the new one.

34

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

4 Programming concepts

Programming for JMobile Studio is based on a few basic concepts and behaviors.

Data types

"Attach to" parameters

Events

Widgets positioning

Managing overlapping widgets

Grouping widgets

Changing multiple widgets properties

36

36

41

44

45

46

52

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35

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 [ ])

Data Type boolean byte double float int short string

Description

One bit data (0..1)

Signed 8 bit data (-128..127)

IEEE double-precision 64-bit floating point type (±2.2e-308 ... ±1.79e308)

IEEE single-precision 32-bit floating point type (±1.17e-38 ... ±3.40e38)

Signed 32 bit data (-2.1e9 ... 2.1e9)

Signed 16 bits data (-32768..32767)

Characters coded according to selected format

time

Time data

unsignedByte

Unsigned 8 bit data (0..255)

unsignedInt

Unsigned 32 bit data (0 ... 4.2e9)

unsignedShort

Unsigned 16 bit data (0..65535)

uint64

Unsigned 64 bit data (0...264 − 1)

"Attach to" parameters

Object properties

In JMobile Studio the properties of an object placed on a page can be set at programming time or configured to be dynamic.

To change a property at programming time use the page toolbar or the property pane. Select the object first to see its properties displayed.

36

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

4    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.

To change a property value dynamically you can attach it to tags or variables.

Attaching a property to a tag

1. Click + in the Properties pane.

2. In Source choose the data source, in the list choose a protocol and the tag. Use the Search box to filter 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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

37

Data sources

Elements to which an object property can be attached:

Data source

Tag

Alias

System

Widget

Recipe

Description

Tag defined in the Tag Editor

Indexed tag address

Predefined system tags (see

"System Variables" on page 85

)

Connect to a widget property (for example, value of a slider widget)

Data from the Recipe Manager (see

"Recipes" on page 211

)

Advanced search

Various syntax options can be applied to search box:

"Attach to" parameters

Main options

Function

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.

Regular

Expression

Describes character pattern. See http://www.regular-expressions.info/

Filtering tags

Choose various tag filter criteria:

38

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

4    Programming concepts

Showing dictionary tags

When Show all tags is checked, tags that belong to one dictionary but have not been imported yet, appear in blue color.

You can select and double-click a tag to import it into the project.

Converting tag value

Scaling tab converts the tag value. In By Range section set the input and output range: the system will automatically calculate the scaling factors.

Extract tag bit/byte based on index

Allows extracting a single bit or byte content from a word depending on the specified bit or byte number

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

39

"Attach to" parameters

Mapping tag values to color

Allows you mapping numeric tag values to colors. You can use this option to change the color of a button.

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.

Last defined color combination is saved automatically and can be retrieved from the color toolbar.

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

40

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

4    Programming concepts

The data link format is:

Tagname [index] | [Atribute] | [XForm] | [XForm] | ...

Example: l l arrayTag[2]

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)

Events

Events are used to trigger actions at project level and can be associated to: l buttons / touch (click, press, release) l l external input devices like keyboards and mouse (click, press, hold, release, wheel) data changes (OnDataUpdate) l switch of pages (OnActivate, OnDeactivate) l alarms l scheduler

You can attach one or more actions to an event, so that they will be executed whenever the event occurs.

This example shows a JavaScript action activated by pressing a button.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

41

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 57 .

42

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

4    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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

43

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

To display the grid, on the View menu, click Show Grid.

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.

Setting grid properties

Path: View> Properties

Parameter

Spacing X

Spacing Y

Type

Color

Description

Space in pixel between two lines/dots on the X axis

Space in pixel between two lines/dots on the Y axis

Grid type (dot or line)

Grid color

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:

44

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

4    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.

Managing overlapping widgets

When one or more widgets on the page overlap, you can manage their order so that one is displayed on top of the other.

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 run time performance since overlapping dynamic widgets can invalidate static optimization and reduce performance of HMI applications.

Hiding/showing widget on z-order

To hide widgets above a selected widget: l

On the toolbar click and select a widget: all widgets above this one are hidden

To hide widgets below a selected widget: l

On the toolbar click and select a widget: all widgets below this one are hidden

The toolbar allows to: l hide widgets stacked above and/or below selected widgets l work on different widgets using the combo box which lists all the widgets in their z-order.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

45

Grouping widgets

Grouping widgets

To group widgets:

1. Select all the widgets to group.

2. Right-click and then click Group.

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

Resizing grouped widgets

You can define how object reacts when re-sized. Use the Scaling property in General section: l

Scale: object and text are not re-sized proportionally l

Stretch: object and text are re-sized proportionally

Grid Layout Group

The grid layout add the possibility to configure the spatial relationships among the widgets of the group.

To create a grid layout:

46

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

4    Programming concepts l

Enable the "Grid Layout" parameter of the group of widgets.

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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

47

Grouping widgets

Grid Properties

Parameter

Enable

Num rows

Num columns

Horizontal overflow

Vertical overflow

48

Description

Enable the grid layout.

A grid will be generate around the widgets of the group

Number of rows and columns of the grids.

Rows and columns can be removed only if their cells are empty .

This parameter define the behavior of the grid when it is too small 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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

4    Programming concepts

Parameter

Horizontal underflow

Vertical underflow

Description

This parameter defines the behavior of the grid when it is larger 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 l

Left, Center, Right - Top, Middle, Bottom

Defines the position of the widgets when cells are bigger than the maximum defined sizes

Parameters to define look and position of the scroll bars

Scrollbar color

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.

External margin parameters

External margin width

External margin color

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) l

Double click on ribbon to split the selected row or column (2)

Rows, Columns Properties

Row and columns properties are available inside a pop up dialog after clicking on the row and column selectors, that are visible after double clicking the group of widgets.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

49

Grouping widgets

Geometry parameters

Parameter

Left margin

Right margin

Min width

Max width

Stretch

Top margin

50

Description

Distance of the widget from the border of the cell

Min/Max width that widget can assume when the cell is stretched

Defines the relationship between the widths of the columns that will be maintained if the grid is stretched

Distance of the widget from the border of the cell

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

4    Programming concepts

Parameter

Bottom margin

Min height

Max heighty

Stretch

Description

Min/Max height that widget can assume when the cell is stretched

Defines the relationship between the heights of the rows that will be maintained if the grid is stretched

Style parameters

Parameter

Left stroke width

Right stroke width

Top stroke width

Bottom stroke width

Left stroke color

Right stroke color

Top stroke color

Bottom stroke color

Background color

Description

Strokes width

Strokes color

Row background color

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 345

for details)

Parameter

Forground color

Background color

Stroke color

Description

Colors that the row assume when it is selected

The list of colors is related with row templates. First color is for row template 0, second color is for row template 1, and so on.

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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

51

Changing multiple widgets properties

Parameter

Horizontal underflow

Vertical underflow

Description

This parameter defines the behavior of the widget when the cell is 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

Overwrite global grid parameters

Max width

Max height

Left margin

Right margin

Top margin

Bottom margin

Preserve aspect ratio

Aspect ratio

Overwrite global grid parameters

Additional pixels that are added to the total margin.

Preserve aspect ration of the widget

Available only when "Preserve aspect ratio" is true

Changing multiple widgets properties

You can set the properties of more widgets of the same type all at once.

To change properties:

52

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

4    Programming concepts

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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

53

Changing multiple widgets properties

54

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Changing fill color property according to tag values

JMobile Studio allows to change the color property of a widget dynamically, based on tag values in two ways: l l

Using ColorPalette

Connecting the Color property to a String type tag 

Changing color property using ColorPalette

1. Create the tag (internal or PLC) that you want to refer to for color management. The tag can be of any data type. On the basis of the value of this tag, the color will change.

2. Attach this tag to the Fill Color property of an object (for example, a button). 

3. In the same dialog select the ColorPalette tab and add the colors that will be used for the object according to the tag value. 

Note: The last used colors’ tables are saved and can be reused selecting them from the colors list box on the toolbar.

Changing color property connecting Color property to a String type tag 

1. Create the tag (internal or PLC) that you want to refer to for color management. On the basis of the value of this tag, the color will change. The tag must be of String type and the Arraysize property of the tag must be big enough to contain the string formatted as explained here. 

2. Attach this tag to the Fill Color property of an object (for example, a button). 

3. Write in the String tag the RGB color code of the required color. Use one of these formats: 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 run-time 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.  

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

55

Changing fill color property according to tag values

56

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

6 Project properties

Project properties contain settings for the project.

Project properties pane

Developer tools

FreeType font rendering

Software plug-in modules

Behavior

Events

58

60

63

63

64

69

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

57

Project properties pane

Path: ProjectView> double-click Project properties> Properties pane

The project Properties pane contains a list of project level user-configurable data.

Project properties pane

Basic and advanced properties

To view all project properties: l

Click Show Advanced Properties button to expand the property view in the Properties pane.

Main properties description

Note: Some properties are displayed only in advanced mode.

58

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

6    Project properties

Property

Version

Context Menu

Developer Tool

Buzzer on Touch

Buzzer duration

Keyboard

JavaScript Debug

Allow JS Remote

Debugger

Description

The Version field is available for users to report the project version.

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

on macro command = context menu appears only via Context menu action.

See

"Widget actions" on page 177

for details.

Enable/disables a collection of runtime debugging utility tools.

Enables buzzer when touching a widget on HMI device screen.

Supported widgets: l l buttons hotspots l needles l fields l l external keys combo boxes l tables items l control list items

On Windows CE panels, available for from v1.76 ARM / 2.79 MIPS.

Default 200 ms

Enables the use of keyboard macros at run time when using external keyboards.

Enables the JavaScript debugger at run time for the current project.

Enables JavaScript remote debugger for current project.

Remote debugging not supported on JMobile Client.

Hide Project Loading at boot

When hidden, the splash screen stay on the screen until the application is ready to run.

Available for Windows CE from v1.99 ARM

Image DB enable

Activates an engine used by the Runtime to optimize project performance.

WARNING: This property should only be disabled by technical support for debugging purposes since this might reduce performance at run time.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

59

Developer tools

Property

FreeType Font

Rendering

Software plug-in modules

Behavior

Style

Description

Switches to FreeType the font rendering used by JMobile Studio and runtime.

Defines which software modules are downloaded to the Runtime with the project. See

"Software plug-in modules" on page 63

These properties define different aspects of page behavior. See

"Behavior" on page 64

Combo Box View Mode (see

"Combo Box widget" on page 324

for details) l

Context l

Full Screen

Developer tools

Collection of runtime debugging functions that can be enabled or disabled.

Enabling developer tools

1. In Properties pane, set Developer Tools to true.

2. Download the project.

3. Open context menu.

4. Select Developer tools.

Developer tool list

Tool Description

Show/Hide all

Shows a dialog containing information about device status like CPU load, memory usage, event queues.

Shows information on CPU load. See

"CPU Statistics" on the facing page

.

CPU statistics

Memory statistics

Shows information about system RAM . A negative value indicates that free memory is decreasing.

Event queues

Timelog summary

Embed window

Reset queue stats

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.

Show page loading time.

Allows embedding in runtime the scene or leave the developer tool window as a standalone window

(dialog).

Resets statistical information on event queues.

60

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

6    Project properties

Tool

Disable watchdog

Description

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.

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" on the next page

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.

Important: Save this file for technical support.

CPU Statistics

On the top row the current machine time is shown along with the total device uptime.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

61

Developer tools

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

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).

Profiling option

Enable timelog

Save timelog to file

Overlay OnLoad times

Overlay Rendering times

Select overlay color

Description

Enable timelog capture. Timing will be visible inside the “Timelog summary” window.

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.

Important: The execution of this function may reduce page change performance.

This view allows displaying time spent on single widgets and is available only for 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 Win32 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

Select the overlay color to use

62

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

6    Project properties

Timelog data

Data

Time parsing

Time gfx creation

Time rendering

Time unloading

Description

Time spent parsing current page. Depends on page complexity/number of widgets.

Time spent for image rendering. Mainly related to the Onload method.

Time spent rendering the page.

Time spent unloading the page, if current page depends from another page.

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.

FreeType font rendering

New projects use the FreeType font engine as default. Projects created with older versions of JMobile Studio could use an older font engine also after project conversion to avoid any backward compatibility issue.

Switch to FreeType whenever possible for better page rendering.

Once you have switched to the new font rendering, save the project and verify that all texts are displayed correctly in all project pages.

Font rendering issues

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)

Software plug-in modules

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 Win32 platform

Software plug-in:

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

63

Behavior l

WebKit (module required by browser widget – if available) l

PDF Reader l

VNC Server

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: l install Runtime/update Runtime l update package

To remove plug-ins from runtime use one of the following functions in System Mode: l l format flash 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 Win32 platform.

Behavior

These properties define various elements of page behavior.

Home Page

The first page loaded at run time (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 257

for details.

Page Width/Page Height

Defines the default size in pixel of an HMI page. Default is the display resolution of the HMI device model selected when creating the project.

Display Mode

Defines HMI device orientation.

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.”

64

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

6    Project properties

Panel Memory

Size of the available internal panel memory.

PageRequest, CurrentPage and SyncOptions

It is possible to have JMobile HMI Runtime exchange devices information on the page shown by the HMI. You can synchronize pages shown on the HMI device and on JMobile Client or to control an HMI project from a controller such as a

PLC.

The following properties can be customized:

Property Description

PageRequest

Page to be shown on the HMI device and on JMobile Client.

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.

CurrentPage

Page number displayed on the HMI device or on JMobile 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.

Options can be: l

disable: page number value is ignored, l l

local: page number displayed on HMI,

remote : page number displayed on JMobile Client.

l

local + remote: page number displayed on HMI and on JMobile Client, if different pages are displayed the last page loaded is considered.

Example: forced page change from controller/PLC to HMI device and JMobile Client

Set properties as follows:

PageRequest

CurrentPage

SyncOptions

attached to tag "A" empty disable

Set value of tag "A" to display the requested page on HMI device and JMobile Client.

Example: forced page change from controller/PLC to HMI and JMobile Client. Read current page loaded on HMI

Set properties as follows:

PageRequest

CurrentPage

SyncOptions

attached to tag "A" attached to a tag "B" as read/write local

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

65

Behavior

Set value of tag "A" to display the requested page on HMI device and JMobile 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 JMobile Client. Read current page loaded on JMobile Client.

Set properties as follows:

PageRequest

CurrentPage

SyncOptions

attached to tag "A" attached to a tag "B" as read/write remote

Set value of tag "A" to display the requested page on HMI and JMobile Client. Tag "B" will contain the number of page currently shown by JMobile Client.

Example: forced page change from controller/PLC to HMI device and JMobile Client. Force JMobile

Client page synchronization with HMI device (not vice versa).

Set properties as follows:

PageRequest

CurrentPage

SyncOptions

attached to a tag "A" as Read/Write attached to the same tag "A" as per PageRequest local

Set value of tag "A" to display the requested page on HMI and JMobile Client. Change page on HMI to display the same page on JMobile Client.

Example: forced page change from controller/PLC to HMI device and JMobile Client. Force HMI page synchronization with JMobile Client (not vice-versa).

Set properties as follows:

PageRequest

CurrentPage

SyncOptions

attached to a tag "A" as read/write attached to the same tag "A" as per PageRequest remote

Change value of tag "A" to display the requested page on HMI and JMobile Client. Change page on JMobile Client to display the same page on HMI.

Example: synchronize displayed page between HMI device and on JMobile Client

Set properties as follows:

PageRequest

CurrentPage

SyncOptions

attached to a tag "A" as read/write attached to the same tag "A" as per PageRequest local+remote

Changing page on HMI device, same page will be shown on JMobile Client and vice-versa.

66

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

6    Project properties

WebPageRequest

You can synchronize pages shown on the JM4Web Clients from a controller such as a PLC.

The following properties can be customized:

Property Description

WebPageRequest

Page to be shown on the JM4Web Client.

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/Autorepeat Time

Defines the values for hold time and autorepeat time for buttons and external keyboards.

Note: These properties can be redefined for each button or key in their widget property table.

Web Inactivity Timeout

Defines a timeout for JM4Web client. When the timeout expires without any activity the current user is logged out.

Range

Default value

Values

1–86400 s (form 1 s to 24 h)

600 s

0 = disabled

Web Icon

The favorite icon associate at the web pages

Refresh Time

Defines the refresh time for the communication between the runtime and JM4Web clients.

Range

Default value

500–10000 ms

3000 ms

Browser Optimization

true

Web engine optimization enable (default)

false

Web engine optimization disable (useful for old browsers that not support the web engine optimization)

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

67

Behavior

Enable Global JavaScript for remote

Define if the JavaScrip code defined inside the Project Properties, general triggered from Alarms and Schedulers events, have to run only on local HMI device or even on remote clients.

None

Client

Web

Both

Will not be executed on remote clients (run only inside the local HMI device)

Will be executed on JMobile Client

Will be executed on Web client

Will be executed on both JMobile Client and Web clients

getClientType

project.getClientType()

The JavaScript “getClientType” return the “Enable Global JavaScript for remote” value.

l

0 = None l l

1 = Client

2 = Web l

3 = Both

Use this function inside JavaScript at page level.

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 mode

Auto

SSE

Long Polling

The connection mode is selected by the client (default)

Force the Server-Sent Events mode

Force the Long-polling mode

Target Zoom Factor

It is the zoom factor of the HMI device that will be applied when project is loaded at run time.

Range

Default value

0.3–2.9

1 = no zoom

Background color option

When the defined page is smaller of the entire display area, colorize the area that is not covered from the page (for example when page is Zoom Out)

68

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

6    Project properties

Property

None

Selected color

Page background

Description

Old mode, color is white (default)

Color to use

Auto adjust color based on background of template or of page

Events

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 StepTag to increase/decrease a tag value.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

69

Events

70

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

7 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.

The HMI simulator supports: 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.

Data simulation methods

Simulator settings

Launching and stopping the simulator

72

72

73

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

71

Data simulation methods

Data simulation methods

Set tag simulation behavior in the Simulator field of Tag Editor.

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

Wave

Triangle

Wave

Square

Wave

A sine wave value is generated and written to the tag value. Min, Max and Period values can be defined for each tag.

A triangle wave value is generated and written to the tag value. Min, Max and Period values can be defined for each tag.

A square wave value is generated and written to the tag value. Min, Max and Period values can be defined for each tag.

See

"Adding tags" on page 27

for details.

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.

Changing simulated protocols

1. Click the simulator Settings icon.

72

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

7    The HMI simulator

2. Select Use Simulation to use simulated protocols, otherwise real protocols will be used for communication with external devices.

Launching and stopping the simulator

To launch the simulator:

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.

To stop the simulator:

1. On the Run menu, click Stop Simulator or on the simulated page double-click the Exit button.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

73

Launching and stopping the simulator

74

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

8 Transferring the project to HMI device

To transfer the JMobile Studio project to the target HMI device you can use: l function Run > Download to Target l function Run > Update Package with the use of a USB device

Download to HMI device

Update package

The Runtime loader

Upload projects

76

78

81

82

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

75

Download to HMI device

Download to HMI device

Path: Run> Download to Target

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 8

for details on how to assign an IP address.

1. Click the discovery button: a list of the detected IP addresses is displayed.

2. Select the HMI device 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

Download only changes

Binary format

Description

Transfers to the HMI device only the modified project files.

Download files using binary format.

76

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

8    Transferring the project to HMI device

Option

Delete runtime dynamic files

Description

Modified configuration of recipes, users, schedulers, etc. done at run time will be deleted and overwritten by the configuration defined in the project.

CAUTION: This operation cannot be undone, deleted dynamic files cannot be restored.

CAUTION: Dynamic files are not deleted if stored on external devices (USB or

SD Cards).

Download Web

Project

Download the JM4Web pages to HMI device.

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.

Changing HMI device connection settings

Path: Run> Manage Target

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

77

Update package

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

Managing big projects

For successful download the project size should be at least 2 MB smaller than the available memory. If not, you run out of flash memory in the HMI device and a warning message is displayed.

To free more memory:

1. Click Manage Target.

2. Delete the projects you no longer need t to make more memory available.

Update package

To install or update JMobile HMI Runtime and project you may create a package to be loaded via USB.

78

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

8    Transferring the project to HMI device

Important: Always include both project and the Runtime in the update packages.

If you need to use an old project with the latest Runtime version, convert the project first. See

"Installing the application" on page 2

for details.

Creating an update package

Path: Run> Update Package

Option

Target

Project

HMI Runtime &

Plug-In

Binary Format

Web Project

Set Target

Password

Description

HMI device type. Selected automatically if the project is open.

Adds open project to update package.

HMI Runtime is added to the update package. If the project is open the required plugins are also added to update package.

Download files using binary format.

Download the JM4Web pages to HMI device.

Sets password to perform critical tasks (for example, project download/upload , board management)

See  "Protecting access to HMI devices" on page 461 .

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

79

Update package

Option

User Files

Encrypted

Location

Description

Selects files to be copied to the QTHM folder of HMI device. Max size 5 MB

Enables encryption of update package so that it can only be unzipped by the HMI Runtime.

Location of update package.

Example of user's file location

Computer:

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

Note: User files copy is available only from the USB key.

Loading an update package

Path: from the context menu > Update

80

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

8    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.

The Runtime loader

HMI devices are delivered from factory without Runtime.

When you power up the device for the first time, the Runtime Loader window is displayed (see

"System Settings" on page 417 for 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.

Installing Runtime from JMobile Studio

When you download a project the Runtime is automatically installed if needed.

See

"Transferring the project to HMI device" on page 75

for details.

1. Click Install Runtime: the procedure is run automatically.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

81

Upload projects

Installing Runtime from a USB drive

1. Prepare the Update Package as described in

"Update package" on page 78

2. Plug the USB drive in the device and follow the instructions for the type of device (see

"System Settings" on page 417

for details)

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.

2. Click Retrieve Projects: a list of all the projects available is displayed.

3. Select project to upload

4. Click Upload Project

Upload could be password protected. See  "Protecting access to HMI devices" on page 461

for details.

5. If required, enter password. The upload process starts.

A copy of the project is saved in:

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.

82

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

System Variables

This chapter describes how to access to HMI System Variables.

Chapter

Attach To

Protocol

Description

Explains how widgets can be linked to System Variables by using Attach To window

Explains how System Variables can be defined as Tags within a protocol

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

83

System Variables

84

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

10 System Variables

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.

Alarms variables

Buzzer variables

Communication variables

Database variables

Daylight Saving Time variables

Device variables

Dump information variables

FTP client variables

Keypad variables

Network variables

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

85

88

89

90

87

87

88

91

92

93

93

PLC variables

Printing variables

Remote Client variables

Version variables

Screen variables

SD card variables

Server variables

Time variables

Touch screen variables

USB drive variables

User management variables

97

98

99

96

96

97

93

94

95

96

96

86

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

10    System Variables

Alarms variables

Number of alarms of the requested type.

Variable

Alarm not acknowledged

Alarm triggered

Number of missed alarm events

Number of not triggered acknowledged

Number of not triggered not acknowledged

Number of triggered acknowledged

Number of triggered alarms

Number of triggered not acknowledged

Description

True when alarms unacknowledged is pending

(Not Triggered Not Acknowledged<>0) OR (Triggered Not

Acknowledged<>0)

True when at least one alarm is triggered

(Triggered Acknowledged<>0) OR (Triggered <>0) OR (Triggered Not

Acknowledged<>0)

Alarms exceeding the event queue. Queue length is defined in the

engineconfig.xml file.

Alarm condition no longer active; alarms already acknowledged

Alarma condition no longer active; awaiting acknowledgment

Alarm condition active; alarms already acknowledged

Alarm active: aknowledgement not required

Alarm condition active; awaiting acknowledgment

Data type

boolean read only boolean read only int read only int read only int read only int read only int read only int 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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

87

Communication variables

Variable

Buzzer

Setup

Description

0 = disabled

1 = enabled (buzzer sounds as audible on any touchscreen event)

2 = buzzer status controlled by Buzzer Control system variable or by Buzzer on Touch property inside the

"Project properties" on page 57

Buzzer on touchscreen (Setup=1) is not available on Linux platforms. See

"Buzzer on Touch" property in alternative.

Buzzer

Control

0 = buzzer off

1 = buzzer on

2 = buzzer blink

Buzzer Off

Time

Duration in milliseconds of off time when blink has been selected. Default = 1000. Range: 100–

5000.

Buzzer On

Time

Duration in milliseconds of on time when blink has been selected. Default = 1000. Range: 100–

5000.

int int int

Data type

int

Communication variables

Communication status between HMI device and controllers.

Variable

Protocol

Communication

Status

Protocol Error

Message

Protocol Error

Count

Description

Summarize the status of the communication protocols.

0 = No protocol running, protocol drivers might not have been properly downloaded to the

HMI device.

1 = Protocols loaded and started, no communication error.

2 = At least one communication protocol is reporting an error.

Communication error with error source.

For example: "[xxxx]" where "xxxx" is the protocol abbreviation, the error source.

Multiple acronyms appear in case of multiple error sources. Blank when no errors are reported.

Number of communication errors occurred since last reset. Reset value with Reset

Protocol Error Count action, see

"System actions" on page 162 .

Data type

int

Read only

ASCII string

Read only int

Read only

Database variables

Database connection status .

88

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

10    System Variables

Variable

Database link error message

Database link status

Database link error count

Description

Last detected error description

Data type

string read only

0 = Undefined (not yet initialized)

1 = OnLine (ready)

2 = OffLine (not available)

3 = Transfer in progress

4 = Error int read only

Errors counter. Increased after each error.

int read only

Each database variable is an array where index select the database link connection (Range 1-10)

Note: Variables are updated only when any database connector action is executed.

Note: These variables are available as tags from the “System Variables” protocol..

Daylight Saving Time variables

Information on the system clock. The variables contain information on the "local" time. Standard Time (solar time) and Day

Light Saving time (DST) are available.

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).

Minute in which the standard time starts (for example: 00 = 0).

Standard

Minute

DST Offset

Offset in minutes when DLS time is set, with respect to GMT

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

89

Device variables

Variable

DST Week

DST Month

DST Day

DST Hour

DST Minute

Description

Week in which the DLS time starts

Month in which the DLS time starts. Range: 0–11.

Day of week in which the DLS time starts

Hour in which the DLS time starts

Minute in which the DLS time starts

Device variables

Device settings and operating status information.

Variable

Available

System

Memory

Backlight

Time

Description

Free available RAM memory in bytes.

Activation time in hours of the display backlight since production of the device.

Battery LED

Data type

uint64 read only

Enables/disables the low battery LED indicator (when available).

0 = disabled

1 = enabled

Not available on Linux platforms (see

"HMI devices capabilities" on page 475

for panels details) unsignedInt read only int

Battery

Timeout

Display

Brightness

External

Timeout

Reserved

Not available on Linux platforms (see

"HMI devices capabilities" on page 475

for panels details) int

Returns and adjusts brightness level.

Even when set to 0, the backlight is still on and the Backlight Time counter increases.

Range: 0–255

On WinCE device only:

When set to a low light level (0..3), the backlight stays lit to a higher level for 8 seconds to allow the user to make the adjustments and then is switched-off.

int

Non-operational time after which the display backlight is automatically turned off. The backlight is automatically turned on when the user touches the screen.

int

90

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

10    System Variables

Variable Description

-1 = switch off backlight and disable touch (switch display off). Backlight

Time counter is stopped.

Not available on Linux platforms (see

"HMI devices capabilities" on page 475

for panels details)

Data type

Flash Free

Space

Manufacturer

Code

System Font

List

0 =

1..n = switch backlight on (switch display on) timeout, in seconds, for switch off backlight (screen saver timer)

On Linux device (see

"HMI devices capabilities" on page 475

for panel details), timeout is managed in minutes. The entered value is converted to minutes rounded to next value, for example, 60, 120, 180.

Free space left in internal Flash memory.

Internal code that identify the HMI type

List of system fonts

System Mode

Runtime operation status.

1 = booting

2 = configuration mode

3 = operating mode

4 = restart

5 = shutdown

System

UpTime

Time the system has been powered since production of the unit (hours).

uint64 read only unsignedInt read only string read only int unsignedInt read only

Dump information variables

Status of the copy process to external drives (USB or SD Card) for trend and event buffers.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

91

FTP client variables

Variable

Dump Error Message

Description

Return error message if any error occurs during the dump operation

Dump Archive Status

Dump Recipe Status

Dump Trend Status

Reset Recipe Status

Restore Recipe Status

0 = initial default state

1 = operation triggered

2 = operation complete successfully

3 = operation completed with errors

0 = initial default state

1 = operation triggered

2 = operation complete successfully

3 = operation completed with errors

0 = initial default state

1 = operation triggered

2 = operation complete successfully

3 = operation completed with errors

0 = initial default state

1 = operation triggered

2 = operation complete successfully

3 = operation completed with errors

0 = initial default state

1 = operation triggered

2 = operation complete successfully

3 = operation completed with errors

FTP client variables

The FTP client variables are updated when the FTP actions are used.

Variable

FTP Current Command

Description

Last FTP command

FTP Error Message

FTP Progress

FTP Status

Last FTP error message

Download/upload progress (0/100%)

Status of last FTP command: l

0 = idle l l

1 = active

2 = done l

3 = error

Data type

string read only string read only short read only short read only

Data type

string read only int read only int read only int read only int read only int read only

92

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

10    System Variables

Keypad variables

Keypad status.

Variable

Is keypad open

Description

0 = no keypad open

1 = keypad open

Data type

int read only

Network variables

Device network parameters.

Variable

Adapters

Parameters

Gateway

Description

This is a JSON string that can be use to read or update the network adapters parameters

Data type

string

IP Address

Mac ID

Status

Subnet Mask

Gateway address of the main Ethernet interface of device

IP address of the main Ethernet interface of device

MAC ID of the main Ethernet interface of device

Contains the result of the last operation required by writing inside the Adapter Parameters.

It is updated after each write operation.

l

Empty string is meaning no errors l

Last error descriptions

Subnet Mask of the main Ethernet interface of device string read only string read only string read only string read only string read only

PLC variables

Status of CODESYS V2 system integrated in HMI devices.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

93

Printing variables

Variable Description

PLC Status

Status of integrated CODESYS V2.

0 = RUN

1 = PROGRAM NOT LOADED (program not loaded in memory or CODESYS module not running because license missing)

2 = STOP (program loaded but not running)

Get CopyCodesysProject

Action Status

Status of CopyCodesysProject action related to integrated CODESYS V2.

0 = ACTION_NOT_CALLED

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

12 = ACTION_ABORTED_CODESYS_MODULE_NOT_PRESENT

Printing variables

Information on printing functions.

Variable

Completion percentage

Current disk usage

Current job

Description

Percentage of completion of current print job.

Range: 0–100

Folder size in bytes where PDF reports are stored.

If Flash has been selected as Spool media type, this value corresponds to

reportspool.

Name of the report the job is processing. Current job is the following: l

[report name] for a Graphic Report

Data type

int read only int read only

Data type

read only read only read only

94

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

10    System Variables

Variable

Current RAM usage

Disk quota

Graphic job queue size

Last error message

Description

l

[first line of text] for a Text Report

Size in bytes of the RAM used to process the current job

Maximum size in bytes of the folder where PDF reports are stored

Number of available graphic jobs in the printing queue

Description of the last returned error

RAM quota

Status

Text job queue size

Maximum size in bytes of the RAM used to generate reports

Printing system status.

Values: l

idle

l l

error paused

l

printing

Number of available text jobs in the printing queue

Remote Client variables

The following system variables are associated to the transferring files to a remote HMI device.

Variable

Download from HMI error message

Description

Error description

Download from HMI percentage

Download from HMI status

Upload to HMI error message

Upload to HMI percentage

Upload to HMI status

Download progress (0→100)

0 = idle, action is not in use or completed

1= file download in progress

2 = error

Error description

Upload progress (0→100)

0 = idle, action is not in use or completed

1= file upload in progress

2 = error

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

read only

Data type

ASCII string read only read only int (32 bit) read only

ASCII string read only read only int (32 bit) read only

95

Data type

read only read only read only string read only read only string read only

Version variables

Version variables

Operating System and runtime version.

Variable

Main OS Version

Runtime Version

Description

Version of Main OS.

Version of runtime.

Data type

string string

Screen variables

Screen status.

Variable Description

Time remaining to unlock

Time remaining to unlock screen (see LockScreen action,

"Page actions" on page 151

)

X Screen resolution

Display horizontal screen size in pixel

Y Screen resolution

Display vertical screen size in pixel

SD card variables

Information on the external SD card.

Variable

SD Card FreeSpace

Description

Available space on card in bytes

SD Card Name

SD Card Size

SD Card Status

Name of SD card

Size in bytes of the card plugged in the slot

0 = SD card unplugged

1 = SD card plugged

Data type

uint64 read only string read only uint64 read only int read only

Server variables

Server status.

Important: All variables refer to server, not to JMobile Client.

96

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

10    System Variables

Variable Description

Current page

Current project

Operating mode time

Name of current page

Name of current project

Seconds elapsed since device started operating mode

Project load time

Date when the project was loaded on the JMobile HMI Runtime as in System Date format (milliseconds).

Data type

string string uint64 uint64

Time variables

System time expressed in UTC format.

Variable

Day Of Month

Day of Week

Hour

Minute

Month

Second

System Time

Year

Description

Range: 1–31

Range: 0 = Sunday, .. , 6 = Saturday

Range: 0–23

Range: 0–59

Range: 1–12

Range: 0–59

The same as UTC time. It can also be set as date/time for this variable.

Current Year int int int

Data type

int int int unsignedInt int

Touch screen variables

Cursor status and position on the touchscreen. These are properties of the active page and can be selected in the Widget section.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

97

USB drive variables

Note: Page size can be different than HMI device display size.

Screen

Touch

X

Screen

Touch

Y

Touch

Press

Variable Description

Page

Touch

X

Page

Touch

Y

Cursor position related to page

Cursor position related touchscreen

Touch

Status

Java Script

page.primaryTouch.x

page.primaryTouch.y

page.primaryTouch.screenX

page.primaryTouch.screenY

0 = screen not pressed

1 = screen pressed page.primaryTouch.pressed

Generic touch screen changes. This variable contains the concatenation of

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.

page.primaryTouchStatus

USB drive variables

Information on the external USB drive connected to the device.

98

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

10    System Variables

Variable

USB Drive free space

USB Drive Name

USB Drive Size

USB Drive Status

Description

Available space in bytes

Name of USB device

Size in bytes of the device plugged in the USB port

0 = USB Drive unplugged

1 = USB Drive plugged

Data type

uint64 read only string read only uint64 read only int read only

User management variables

Information on users and groups.

Variable

No of Remote-

Clients Alive

This Client Group-

Name

This Client ID

This Client User-

Name

Description

Number of JMobile Clients connected to the server

Group of currently logged user

Only for JMobile Clients. Local and remote clients connected to the same server (for example, runtime) get a unique ID.

Name of the user logged to the client where the system variable is displayed.

Data type

short read only string read only short read only string read only

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

99

User management variables

100

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

System Variables Protocol

System Variables communication driver allows to create Tags that point to system information.

System Variables communication driver is not counted as physical protocol. 

Refer to Table of functions and limits from main manual in "Number of physical protocols" line.

Protocol Editor Settings

Adding a protocol

To configure the protocol:

1. In the Config node double-click Protocols.

2. To add a driver, click +: a new line is added.

3. Select the protocol from the PLC list.

The driver configuration dialog is displayed.

From PLC Model list select the specific System Variables type.

System Variables - Default

System Variables - Default protocol allows to create Tags that point to HMI system variables regarding: l l l l l l l l l l l l l l l l

Alarms

Buzzer

Communication

Database

Daylight Saving Time

Device

Dump information

Network

PLC

Screen

SD Card

Server

Time

USB Drive

Version

Virtual Com Switch

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

101

Protocol Editor Settings

From PLC Model list of Protocol Editor dialog, select Default.

Tag Editor Settings

Path: ProjectView> Config > double-click Tags

1. To add a tag, click +: a new line is added.

2. Select System Variables from the Driver list: tag definition dialog is displayed.

System Variables Protocol

102

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Elemen t

Description

Memor y 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

Variable Name

Alarm not acknowledged

Alarm triggered

Number of missed alarm events

Description

True when alarms unacknowledged is pending

(Not Triggered Not Acknowledged<>0) OR (Triggered

Not Acknowledged<>0)

True when at least one alarm is triggered

(Triggered Acknowledged<>0) OR (Triggered <>0) OR

(Triggered Not Acknowledged<>0)

Alarms exceeding the event queue. Queue length is defined in the engineconfig.xml file.

Number of not triggered acknowledged

Number of not triggered not acknowledged

Alarm condition no longer active; alarms already acknowledged

Alarm condition no longer active; awaiting acknowledgment

Alarm condition active; alarms already acknowledged

Number of triggered acknowledged

Number of triggered alarms

Alarm active: acknowledgment not required

Number of triggered not acknowledged

Alarm condition active; awaiting acknowledgment

Data Type

boolean read only boolean read only int read only int read only int read only int read only int read only int read only

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

103

System Variables Protocol

Elemen t

Description

Buzzer Variables

Variable Name

Buzzer Setup

Buzzer Control

Buzzer Off Time

Buzzer On Time

Description

0 = disabled

1 = enabled (buzzer sounds as audible on any touchscreen event)

2 = buzzer status controlled by Buzzer Control system variable or by Buzzer on Touch property inside the

"Project properties" of main manual

Data Type

int

Buzzer on touchscreen (Setup=1) is not available on Linux platforms. See "Buzzer on Touch" property in alternative.

0 = buzzer off

1 = buzzer on

2 = buzzer blink

Duration in milliseconds of off time when blink has been selected. Default = 1000. Range: 100–5000

Duration in milliseconds of on time when blink has been selected. Default = 1000. Range: 100–5000 int int int

Communication Variables

Variable Name

Protocol Communication

Status

Protocol Error Message

Description

Summarize the status of the communication protocols.

0 = No protocol running, protocol drivers might not have been properly downloaded to the HMI device

1 = Protocols loaded and started, no communication error

2 = At least one communication protocol is reporting an error

Communication error with error source.

For example: "[xxxx]" where "xxxx" is the protocol abbreviation, the error source.

Data Type

int read only string read only

104

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Elemen t

Description

Communication Variables

Variable Name

Protocol Error Count

Description

Multiple acronyms appear in case of multiple error sources. Blank when no errors are reported.

Number of communication errors occurred since last reset. Reset value with Reset Protocol Error Count action, see "System actions" of main manual

Data Type

int read only

Database Variables

Variable Name

Database link error message

Description

Last detected error description

Database link status

Database link error count

0 = Undefined (not yet initialized)

1 = OnLine (ready)

2 = OffLine (not available)

3 = Transfer in progress

4 = Error

Errors counter. Increased after each error

Data Type

string read only int read only int read only

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

Daylight Saving Time Variables

Variable Name

Standard Offset

Standard Week

Description Data Type

Offset in minutes when standard time is set, with respect to GMT (for example: -8x60 = -480 minutes) int read only

Week in which the standard time starts (for example:

First = 1) int read only

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

105

System Variables Protocol

Elemen t

Description

Daylight Saving Time Variables

Variable Name

Standard Month

Standard Day

Standard Hour

Description

Month in which the standard time starts. Range: 0–11.

(for example: November = 10)

Data Type

int read only

Day of week in which the standard time starts (for example: Sunday = 0)

Hour in which the standard time starts (for example: 02 =

2) int read only int read only

Standard Minute

DST Offset

DST Week

DST Month

DST Day

DST Hour

DST Minute

Minute in which the standard time starts (for example: 00

= 0) int read only

Offset in minutes when DLS time is set, with respect to

GMT

Week in which the DLS time starts int read only int read only

Month in which the DLS time starts. Range: 0–11

Day of week in which the DLS time starts

Hour in which the DLS time starts

Minute in which the DLS time starts int read only int read only int read only int read only

All variables are read only: they cannot be used to update the system clock.

106

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Elemen t

Description

Device Variables

Variable Name

Available System Memory

Backlight Time

Battery LED

Battery Timeout

Display Brightness

External Timeout

Description

Free available RAM memory in bytes

Data Type

uint64 read only

Activation time in hours of the display backlight since production of the device

Enables/disables the low battery LED indicator (when available)

0 = disabled

1 = enabled

Not available on Linux platforms (see

"HMI devices capabilities" on page 475

for panels details)

Reserved int

Not available on Linux platforms (see

"HMI devices capabilities" on page 475

for panels details)

Returns and adjusts brightness level.

When set to a low light level (0..3), the backlight stays lit to a higher level for 8 seconds to allow the user to make the adjustments and then is switched-off.

Even when set to 0, the backlight is still on and the

Backlight Time counter increases. Range: 0–255 int

Non-operational time after which the display backlight is automatically turned off. The backlight is automatically turned on when the user touches the screen int unsignedInt read only int

-1 = switch off backlight and disable touch

(switch display off). Backlight Time counter is stopped.

Not available on Linux platforms (see

"HMI devices capabilities" on page 475

for

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

107

System Variables Protocol

Elemen t

Description

Device Variables

Variable Name

Flash Free Space

Manufacturer Code

System RAM Usage

System Font List

System Mode

System UpTime

Description Data Type

panels details)

0 =

1..n = switch backlight on (switch display on) timeout, in seconds, for switch off backlight (screen saver timer)

On Linux device (see

"HMI devices capabilities" on page 475

for panel details), timeout is managed in minutes. The entered value is converted to minutes rounded to next value, for example, 60, 120, 180.

Free space left in internal Flash memory

Code number that identifies the HMI

Current RAM memory used from HMI, expressed in byte

List of system fonts

Runtime operation status

1 = booting

2 = configuration mode

3 = operating mode

4 = restart

5 = shutdown

Time the system has been powered since production of the unit (hours) uint64 read only short read only uint64 read only string read only int unsignedInt read only

108

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Elemen t

Description

Dump information Variables

Variable Name

Dump Error Message

Dump Archive Status

Dump Recipe Status

Dump Trend Status

Reset Recipe Status

Restore Recipe Status

Description

Return error message if any error occurs during the dump operation string read only

0 = initial default state

1 = operation triggered

2 = operation complete successfully

3 = operation completed with errors

0 = initial default state

1 = operation triggered

2 = operation complete successfully

3 = operation completed with errors

Data Type

int read only int read only int read only

0 = initial default state

1 = operation triggered

2 = operation complete successfully

3 = operation completed with errors

0 = initial default state

1 = operation triggered

2 = operation complete successfully

3 = operation completed with errors

0 = initial default state

1 = operation triggered

2 = operation complete successfully

3 = operation completed with errors int read only int read only

Network Variables

Variable Name

Gateway

IP Address

Mac ID

Description

Gateway address of the main Ethernet interface of HMI

IP address of the main Ethernet interface of HMI

MAC ID of the main Ethernet interface of HMI

Data Type

string read only string read only string read only

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

109

System Variables Protocol

Elemen t

Description

Network Variables

Variable Name

Network Adapter

Parameters

Network Status

Subnet Mask

Description

JSON string that can be use to read or update the network adapters parameters

Contains the result of the last operation required by writing inside the Adapter Parameters. It is updated after each write operation.

l

Empty string is meaning no errors l

Last error descriptions

Subnet Mask of the main Ethernet interface of HMI

Data Type

string string read only string read only

PLC Variables

Variable Name

Get CopyCodesysProject

Action Status

PLC Status

Description

Provides status of CopyCodesysProject action.

0 = Action not called

1 = Action in progress

2 = Action completed

3 = Action aborted (CHK file missing)

4 = Action aborted (PRJ file missing)

5 = Action aborted (SDB file missing)

6 = Action aborted (multiple CHK files found)

7 = Action aborted (multiple PRJ files found)

8 = Action aborted (multiple SDB files found)

9 = Action aborted (inconsistent file names)

10 = Action aborted (unable to make directory)

11 = Action aborted (copy failed)

12 = Action aborted (Codesys module not present)

Provides status of internal PLC.

Data Type

int read only int

110

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Elemen t

Description

PLC Variables

Variable Name Description

0 = Run mode

1 = Stop mode

2 = Reload from file

3 = Reset Warm

4 = Reset Cold

5 = Reset Hard

PLC system variables refers to CODESYS V2 internal PLC

Screen Variables

Variable Name

X Screen resolution

Y Screen resolution

Description

Display horizontal screen size in pixel

Display vertical screen size in pixel

SD Card Variables

Variable Name

SD Card FreeSpace

SD Card Name

SD Card Size

SD Card Status

Description

Available space on card in bytes

Name of SD card

Size in bytes of the card plugged in the slot

0 = SD card unplugged

1 = SD card plugged

Data Type

Data Type

int read only int read only

Data Type

uint64 read only string read only uint64 read only int read only

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

111

System Variables Protocol

Elemen t

Description

Server Variables

Variable Name

Page name

Current project

Description

Name of current page

Name of current project

Project load time

Date when the project was loaded on the JMobile HMI

Runtime as in System Date format (milliseconds)

Last operating mode start time

Seconds elapsed since device started operating mode

Data Type

string read only string read only uint64 read only uint64 read only

All variables refer to server, not to JMobile Client.

Time Variables

Variable Name

Day Of Month

Day of Week

Hour

Minute

Month

Second

System Time

Year

Description

Range: 1–31

Range: 0 = Sunday, .. , 6 = Saturday

Range: 0–23

Range: 0–59

Range: 1–12

Range: 0–59

The same as UTC time. It can also be set as date/time for this variable

Current Year int

Data Type

int int int int int int unsignedInt

System time expressed in UTC format

112

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Elemen t

Description

USB Drive Variables

Variable Name

USB Drive FreeSpace

USB Drive Name

USB Drive Size

USB Drive Status

Description

Available space in bytes

Name of USB device

Size in bytes of the device plugged in the USB port

0 = USB Drive unplugged

1 = USB Drive plugged

Data Type

uint64 read only string read only uint64 read only int read only

Version Variables

Variable Name

Main OS version

Runtime version

Description

Version of Main OS

Version of Runtime

Data Type

string read only string read only

Virtual Com Switch Variables

Variable Name Description

VCS status

VCS disable

Provides status of VCS service.

0 = Service enabled

1 = Client connected in interleaved mode

2 = Client connected in exclusive mode

3 = Service disabled (default)

Provides manual override of VCS service.

0 = VCS service enabled

Data Type

unsignedByte read only boolean

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

113

System Variables Protocol

Elemen t

Description

Virtual Com Switch Variables

Variable Name Description

VCS port

1 = VCS service disabled (default)

Provides current listening TCP port on HMI by VCS service

Data Type

unsignedShort

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.

Data Type short int unsignedByte unsignedShort unsignedInt uint64 string

Memory Space

16-bit data

32-bit data

8-bit data

16-bit data

32-bit data

64-bit data

Limits

-32768 ... 32767

-2.1e9 ... 2.1e9

0 ... 255

0 ... 65535

0 ... 4.2e9

0 ... 1.8e19

Array of elements containing character code defined by selected encoding

114

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Elemen t

Description

Arraysi ze

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.

Conver sion

Conversion to be applied to the Tag.

Depending on data type selected, the Allowed list shows one or more conversions, listed below.

Value

Inv bits

Negate

AB -> BA

ABCD -> CDAB

ABCDEFGH ->

GHEFCDAB

Description

Invert all the bits of the tag.

Example:

1001 → 0110 (in binary format)

9 → 6 (in decimal format)

Set the opposite of the tag value.

Example:

25.36 → -25.36

Swap nibbles of a byte.

Example:

15D4 → 514D (in hexadecimal format)

5588 → 20813 (in decimal format)

Swap bytes of a word.

Example:

9ACC → CC9A (in hexadecimal format)

39628 → 52378 (in decimal format)

Swap bytes of a double word.

Example:

32FCFF54 → 54FFFC32 (in hexadecimal format)

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

115

System Variables Protocol

Elemen t

Description

Value

ABC...NOP ->

OPM...DAB

BCD

Description

855441236 → 1426062386 (in decimal format)

Swap bytes of a long word.

Example:

142.366 → -893553517.588905 (in decimal format)

0 10000000110

0001110010111011011001000101101000011100101011000001

1 10000011100

1010101000010100010110110110110010110110000100111101

(in binary format)

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)

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).

Use the arrow buttons to order the configured conversions.

System Variables - HandHeld

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.

Protocol Editor Settings

From PLC Model list of Protocol Editor dialog, select HandHeld.

Tag Editor Settings

Path: ProjectView> Config > double-click Tags

116

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

1. To add a tag, click +: a new line is added.

2. Select System Variables from the Driver list: tag definition dialog is displayed.

Elemen t

Description

Memor y Type

Data

Type

Variable

Potentiometers

Wheel position

Description

Represents the value of physical potentiometer

(Range: 0-255).

Offset property identifies the potentiometer:

1 = right potentiometer

2 = left potentiometer

Represents the physical wheel absolute position.

Data Type

unsignedByte read only int

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

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.

Data Type short int unsignedByte

Memory Space

16-bit data

32-bit data

8-bit data

Limits

-32768 ... 32767

-2.1e9 ... 2.1e9

0 ... 255

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

117

System Variables Protocol

Elemen t

Description

Data Type unsignedShort unsignedInt uint64 string

Memory Space

16-bit data

32-bit data

Limits

0 ... 65535

0 ... 4.2e9

64-bit data 0 ... 1.8e19

Array of elements containing character code defined by selected encoding

Arraysi ze

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.

Conver sion

Conversion to be applied to the Tag.

118

Depending on data type selected, the Allowed list shows one or more conversions, listed below.

Value

Inv bits

Negate

AB -> BA

Description

Invert all the bits of the tag.

Example:

1001 → 0110 (in binary format)

9 → 6 (in decimal format)

Set the opposite of the tag value.

Example:

25.36 → -25.36

Swap nibbles of a byte.

Example:

15D4 → 514D (in hexadecimal format)

5588 → 20813 (in decimal format)

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Elemen t

Description

Value

ABCD -> CDAB

ABCDEFGH ->

GHEFCDAB

ABC...NOP ->

OPM...DAB

BCD

Description

Swap bytes of a word.

Example:

9ACC → CC9A (in hexadecimal format)

39628 → 52378 (in decimal format)

Swap bytes of a double word.

Example:

32FCFF54 → 54FFFC32 (in hexadecimal format)

855441236 → 1426062386 (in decimal format)

Swap bytes of a long word.

Example:

142.366 → -893553517.588905 (in decimal format)

0 10000000110

0001110010111011011001000101101000011100101011000001

1 10000011100

1010101000010100010110110110110010110110000100111101

(in binary format)

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)

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).

Use the arrow buttons to order the configured conversions.

System Variables - HandHeld - wireless

System Variables - HandHeld - wireless protocol allows to create Tags that point to H4 device system variables.

This protocol is automatically added in a new project if H4 device is selected from project creation wizard.

Protocol Editor Settings

From PLC Model list of Protocol Editor dialog, select HandHeld - wireless.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

119

Tag Editor Settings

Path: ProjectView> Config > double-click Tags

1. To add a tag, click +: a new line is added.

2. Select System Variables from the Driver list: tag definition dialog is displayed.

System Variables Protocol

120

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Elemen t

Description

Memor y Type

Variable

Battery Charging Status

Battery Level

Bluetooth Coupled

Bluetooth Signal Strength

Emergency

Selector Position

Token ID

Token Present

Token Valid

Description

Value indicating battery charging status.

0 = power by battery

1 = external power, battery in charge

2 = external power, battery charging complete

Value indicating the battery charge percentage.

(Range: 0-100).

0 = battery low

100 = battery fully charged

Coupling status between H4 and remote safety module.

0 = not coupled

1 = coupled

Bluetooth RSSI level.

(Range: 0-100).

0 = minimum quality

100 = maximum quality

Status of the Emergency Stop button.

0 = button released

1 = button pressed

Position of the selector switch

(Range: 0-15)

Data Type

unsignedByte read only unsignedByte read only boolean read only byte read only boolean read only unsignedByte read only uint64 read only

TOKEN ID value if token is present/connected, otherwise 0. 0 is returned also in case of error.

Presence of the token.

0 = token not inserted

1 = token inserted

Status of the token.

boolean read only boolean

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

121

System Variables Protocol

Elemen t

Description

Variable

Data

Type

Potentiometers

Vibration

Wheel position

WIFI Signal Strength

Description

0 = token not valid

1 = token inserted and valid

Represents the value of physical potentiometer

(Range: 0-255).

Offset property identifies the potentiometer:

1 = right potentiometer

2 = left potentiometer

Value indicating vibration status.

0 = vibration disabled

1 = vibration enabled

Data Type

read only unsignedByte read only boolean read only

Represents the physical wheel absolute position.

int

Value indicating the level of the current

Wi-Fi network

(Range: 0-100).

0 = no signal

100 = max signal level

SMCH security module system variables byte read only

SMHC Configuration

SMHC Status

SMWL Configuration

SMWL Status

SMWL security module system variables -

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

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.

122

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Elemen t

Description

Data Type boolean byte short int unsignedByte unsignedShort unsignedInt uint64 string

Memory Space

1-bit data

8-bit data

16-bit data

32-bit data

8-bit data

16-bit data

32-bit data

Limits

0 ... 1

-128 ... 127

-32768 ... 32767

-2.1e9 ... 2.1e9

0 ... 255

0 ... 65535

0 ... 4.2e9

64-bit data 0 ... 1.8e19

Array of elements containing character code defined by selected encoding

Arraysi ze

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.

Conver sion

Conversion to be applied to the Tag.

Depending on data type selected, the Allowed list shows one or more conversions, listed below.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

123

System Variables Protocol

Elemen t

Description

Value

Inv bits

Negate

AB -> BA

ABCD -> CDAB

ABCDEFGH ->

GHEFCDAB

ABC...NOP ->

OPM...DAB

BCD

Description

Invert all the bits of the tag.

Example:

1001 → 0110 (in binary format)

9 → 6 (in decimal format)

Set the opposite of the tag value.

Example:

25.36 → -25.36

Swap nibbles of a byte.

Example:

15D4 → 514D (in hexadecimal format)

5588 → 20813 (in decimal format)

Swap bytes of a word.

Example:

9ACC → CC9A (in hexadecimal format)

39628 → 52378 (in decimal format)

Swap bytes of a double word.

Example:

32FCFF54 → 54FFFC32 (in hexadecimal format)

855441236 → 1426062386 (in decimal format)

Swap bytes of a long word.

Example:

142.366 → -893553517.588905 (in decimal format)

0 10000000110

0001110010111011011001000101101000011100101011000001

1 10000011100

1010101000010100010110110110110010110110000100111101

(in binary format)

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)

Select the conversion and click on plus button. The selected item will be added on Configured list.

124

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Elemen t

Description

If more conversions are configured, they will be applied in order (from top to bottom of Configured list).

Use the arrow buttons to order the configured conversions.

Direct I/O

System Variables -Direct I/O protocol allows to create Tags that point to optional local I/O plugin modules.

Install and configure Direct I/O Plug-in modules

Most HMI offer 1 or 2 slots for connecting optional plug-in modules. Slot numbers are referred in the programming software for configuration of plug-in modules. Numbering of plug-in slots is shown in figure.

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.

Plug-in I/O Modules details

Plug-in I/O modules have been designed for creating simple applications with a limited number of digital I/O signals.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

125

Module

8 Digital Inputs /

6 Digital Outputs /

1 Relay Output

I/O configration

l

8 optically isolated digital inputs l

6 optically isolated digital outputs l

1 relay output

Image

2 Relay Outputs

l

2 relay output

System Variables Protocol

Protocol Editor Settings

From PLC Model list of Protocol Editor dialog, select Direct I/O.

Tag Editor Settings

Path: ProjectView> Config > double-click Tags

1. To add a tag, click +: a new line is added.

2. Select System Variables from the Driver list: tag definition dialog is displayed.

126

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

127

System Variables Protocol

Ele men t

Description

Me mor y

Typ e

Indicates the resource with this rule:

<module name>#<slot number> <resource type>

Variable Description

<module name>#n Diags

Reports I/O diagnostic information. Check Offset section for details

<module name>#n Inputs

Reports input status

<module name>#n

Outputs

Reports ouput status

Offs et

Mem ory

Type

Ran ge

Diags

0 - 2

Description

Bit #

0

1

2

Description

DIAG_24VOK parameter.

0 = 24V detected

1 = 24V missing

DIGOUT1_DIAG01 parameter.

0 = digital ouputs 1-3 not ok

1 = digital outputs 1-3 ok

DIGOUT1_DIAG02 parameter.

0 = digital ouputs 4-6 not ok

1 = digital outputs 4-6 ok

Input s

0 - 7

3

4

1

2

Bit #

0

Description

Digital Input 1

Digital Input 2

Digital Input 3

Digital Input 4

Digital Input 5

128

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Ele men t

Description

Mem ory

Type

Ran ge

Description

6

7

Bit #

5

Description

Digital Input 6

Digital Input 7

Digital Input 8

Outp uts

0 - 6 Refers to 8 Digital Inputs / 6 Digital Outputs / 1 Relay Output I/O module

2

3

4

5

6

Bit #

0

1

Description

Digital Output 1

Digital Output 2

Digital Output 3

Digital Output 4

Digital Output 5

Digital Output 6

Relay Output

0 - 1 Refers to 2 Relay Outputs I/O module

Bit #

0

1

Channel #

Relay Output 1

Relay Output 2

Data

Typ e

Data Type unsignedByte boolean[]

Memory Space

8-bit data

1-bit data array

Limits

0 ... 255

0 ... 1 (for each element)

Select boolean[] data type to get all resources in a boolean array.

To point or visualize a single resource, a proper Array index property has to be set when using the Tag.

Direct I/O Tags can be accessed with JavaScript programming.

For easier access from JavaScript functions it is preferable to configure Direct I/O tags as boolean[].

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

129

System Variables Protocol

Ele men t

Description

Example: JavaScript function to set to TRUE output channel 3

Arra ysiz e

In case of array Tag, this property represents the number of array elements.

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 Variable<convert to text and insert new text here>

Con vers ion

Conversion to be applied to the tag.

130

Depending on data type selected, the Allowed list shows one or more conversions, listed below.

Value

BCD

AB -> BA

Inv bits

Description

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)

Swap nibbles of a byte.

Example:

15D4 → 514D (in hexadecimal format)

5588 → 20813 (in decimal format)

Invert all the bits of the tag.

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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Ele men t

Description

If more conversions are configured, they will be applied in order (from top to bottom of Configured list).

Use the arrow buttons to order the configured conversions

System Variables - Retentive Memory

System Variables - Retentive Memory protocol allows to create Tags that point to a memory area whose content is maintained when HMI is powered off.

The physical support for retentive memory is based on FRAM technology.

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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

131

System Variables Protocol

132

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Retentive memory vs. recipes storage

Recipe data is saved in flash memory (except forJMobile PC Runtime) while retentive data is saved in a FRAM.

Flash memory is not suitable for a high number of write operations, while FRAM supports a virtually unlimited number of write operations and should be preferred when frequent write operations are required.

Protocol Editor Settings

From PLC Model list of Protocol Editor dialog, select Retentive Memory.

Tag Editor Settings

Path: ProjectView> Config > double-click Tags

1. To add a tag, click +: a new line is added.

2. Select System Variables from the Driver list: tag definition dialog is displayed.

Element Description

Memory

Type

Fixed to Retentive Memory

Offset

SubInde x

Offset address where tag is located. Range: 0-16383

This parameter allows resource offset selection based on selected Data Type

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

133

System Variables Protocol

Element Description

Data

Type

Data Type boolean byte short int int64 unsignedByte unsignedShort unsignedInt uint64 float double string binary

Memory Space

1-bit data

8-bit data

16-bit data

32-bit data

64-bit data

8-bit data

16-bit data

Limits

0 ... 1

-128 ... 127

-32768 ... 32767

-2.1e9 ... 2.1e9

-9.2e18 ... 9.2e18

0 ... 255

0 ... 65535

32-bit data

64-bit data

IEEE single-precision 32-bit floating point type

0 ... 4.2e9

0 ... 1.8e19

1.17e-38 ... 3.4e38

IEEE double-precision 64-bit floating point type

2.2e-308 ... 1.79e308

Array of elements containing character code defined by selected encoding

Arbitrary binary data

Note: to define arrays. select one of Data Type format followed by square brackets like “byte[]”,

“short[]”…

Arraysiz e

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 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.

Conversi on

Conversion to be applied to the Tag.

134

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Element Description

Depending on data type selected, the Allowed list shows one or more conversions, listed below.

Value

Inv bits

Negate

AB -> BA

ABCD -> CDAB

ABCDEFGH ->

GHEFCDAB

ABC...NOP ->

OPM...DAB

Description

Invert all the bits of the tag.

Example:

1001 → 0110 (in binary format)

9 → 6 (in decimal format)

Set the opposite of the tag value.

Example:

25.36 → -25.36

Swap nibbles of a byte.

Example:

15D4 → 514D (in hexadecimal format)

5588 → 20813 (in decimal format)

Swap bytes of a word.

Example:

9ACC → CC9A (in hexadecimal format)

39628 → 52378 (in decimal format)

Swap bytes of a double word.

Example:

32FCFF54 → 54FFFC32 (in hexadecimal format)

855441236 → 1426062386 (in decimal format)

Swap bytes of a long word.

Example:

142.366 → -893553517.588905 (in decimal format)

0 10000000110

0001110010111011011001000101101000011100101011000001

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

135

System Variables Protocol

Element Description

Value

BCD

Description

1 10000011100

1010101000010100010110110110110010110110000100111101

(in binary format)

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)

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).

Use the arrow buttons to order the configured conversions.

.

Cleaning Retentive Memory

Use the ClearRetentiveMemory action to clear the content of the retentive memory.

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.

JavaScript interface for this action is:

project.clearRetentiveMemory();

Preserving Retentive Memory at project download

When a project file is downloaded to an HMI, or when the active project is modified, the content of retentive memory is usually deleted.

If is needed to preserve the content of retentive data at project download or update, select the Keep retentive data on

project download option in the settings tabs of the HMI device.

136

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

This setting will be ignored if Delete runtime dynamic files option is selected from Download to Target window.

Preserving Retentive Memory in Simulator

Simulator of JMobile Studio supports the retentive memory. To enable retentive memory during project simulation use the option "Keep retentive data on project simulation" in context menu.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

137

System Variables Protocol

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.

Tags included in the symbol file are listed in the tag dictionary. The tag dictionary is displayed at the bottom of the screen.

138

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Toolbar item Description

Import Tag(s).

Select tags to be imported and click on this icon to add tags from tag dictionary to the project

Update Tag(s).

Click on this icon to update the tags in the project, due a new dictionary import.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

139

Toolbar item

System Variables Protocol

Description

Check this box to import all sub-elements of a tag.

Example of both checked and unchecked result:

Searches tags in the dictionary basing on filter combo-box item selected.

140

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12 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).

Alarm actions

Database actions

Event actions

MultiLanguage actions

Keyboard actions

Media Player actions

FTP actions

Page actions

Print actions

Recipe actions

Remote Client actions

System actions

Tag actions

Trend actions

User management actions

Widget actions

148

148

151

155

156

161

162

170

142

142

145

146

146

171

175

177

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

141

Alarm actions

Alarm actions

Used to acknowledge or reset alarms.

SelectAllAlarms

Selects all alarms in the alarm widget.

AckAlarm

Acknowledges selected alarms.

ResetAlarm

Resets selected acknowledged alarms.

EnableAlarms

Saves changes made in the Enable column in the alarm widget. This action is used with the Save button in the alarm widget.

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.

142

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12    Actions

Use Custom SQL query parameter to define the pages to be created. Leave empty to generate default table names

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); project.dbReadTags(dbLinkName, sqlCustomQuery, Tags);

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

143

Database actions

DBWriteGroups, DBReadGroups

Transfer groups of tags between the HMI device and the database.

JavaScript Interface

project.dbWriteGroups(dbLinkName, sqlCustomQuery, Groups); project.dbReadGroups(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.

144

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12    Actions

JavaScript Interface

project.dbWriteEvents (dbLinkName, sqlCustomQuery, archiveName, durationIndex)

DBWriteRecipes, DBReadRecipes

Transfer the recipe data to/from the remote database.

JavaScript Interface

project.dbWriteRecipes(dbLinkName, sqlCustomQuery, recipeNames) project.dbReadRecipes(dbLinkName, sqlCustomQuery, recipeNames)

DBResetErrors

Reset all the three status variables of the selected database link.

"Database variables" on page 88 .

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).

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

145

MultiLanguage actions

MultiLanguage actions

Selects the application language.

SetLanguage

Sets the language used. The selected language will be applied at run time 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.

146

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12    Actions

ShowKeyPad

Shows the default operating system touch keypad.

Note: might not be supported by all operating systems.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

147

Media Player 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.

Media Player actions

Interact with the Media Player widget at run time.

Action

PlayMedia

StopMedia

ReloadMedia

PauseMedia

BrowseMedia

Description

Starts playing the video.

Stops the video.

Restarts video from the beginning.

Pauses the video.

Selects the video to play.

Not available on Linux platforms (see

"HMI devices capabilities" on page 475

for panels details)

FTP actions

Used to upload and download files to and from a remote FTP server.

ftpGET

Download files from a remote FTP server

148

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12    Actions

Parameter

FtpConfig

FtpRemoteFileName

FtpLocalFileName

Description

Configuring the FTP parameters

File name on the remote FTP server to download (source)

File name on local HMI device (destination)

ftpPUT

Upload files to a remote FTP server

Parameter

FtpConfig

FtpLocalFileName

FtpRemoteFileName

Description

Configuring the FTP parameters

File name on local HMI device (source)

File name on the remote FTP server to download (Destination)

Filenames can contain wildcards.

When transferred, system variables are updated with the status of ongoing operations (see

"FTP client variables" on page 92 for details).

FTP Server Configuration

To configure the FTP parameter, enter the following information for the FtpConfig setting:

Parameter

FTP Address

Server Port

Authentication

User Name

Password

Description

FTP server IP Address

Port for FTP connection (default = 21).

Select the FTP authentication to use: l

Normal (Username and password required) l

Anonymous

Username of the remote FTP account

Password of the remote FTP account

Click + to add more FTP servers configuration.

Tip: Use tags if you want change the server parameters dynamically from the JMobile HMI Runtime.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

149

FTP actions

FTP JavaScript Interface ftpConfig

ftpCONFIG (IPAddress, Port, Authentication, UserName, Password)

Set the FTP parameters to use on next FTP calls

Parameter

IPAddress

Port

Authentication

UserName

Password

Description

FTP server IP Address.

Port for FTP connection (default = 21).

Select the FTP authentication to use: l l

Normal (Username and password required)

Anonymous

Username of the remote FTP account

Password of the remote FTP account

ftpGET

ftpGET (remoteFileName, localFileName, [callback])

Download files from a remote FTP server

Parameter remoteFileName localFileName callback

Description

File name on the remote FTP server to download (source)

File name on local HMI device (destination)

Function that will be call at the end of the FTP transfer

ftpPUT

ftpPUT (remoteFileName, localFileName, [callback])

Upload files to a remote FTP server

Parameter remoteFileName localFileName callback

Description

File name on the remote FTP server to download (source)

File name on local HMI device (destination)

Function that will be call at the end of the FTP transfer

Example: project.ftpCONFIG("192.168.0.200", "21", "true", "admin", "admin");

150

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12    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 l

OnMouseHold

OnActivate l

OnDeactivate l

Alarms l

Schedulers.

LoadPage

Go to the selected page of the project.

HomePage

Go to the home page.

You can set the home page in the Behavior section of the Project Widget, see

"Behavior" on page 64

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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

151

Page actions

CloseDialog

Close dialog pages.

Note: This action is applicable only to dialog pages.

CloseDialog options

Option

All

Selected

DialogName

JavaScript Interface

project.closeDialog(DialogID);

Description

Closes all open dialogs

Closes only active dialog

Closes dialog specified as fileName property

152

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12    Actions

Where DialogID:

All

Selected

DialogName.jmx

Examples

Example

project.closeDialog("All"); project.closeDialog("Selected"); project.closeDialog("Dialog1.jmx");

Closes all open dialogs

Closes only active dialog

Closes dialog specified as fileName parameter

Behavior

All open dialogs are closed

The selected dialog is closed

All instances of Dialog1 are closed

The function project.closeDialog(); without parameter works as project.closeDialog("Selected");.

ShowMessage

Displays a popup message. Enter the text of the message to be displayed.

LaunchApplication

Launches an external application.

Parameter

App Name

Path

Description

Executable name with extension (for example, "notepad.exe" to run Notepad)

Application path.

Arguments

Single Instance

Application specific arguments (for example, \flash\qthmi\Manual.pdf to open the document “Manual.pdf”)

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:

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

153

Page actions

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.

Macro available only for HMI devices based on Windows CE platform.

On HMI devices based on Linux platform the VNC service can be enabled from the "Service" tab of the

"Linux

Devices" on page 425 BSP v1.0.44 or higher required.

See

"Software plug-in modules" on page 63

to include it on Windows CE devices.

LaunchPDFViewer

Starts PDF Viewer.

Note: only works on devices that include PDF Viewer.

See

"Software plug-in modules" on page 63

to include it on Windows CE devices.

On Linux devices is included from BSP v1.00.44.

LaunchUpdater

Updates project and runtime from an external device.

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

154

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12    Actions

Note: Not supported in devices based on Win32.

JavaScript Interface

project.launchUpdater(strPath)

Examples

project.launchUpdater("\\USBMemory")

LaunchHMICloudEnabler

Open the HMI Cloud Enabler.

Macro available only for HMI devices based on Windows CE platform.

On HMI devices based on the Linux platform the Service Cloud can be enabled from the "Service" tab of the

"Linux Devices" on page 425

.

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 96

Print actions

Manages print tasks.

PrintGraphicReport

Prints a graphic report.

Parameter reportName silent

Description

Assigns a name to the report

false = allows to set printer properties at run time

PrintText

Prints a string.

Parameter text silent

Description

String to be printed

false = allows to set printer properties at run time

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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

155

Recipe actions

Note: printing could a few minutes for models not designed for line printing.

Not available on Linux platforms (see

"HMI devices capabilities" on page 475

for panels details)

PrintBytes

Prints an hexadecimal string representing data to print (for example, "1b30" to print < ESC 0 >.

Parameter bytes silent

Description

Exadecimal string to print

false = allows to set printer properties at run time

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 (see

"HMI devices capabilities" on page 475

for panels details)

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.

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).

156

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12    Actions

Parameter

RecipeName

RecipeSet

Description

Name of recipe to download

Number of recipe set to copy.

curSet = download currently selected recipe set

UpLoadRecipe

Saves recipe data from the controller (e.g. PLC, local variable, depending on the protocol) to the device Flash Memory.

Parameter

RecipeName

RecipeSet

Description

Name of recipe to upload

Number of recipe set to copy.

curSet = upload currently selected recipe set

WriteCurrentRecipeSet

Sets the selected recipe as current recipe set.

Parameter

RecipeName

RecipeSet

Description

Name of recipe to set as current recipe

Recipe set to define as current recipe set

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

ResetRecipe

Restores factory settings for recipe data. Original recipe data will overwrite uploaded recipes

Select the recipe that you want to reset to factory data.

DumpRecipeData

Dumps recipe data to internal or external storage. Data is saved in .csv format.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

157

Recipe actions

Parameter

RecipeName

FilePath

Description

Name of recipe to dump

Destination folder 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

Tag that specifies a filename.

DateTimePrefixFileName

true = the dumped file will have date and time as prefix to its name (for example D2012_01_

01_T10_10_recipe1.csv)

TimeSpec

Time format: 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.

Parameter

RecipeName

Description

Recipes to restore: l l

AllRecipes

Data of all recipes will replaced with the data read from the external file

CurrentRecipe

Only the data of the current selected recipe will replaced with the data read from the external file

RecipeDataSet

Available only when RecipeName=CurrentRecipe.

Select the data sets to restore: l

AllRecipeDataSet

All data set will restored l curSet

Only the data set of the current selected data set will restore

Restore Type

Available only when RecipeDataSet=AllRecipeDataSet.

158

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12    Actions

Parameter

FilePath

Description

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 l

Replace

All data sets that are inside the device are removed and replaced with the data sets from the csv file

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)

Source folder l l

Internal = \Flash\QTHMI\workspace\Dump

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 run time.

BrowseForFile

true = shows the Open dialog to browse the file to read.

false = no dialog is shown,

AddRecipeDataSet

Adds a new dataset to the selected recipe. The new dataset is appended at the end of the already defined datasets.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

159

Recipe actions

Parameter

RecipeName

CopyFrom

NewSetName

Description

Recipe where the dataset is added.

Dataset from where parameters values are copied from to initialize the new dataset

Name of new dataset.

Here you can you can use a tag reference.

DelRecipeDataSet

Deletes a dataset from the selected recipe. Deleting a dataset will rearrange the position number of the datasets that follow.

Parameter

RecipeName

DataSet

160

Description

Recipe where the dataset is to be deleted.

Dataset to be deleted.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12    Actions

Remote Client actions

Used to upload and download files to and from a remote HMI device. These actions can only be used from a remote

JMobile Client to access remote files via FTP.

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

Destination

Filter

Description

Destination path on HMI device for file upload

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

Source

Filter

Description

Source path on the HMI device for file download

File extensions of the files to be displayed separated by commas (for example, *.txt)

JavaScript Interface

boolean project.uploadToHMI(dirPath, strFilter); boolean project.downloadFromHMI(dirPath, strFilter);

Parameter dirPath strFilter

Description

Source path on the HMI device for file download/upload

File extensions of the files to be displayed separated by commas (for example, *.txt)

Return values:

True

False

Transfer successful

Transfer failed

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

161

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

TrendName

FolderPath

Description

Name of historical trend to store

Destination folder: 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

See

"Exporting trend buffer data" on page 219

DateTimePrefixFileName

true = the dumped file will have date and time as prefix to its name (for example D2012_01_

01_T10_10_Trend1.csv)

162

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12    Actions

Parameter timeSpec

FileName

Description

Time format: l

Local = the time values exported are the time of the HMI device.

l

Global = the time values exported are in UTC format.

Enabled when the DateTimePrefixFileName=true

The below wildcards are supported l

%n = Trend name l

%y = Year l

%M = Month l l

%d = Day

%h = Hour l

%m = Minutes l

%s = Seconds

Example: \%n\%y%M%d\%h%m%s

Note: execution of the DumpTrend action will automatically force a flush to disk of the data temporarily maintained in the RAM memory. See

"History trends" on page 222

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.

To convert binary dump files to .csv

The TrendBufferReader.exe tool is stored in the Utils folder of the JMobile Studio installation folder.

Use the following syntax:

TrendBufferReader -r Trend1 Trend1.csv 1 where:

Trend1

= name of the trend buffer without extension resulting from the dump (original file name is trend1.dat)

Trend1.csv

= name for the output file.

.csv file structure

The resulting .csv file has five columns

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

163

System actions

Column Description

Data Type

Data type of sampled tag:

0 = empty

1 = boolean

2 = byte

3 = short

4 = int

5 = unsignedByte

6 = unsignedShort

7 = unsignedInt

8 = float

9 = double

Value

Value of the sample

Timestamp

(UTC)

Timestamp in UTC format

Sampling interval time in milliseconds

Sampling

Time(ms)

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.

Commonly quality values

The most commonly used quality values returned by the HMI acquisition engine are:

Quality

Code

0

4

Quality

BAD

BAD

Description

8

12

16

24

BAD

BAD

BAD

BAD

The value is bad but no specific reason is given

Specific server problem with the configuration. For example, the tag has been deleted from the configuration file (tags.xml).

No value may be available at this time, for example the value has not been provided by the data source.

Device failure detected

Timeout before device response.

Communication failure

164

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12    Actions

Quality

Code

28

32

64

65

66

67

84

85

86

87

192

Quality

BAD

BAD

Description

No data found for upper or lower bound value Trend interface specific flag.

No data collected (for example, archiving not active.

Trend interface specific flag.

This value is also used to indicate a temporary offline status (for any condition where sampling was stopped).

UNCERTAIN No specific reason.

UNCERTAIN No specific reason.

The value has ‘pegged’ at some lower limit.

UNCERTAIN No specific reason.

The value has ‘pegged’ at some higher limit.

UNCERTAIN No specific reason.

The value is a constant and cannot move.

UNCERTAIN Returned value outside its defined limits defined.

In this case the Limits field indicates which limit has been exceeded but the value can move farther out of this range.

UNCERTAIN Returned value outside its defined limits defined.

In this case the Limits field indicates which limit has been exceeded but the value can move farther out of this range.

The value has ‘pegged’ at some lower limit.

UNCERTAIN Returned value outside its defined limits defined.

In this case the Limits field indicates which limit has been exceeded but the value can move farther out of this range.

The value has ‘pegged’ at some higher limit

UNCERTAIN Returned value outside its defined limits defined.

In this case the Limits field indicates which limit has been exceeded but the value can move farther out of this range.

The value is a constant and cannot move.

GOOD -

DeleteTrend

Deletes saved trend data.

Define the name of the trend from which you want to delete logs.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

165

System actions

DumpEventArchive

Stores historical alarm log and audit trail data to external drives, such as USB memory or SD card.

Parameter

EventArchive

FolderPath

Description

Name of buffer to dump data

Destination folder l l

Internal = \Flash\QTHMI\workspace\Dump

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.

DumpConfigFile

Dump the description files of the archives

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)

timeSpec csv Colums

Time format: l

Local = the time values exported are the time of the HMI device.

l

Global = the time values exported are in UTC format.

Select the columns to dump into the .csv file.

Available only when the EventArchive is an alarms buffer

FileName

The below wildcards are supported l l

%n = Event archive name

%y = Year l

%M = Month l

%d = Day l l

%h = Hour

%m = Minutes l

%s = Seconds

166

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12    Actions

Parameter

Language

Description

Example: \%n\%y%M%d\%h%m%s

Available only when the DateTimePrefixFileName=true

Select the language to use. When empty, dump will execute on all languages.

Available only when the EventArchive is an alarms buffer

Example

When exporting Event buffers in binary format and DumpConfigFile is set to true (recommended settings), there are two folders: l

data, containing data files, l

config, containing configuration files for .csv conversion.

\

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

To convert dump files to .csv

The AlarmBufferReader.exe tool is stored in the Utils folder of the JMobile Studio installation folder.

Use the following syntax:

AlarmBufferReader AlarmBuffer1 FILE ./AlarmBuffer1.csv

where:

AlarmBuffer1

= name of the dumped .dat without extension

AlarmBuffer1.csv

= name for the output file.

The utility AuditTrailBufferReader.exe is available for Audit Trail buffers.

Note: set DumpConfigFile to true.

The result of the dump is a folder structure similar to the one generated for Events.

Use the following syntax:

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

167

AuditTrailBufferReader AuditTrail FILE ./AuditTrail.csv

where:

AuditTrail

= name of the dumped buffer without extension and

AuditTrail1.csv

= name for the output file.

csv Columns

Note: available only for Alarms buffers.

For Alarms buffers, additional columns can be included in the dump .csv file.

System actions

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.

See

"System Variables" on page 85

for details.

SafelyRemoveMedia

Provides for safe removal of SD card or USB drive fromHMI.

168

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12    Actions

CopyCodesysProject

Copies the CODESYS 2.3 project files (.prg, ,chk and .sdb) from the source path to the device CODESYS folder.

Files are automatically renamed to DEFAULT.CHK , DEFAULT.PRG , BOOT.SDB if needed. 

After copy the CODESYS module is stopped, reloaded and started again.

Parameters

Source Path

Copy Symbols

Description

Project path into external storage (for example, \USBMemory\Codesys)

true = copies .sdb symbol file required by the CODESYS 2 ETH protocol

To generate CODESYS project files

1. Run Project > Rebuild All: an updated .sdb symbol file is generated.

2. Run Online > Create boot project: the .chk and .prg file are generated.

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 l

PLC Status

Get CopyCodesysProject Action

ControlUserLED

Sets the user LED behavior.

Not available on Linux platforms (see

"HMI devices capabilities" on page 475

for panels details)

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

169

Tag actions

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.

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

TagName

Step

Do not step over limit

Step Limit

Description

Name of tag to increase/decrease

Step value

Enables step limit

Value of step limit, if enabled.

170

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12    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

Protocol ID

NodeID

Enable

Description

Unique identifier of selected protocol

Node identifier in selected protocol. Can be attached to a tag.

Node communication status:

False = disabled

True = enabled

When attached to a tag, tag = 0 means False

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.

Trend actions

Used for Live Data Trends and Historical Trends Widget.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

171

Trend actions

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.

Define trend name and page duration.

Note: you can set page duration at run time using a combo box widget.

ZoomInTrend

Reduces page duration.

ZoomOutTrend

Extends page duration.

ZoomResetTrend

Reset the zoom level back to the original zoom level.

172

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12    Actions

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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

173

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

Trend Name

Page Scroll Direction

Description

Trend widget ID (for example, TrendWindow3)

Direction of page scrolling (Forward/backward)

174

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12    Actions

User management actions

User management and security settings.

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.

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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

175

User management actions

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.

Adds a user at run time: a dialog appears.

DeleteUser

Reserved to users with Can manage other users property set.

Deletes a user at run time: a dialog appears.

No parameter is required.

EditUsers

Reserved to users with Can manage other users property set.

Edits user settings.

176

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12    Actions

DeleteUMDynamicFile

Deletes the dynamic user management file. Changes made to users settings at run time 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.

Set destination folder for the export file.

Important: The user file is encrypted and cannot be edited.

Note: supported formats are FAT or FAT32. NTFS format is not supported.

ImportUsers

Imports user settings from a previously saved export .xml file (usermgnt_user.xml).

Set source folder for the import file.

Note: supported formats are FAT or FAT32. NTFS format is not supported.

Widget actions

ShowWidget

Shows or hides page widgets.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

177

Widget actions

Property

Widget

Description

Widget to show/hide

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

Widget

Direction

Speed

X Distance

Y Distance

Slide Limit

X Limit

Y Limit

Toggle Visibility

Image Widget

Description

Widget to slide

Sliding direction

Transition speed of sliding widget

Travel distance of X coordinate in pixels

Travel distance of Y coordinate in pixels

Enable/Disable movement limits of the widget with respect to the x, y coordinates

Limit position of slide action for x coordinate

Limit position of slide action for y coordinate

Show/hide widget at the end of each slide action

Image displayed during slide action

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.

Java Script Interface

project.beginDataEntry(wgtName [, pageName])

Parameter Description wgtNameWidget

Widget name

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.

178

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

12    Actions

MoveIPCamera

Sends remote commands to a camera that supports them. See

"IP Camera widgets" on page 333

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 204

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 pane" on page 58

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

Media Type

Device

Description

Type of file to update

Device where new media files are supplied

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.

Java Script Interface

void replaceMedia(var sourcePath, var bSilent, var Device, var nMediaType, var bResize) project.replaceMedia("Images", true, "\USBMemory", 1, true);

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

179

Widget actions

180

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

13 Using the Client application

JMobile Client is a standalone application which provides remote access to the JMobile HMI Runtime, and is included in the JMobile Suite. JMobile 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.

To run the JMobile Client application:

1. From the Start menu > JMobile Suite >JMobile 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

): JMobile Client will connect to the server and the same graphical application running on the device will be loaded in the client window.

JMobile 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 JMobile Client or to control an HMI device with a PLC.

See

"Behavior" on page 64

for details.

The Client application toolbar

Workspace

Settings and time zone options

Transferring files to a remote HMI device

182

182

182

183

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

181

The Client application toolbar

The Client application toolbar

Element

HMI server address

Connection status

Reload from cache

BookMark

Settings

Reload options

Option

F5

Shift + F5

Description

HMI device address

Network request status. Red during data exchange.

Reloads project

Bookmarks preferred pages and reload them.

Opens Settings dialog

Description

Reloads project from cache

Downloads project to client

Workspace

Project files are uploaded from the device and stored in JMobile Client into the following cache folder.

%appdata%\Exor\[build number]\client\cache

where:

[build number] = folder named as build number, for example 01.90.00.608.

Settings and time zone options

In the Settings dialog you can configure client settings and decide how to display project timestamp information.

HTTP settings

Parameter

Protocols

Description

Communication protocol used by JMobile Client to communicate with an HMI device.

Update Rate

Polling frequency to synchronize data from server. Default = 1 s.

Timeout

Maximum wait time before a request is repeated by the JMobile Client. Default = 5 s.

Reuse connection

Enables reuse of the same TCP connection for multiple HTTP requests to reduce network traffic.

182

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

13    Using the Client application

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.

Enable compression

Compresses data to reduce download times. Default = disabled.

CAUTION: enabling this option could causes excessive CPU overhead.

Time

Settings

Used by the client to adapt the widget time stamp information.

FTP settings

Parameter

Port

Description

FTP communication port

Time settings

Parameter

Use Widget

Defaults

Local Time

Description

Displays time information according to the widget settings.

Global Time

Server Time

Translates all timestamps in the project into the computer local time where the client is installed.

Translates all timestamps in the project into UTC format.

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.

Transferring files to a remote HMI device

You can upload and download files to and from a remote HMI device using two dedicated actions. These actions can only be used from a remote JMobile Client and access remote files via FTP.

Important: Enable FTP support and give all necessary user rights to the folders used to transfer files.

See

"Remote Client actions" on page 161 .

See

"Remote Client variables" on page 95

.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

183

Transferring files to a remote HMI device

184

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

14 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:

User name

Password

admin admin

Changing FTP settings

Path: ProjectView> Security> UserGroups > Authorization Settings

You can change FTP permissions and account information in the Ftp tab of the admin authorizations dialog.

See

"Configuring groups and authorizations" on page 258

for details.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

185

FTP settings

186

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

15 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: l start a server in the HMI device l install a viewer on the remote device

Starting VNC server on WinCE devices

Starting VNC server on Linux devices

Starting VNC viewer

188

189

189

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

187

Starting VNC server on WinCE devices

Starting VNC server on WinCE devices

VNC server is a plug-in. It can be enabled and downloaded as part of the Runtime.

"Software plug-in modules" on page 63 .

Installing VNC server

Path: ProjectView > Project properties

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.

Starting/stopping the VNC server

The VNC server is located in the folder \Flash\qthmi\VNC and is activated using the action launchVNC. If enabled from the project properties, it can also be activated from the runtime context menu Developer tools> Launch VNC.

To enable the runtime contextual menu see

"Project properties" on page 57

VNC Options dialog

From the VNC Options dialog you can perform several tasks.

Tab

Control

Functions

Star/stop the VNC server and connect to viewer

Options

Define security information for server access using a VNC viewer

Advanced

Enable automatic activation of VNC server at HMI device startup.

Select Silent Startup to keep the VNC Options dialog in the background when Autostart is enabled.

Enable Show Taskbar Icon when debugging out of KIOSK mode.

Out

Contains the configuration settings for an outgoing connection to a listening VNC viewer software.

188

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

15    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.

VNC default settings

TCP port

Password

5900 null

Important: The VNC server allows only a single client.

Starting VNC server on Linux devices

VNC server is a service embedded inside the BSP that can be activated from the Services tab of the device System

Settings. See

"System Settings" on page 428

for details.

Starting VNC viewer

No VNC viewer is provided as part of JMobile Suite.

Many compatible VNC viewers are available for free download (for example, TightVNC).

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

189

Starting VNC viewer

190

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

16 JMcloud

JMcloud is a software platform designed for connecting users and machines through global networks such as Internet.

JMcloud includes all the services needed for central supervision of plants and machines and offers a platform for teleservice and telecontrol.

Users who have access to the JMcloud can easily reach the gateways and the endpoints, provided they have the necessary access rights, using the application JMcloud Connect.

This diagram describes a possible setup of the various components of the infrastructure and their connections.

To download the JMcloud Reference Manual, see http://jmcloud.exorint.net/ .

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

191

192

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

17 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.

Important: No default action is associated with any alarm.

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.

Alarms Editor

Remote alarms acknowledge

Alarm state machine

Setting events

Active Alarms widget

Alarms History widget

Managing alarms at run time

Enable/disable alarms at run time

Displaying live alarm data

Exporting alarm buffers to .csv files

Exporting alarm configuration

194

196

197

198

200

204

205

205

206

206

207

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

193

Alarms Editor

Alarms Editor

Path: ProjectView> Config > double-click Alarms

Adding an alarm

Click + to add an alarm.

Parameter Description

Name

Name of alarm

Groups

Enable

Groups associated with the alarm. They can be used in widgets display filters.

Enable/disable triggering of alarm.

Alarms can be enabled or disabled at run time as well (see

"Enable/disable alarms at run time" on page 205

for details).

Ack

Reset

Buffer

Trigger

Enable/disable acknowledgment of alarm, if selected the operator must acknowledge the alarm once triggered to remove it from the Active Alarm widget.

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.

Buffer file where the alarm history will be saved.

Triggering condition depending on alarm type: 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

194

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

17    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.

Tag

Remote

Enable

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.

Tag used by the PLC to enable/disable the alarm.

l l

Changing the enable status from the Alarms Widget will change the tag value

When the tag cannot be read (e.g. communication error) the alarm is disabled l

No tags related to the alarm are refreshed when alarm is disabled.

Tip: It could be useful to enable the logging of the alarm's enable flag

Remote

Ack

Tag used by the PLC to acknowledge the alarm. A transition of this tag from 0 to a non zero value is considered an acknowledgment request.

Leave empty if remote acknowledgment is not required.

See

"Remote alarms acknowledge" on the next page

for details.

Ack Notify

Tag used by the HMI device to notify when the alarm is acknowledged from the device or from the PLC.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

195

Remote alarms acknowledge

Parameter Description

0 = set to this value when alarm is triggered

1 = set to this value when alarm is acknowledged.

Action

User

Action

Actions executed when the alarm is triggered. Additional conditions can be specified in the Events column.

See

"Setting events" on page 198

for details.

Actions executed when user press the action button in the active alarm widget.

See "

"Active Alarms widget" on page 200

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.

See

"Displaying live alarm data" on page 206

for details.

Foreground and background colors of alarm rows based on the status of alarm.

Color

AckBlink

Severity

Blinking for triggered alarms. If selected the alarm rows blinks until acknowledged. Only effective if Ack is selected.

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

6 = critical

Events

Conditions in which the alarms are notified, logged or printed.

See

"Setting events" on page 198

for details.

Remote alarms acknowledge

When the Remote Ack parameter is set, an alarm can be acknowledged from a PLC device setting a tag value to a nonzero value. The acknowledged status is notified to the PLC device by the Ack Notify flag.

Alarms acknowledgement process

Remote Ack tag is set/reset by the PLC to request the acknowledge, and Ack Notify is set/reset by HMI device to notify the execution of the acknowledge.

196

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

17    Alarms

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.

Alarm state machine

The runtime implements the alarm state machine described in this diagram.

States and transitions between states are described according to the selected options and desired behavior.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

197

Setting events

Setting events

Path: ProjectView> Config > Alarms > Events column

Events are defined using the Alarms Editor.

See

"Alarms Editor" on page 194

for details.

Notifying events

Path: ProjectView> Config > Alarms > Events column > Notify tab

Set conditions under which the alarms will be posted in the alarm widget.

198

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

17    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 column > Log tab

Set conditions for which you want to store the specific event in an alarm history buffer.

The alarm history is logged in the Event Buffer.

Executing actions

Path: ProjectView> Config > Alarms > Events column > Actions tab

Set conditions under which the action(s), configured for the specific alarm, must be executed.

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 column > Print tab

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

199

Set conditions for which you want to print the specific event

Setting storage device

Path: ProjectView> Config > Events Buffer> Storage Device tab

1. Open the Storage Device dialog.

2. Select a device for event data storage.

Active Alarms widget

Data is automatically saved every five minutes except for alarm data which is saved immediately.

Active Alarms widget

You can insert the Active Alarms widget in a page to display the alarms and to acknowledge, reset or enable/disable them.

200

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

17    Alarms

Alarm filters

Path: ActiveAlarm widget> Properties pane> Filter

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 2 is, by default, not configured and available for customization.

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

To set one of the two available filters:

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.

See

http://www.gnu.org/software/gawk/manual/gawk.html

for details on how to use regular expressions.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

201

Active Alarms widget

Filters first example

You want to show all alarms matching Filter 1 with value equal to 10. Then properties settings: Filter column 2 = Value,

Filter 2 = 10

Filters second example

You want to show all alarms matching a Severity value from 3 to 6 (Normal to Critical). Then properties settings: Filter

column 2 = Severity, Filter 2 = [3-6]

Filters third example

You want to show all alarms matching a value from 11 to 19. Then properties settings: Filter column 2 = Severity, Filter 2

= ^(1[1-9]$)

Meaning:

^ = match must starts from the beginning of the string

1[1-9] = first char must be 1 and the second char must be between 1 and 9

$  = end of the comparison.

202

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

17    Alarms

Filters expression examples

Filter by String list

State

Value

Value

Hide Not Triggered

10 < Value < 20

20 <= Value <100

Value

Value

Value

Value

100 < Value < 200

Value 2?/3?/4?/5?

Value >= 100

Value >= 20

Data list

^((Not Triggered Acked|Not Triggered Not Acked|Triggered).*$)

^(1[0-9]$)

^([2-9].$)

^(1[0-9][0-9]$)

^([2-9].*$)

^([1-9][0-9][0-9].*$)

^([2-9].*$|[1-9][0-9][0-9].*$)

Sorting alarms

Path: ActiveAlarm widget> Properties pane> Sorting

The sorting function allows you to sort alarms at run time in the alarms widget by clicking on the column header.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

203

Alarms History widget

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 194

for details) contains valid actions, the

Action icon is showed. Pressing the icon, the configured actions will be executed.

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

Alarms History widget

Logs and display an alarm list if Buffer property in Alarms Configuration Editor is set.

204

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

17    Alarms

Attaching widget to buffer

Path: AlarmHistory widget> Properties pane> Buffer > EventBuffer

In Properties pane > Event select the Event Buffer from which the alarm list is retrieved

Managing alarms at run time

When an alarm is triggered it is displayed in the Active Alarms widget where you can acknowledge and reset it. You can filter the alarms displayed using several filters, for example you can hide not triggered alarms or show all alarms.

See

"Active Alarms widget" on page 200

for details.

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.

Enable/disable alarms at run time

You can enable or disable the alarms at run time.

To enable an alarm select the Enable option in the alarm widget.

Disabled alarms are not triggered and therefore not displayed at run time.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

205

Displaying live alarm data

Note: Alarms can be configured to be enable/disable even from the PLC.

See

Alarm Configuration Editor

for details.

Displaying live alarm data

Path: ProjectView> Config > double-click Alarms

Both in the Active Alarms and in the History Alarms widget you can set the alarm description to display live tag data.

To show the tag value, set a placeholder in Description entering the tag name in square brackets, for example "[Tag1]". At run time, in Description column of Active Alarms widget the current value of the tag will be displayed. In History Alarms widget or in .csv file the value at the time the alarm was triggered is displayed

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\]]

Example of Alarm widget

Note: The csv file resulting from the dump of the alarm events list will also display the tag value in the description column.

Exporting alarm buffers to .csv files

To export an event buffer containing an history alarms list, use the DumpEventArchive action.

See

"System actions" on page 162

for details.

206

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

17    Alarms

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.

Exporting alarm configuration

Path: ProjectView> Config > double-click 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) .

Importing alarm configuration

Path: ProjectView> Config > double-click Alarms

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

207

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

Black This is a new alarm and it will be imported

Red This alarm has not been found and will be removed (only if check "Replace project alarms with imported alarms" is checked)

Blue This alarm has been modified and will be updated.

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.

208

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

17    Alarms

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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

209

Exporting alarm configuration

210

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

18 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 156

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

Configuring a recipe widget

Recipe status

Uploading/downloading a recipe

Backup and restore recipes data

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.

211

214

215

215

216

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

211

Managing recipes

Recipe editor

Path: ProjectView> Recipes > double-click RecipeName

Configuring recipe properties

In the Properties pane of each recipe you set the following parameters:

Parameter Description

Recipe Name

Name of the recipe

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.

Defining recipe fields

Create a recipe field in the page using a numeric widget and attaching it to a recipe item after selecting Recipe as the

Source.

212

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

18    Recipes

In the Attach to dialog you have the choice of all the different recipe variables, such as: l l

Current Recipe >Current Selected Recipe Set> Element > Value

Selected Recipe > Selected Set0 > Element > Value l recipeList

When numeric widgets are defined as read/write, the default recipe data can be edited at run time. 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.

Storing recipe data

In the Recipe Editor click the storage type icon to select where to store recipe data: the Storage Device dialog is displayed.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

213

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.

Configuring a recipe widget

You can choose one of the two recipe widgets available in the Widget Gallery: l

Recipe set: allows you to select a recipe set for upload or download. See

"Uploading/downloading a recipe" on the facing page

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.

Configuring the Recipe Set widget

In the Properties pane of each Recipe Set widget set the following parameter:

214

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

18    Recipes

Parameter

Recipe Name

Description

Name of the 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.

5

6

7

Code Function

0

Set modified

1

Download triggered

2

3

4

Download

Done

Download

Error

Upload triggered

Description

Selected set changed

Download request triggered

Download action completed

Error during download (for example, unknown set, unknown recipe, controller not ready, Tags write failed etc.)

Upload request triggered

Upload done Upload action completed

Upload Error Error during upload - same as for download

General Error General error (for example, data not available)

Note: On device startup the value of recipe Status is 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 36

for details) l configure the action in an alarm action list (see

"Alarm actions" on page 142

for details) l configure the action in a scheduler action list (see

"Scheduling events at run time" on page 254

for details)

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 156

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

215

Backup and restore recipes data

Backup and restore recipes data

The recipe data stored in an HMI device can be exported for backup and later restored. This is done using the

DumpRecipeData or the RestoreRecipeData actions.

See

"Recipe actions" on page 156

for details.

216

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

19 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.

Data logging

Exporting trend buffer data

Trend widgets

History trends

Trend widget properties

Trend widget gestures

Values outside range or invalid

Showing trend values

Scatter diagram widget

218

219

220

222

223

224

225

226

227

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

217

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.

Adding a trend buffer

Path: ProjectView> Config > double-click Trends

1. Click Add to add a new buffer.

2. Click + next to each trend buffer to display all configuration parameters.

218

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

19    Trends

Element

Total memory

Space

Description

Memory currently used by the trend buffer. See

"Table of functions and limits" on page 474

for maximum number of samples allowed for project.

This percentage is calculated as follows:

Trend Name

Active

Name of trend that will be displayed in the window property pane.

When enabled, the trend runs by default at system startup.

Note: Trends cannot be activated at run time.

Source

Tags sampled by the trend.

Sampling Time (s)

Sampling interval in seconds.

Trigger

Tag triggering the sample. When the value of this tag changes, a sample is collected.

Note: Trigger and Source can refer to the same tag.

Number of Samples

Buffer size.

Storage Device

Where trend buffer data will be stored.

Buffer

Sampling Filter /

Trigger Filter

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.

If triggering condition is time, a new sample is stored when its value, compared with the last saved value, exceeds the specified limits.

If triggering condition is a tag, a new sample is stored at each change of the trigger tag value.

Sampled tags table

Name: name of trend

Tag: tag to be sampled.

Comment: trend description

Exporting trend buffer data

Use the DumpTrend action to export trend buffer data to a .csv file.

Format of trend data exported to a .csv file can be selected from a macro parameter as shown in figure. All tags specified in the trend buffer are exported

Dump normal mode (compatibility mode)

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

219

Trend widgets

Dump extended mode (compact mode)

Note: The first row of the header contains the tags names and tags data types

See

"System actions" on page 162

for details.

Trend widgets

Data logged by the HMI device can be displayed in graphical format using trend widgets.

RealTime trend widget

The real- time trend widget can be used to display the changes of value of a tag. Data is not stored in a trend buffer and cannot be retrieved for later analysis.

To display a real-time trend:

220

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

19    Trends

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.

RealTime trend widget properties

Property Description

Num

Curves

Number of trend curves to be displayed (Max. 5)

Page

Duration

Time range of the x-axis.

Tip: You can attach a Date Time combo widget to the Page Duration property and dynamically change page duration at run time.

Starting

Position

Specifies the starting point of the curve when the page is opened.

X Labels

Number of ticks on the x-axis scale

Y Labels

Number of ticks in the y-axis scale.

Text

Trend title and font properties (font size, label, etc.)

Grid

Properties of grid presentation (colors)

Cursor

Properties of cursor presentation (enable and color)

X Scale

Properties of X Scale presentation

Y Scale

Properties of Y Scale presentation

Curve

"n"

Tag that will be plotted in the trend widget. See

"Trend widget properties" on page 223

for details.

You can set the minimum and maximum of the curves (MinY, MaxY). You can attach a tag to minimum and maximum properties. This enhances the ability to change the minimum and maximum values dynamically at run time.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

221

History trends

Scaling data

Tag values can be scaled using the X Forms in the Attach to dialog. See

""Attach to" parameters" on page 36

for details.

History trends

Trend data stored in trend buffers can be analyzed using the History Trend widget.

This is a two-step process: l l first you create a trend buffer to collect data for specified tags at specific points in time, then you configure a History Trend widget to display the collected data in a graphical format.

See

"Data logging" on page 218

for details on how to create a trend buffer.

History Trend widget

History Trend widget displays in graphical format the content of a trend buffer.

Start time is the current time and stop time will be the current time plus the duration of the window. The curve starts from the left and progresses to the right, data is automatically refreshed during a certain interval time, until the stop time.

When the curve reaches the stop time, the curve will scroll left and the update of the curve will continue until it again reaches the stop time. At that moment a new scroll is automatically performed and the process repeats.

History trends require a proper configuration of trend buffer.

See

"Data logging" on page 218

for details on how to work in the Trend editor.

Configuring the History Trend widget

1. From the Trends/Graphs section of the Widget Gallery, drag and drop the History Trend widget to the page.

222

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

19    Trends

2. In the Properties pane, attach the trend buffer to be plotted in the widget.

Trend widget properties

Some Trend widget properties are only available when the Properties pane is in Advanced view.

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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

223

Trend widget gestures

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.).

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.

Calendar color bands example

Trend widget gestures

Trend widgets support gesture commands:

Gesture pan pinch

Description

Touch the widget to scroll the curve within the widget area

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).

224

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

19    Trends

Values outside range or invalid

When trend value goes beyond the limits set for the trend widget, a dotted line is displayed. When the value of the tag is not available, for example the controller device is offline, no curve is drawn.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

225

Showing trend values

Showing trend values

Trend cursor displays the trend value at a specific point.

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.

In this example the Y axis value of the cursor is displayed.

To display the trend timestamp at the position of the cursor, define a numeric field and attach it to Cursor Timestamp widget tag.

226

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

19    Trends

Scatter diagram widget

A scatter diagram is a type of diagram to display values for two variables from a set of data using Cartesian coordinates.

The data is displayed as a collection of points, each having the value of one variable determining the position on the horizontal axis and the value of the other variable determining the position on the vertical axis. For this reason it is often called XY graph

Scatter diagram curves are obtained by a linear interpolation of points. To create a new scatter diagram:

1. Add a Scatter Diagram widget to the page.

2. Select the number of curves to show: each curve is named as Graph1, Graph2,...

3. Customize the general graph properties such as X Min, X Max, Grid details.

4. Define the max number of samples/values for each curve by setting the Max Samples parameter.

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 .

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

227

Note: Scatter diagrams support only the RefreshTrend action.

Scatter diagram widget

228

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

20 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.

Data transfer editor

Exporting data to .csv files

Data transfer limitations and suggestions

230

232

232

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

229

Data transfer editor

Data transfer editor

Path: ProjectView> Config > double-click Data transfer

Use the Data transfer editor to map transfer rules.

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.

To add a new rule, click +: a new tag line is added.

Data transfer toolbar

Prameter

Import/ Export

Search

Filter by

Description

Imports or exports data transfer settings from or to a .csv file.

Displays only rows containing the search keyword.

Display only rows matching filter and search field.

Data transfer parameters

Prameter

TAG A/ TAG B

Direction

Update Method

Description

Pair of tags to be mapped for exchanging through the HMI device.

Transfer direction.

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.

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.

230

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

20    Data transfer

Prameter Description

Note: This method applies only to unidirectional transfers (A->B or B->A).

On Update: Data transfer occurs whenever the value of the source tag changes.

Note: This method applies both to unidirectional and to bidirectional transfers

(A->B, B->A and A<->B).

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.

Note: Changes on source tags faster than Rate may be not detected .

Trigger,

High limit,

Low limit on Startup

Tag that triggers the data transfer process. When this tag changes its value outside the boundaries set as High limit and Low limit, data transfer is started. The range of 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.

Low limit is less or equal to zero.

Note: If both Low limit and High limit are set to "0", data transfer occurs whenever the value of the trigger tag changes.

When selected, data transfer is forced: l on HMI startup if the quality of the source tag is good l after communication errors, when the associate device nodes return active

See

"Objects" on page 384

for details on quality.

Important: Data transfers executed on startup may have major impact on the HMI device boot time. Enable this option only when necessary.

Example of limit setting

High limit = 1,9

Low limit = - 0,9

• = points where the data transfer is triggered

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

231

Exporting data to .csv files

Exporting data to .csv files

Configuration information for data transfers can be exported to a .csv file.

Example of data transfer settings in .csv file

Column Description

A to G

Same data as in the Data transfer editor

H

Unique identifier automatically associated to each line.

Important: When you edit the .csv file and you add any extra line, make sure you enter a unique identifier in this column.

I and J

Reserved for future use.

Import/export use the separator character defined inside Windows Regional Settings.

Data transfer limitations and suggestions

Correct definition of data transfer rules is critical for the good performance of the HMI devices. To guarantee reliability of operation and performance, keep in mind the following rules.

On trigger method

The On trigger method allows only unidirectional transfers, (A->B or B->A)

232

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

20    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 l number of data transfers defined, number of data transfers eventually occurring at the same time, l frequency of the changes of the PLC variables that are monitored,

Important: Always test performance of operation during project development.

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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

233

Data transfer limitations and suggestions

234

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

21 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.

Offline node management process

Manual offline node management process

Manual offline configuration

Automatic offline node detection

236

236

236

237

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

235

Offline node management process

Offline node management process

Steps of the process are: 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.

Manual offline node management process

Offline node management can be done manually. When a specific device is online and it is communicating normally you can: 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.

Manual offline configuration

When you know that some devices in communication with the HMI device are going to remain offline for a certain period of time, you can exclude them from communication using the EnableNode action.

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.

236

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

21    Offline node management

Automatic offline node detection

When a device is not answering to communication requests, it is de-activated. The HMI device stops sending requests to this device. After three seconds, the HMI device sends a single command to check if device is available, if so the communication is restarted, otherwise it is disabled for another timeout interval.

Default settings can be modified in Protocol editor.

Note: Not all protocols support this feature.

Parameter

Enable Offline

Algorithm

Offline Retry

Timeout

Description

Enables offline management for the protocol

Interval in seconds for the retry cycle after a device has been deactivated. Range:

1–86.400 seconds (24h).

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

237

Automatic offline node detection

238

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

22 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.

Important: In Windows XP operating systems you have to install the support for complex script and

East Asian languages.

Supported fonts for Simplified Chinese

For Simplified Chinese, the following fonts are supported:

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

239

Font name

Fangsong

Arial Unicode MS

Kaiti

Microsoft Yahei

NSImsun

SimHei

Simsun

Font file

simfang.ttf

ARIALUNI.TTF

simkai.ttf

msyh.ttf

simsun.ttc

simhei.ttf

simsun.ttc

Supported fonts for Traditional Chinese

For Traditional Chinese, the following fonts are supported:

Font name

DFKai-SB

Microsoft Sheng Hai

Arial Unicode MS

MingLiU

PMingLiU

MingLiU_HKSCS

Font file

kaiu.ttf

msjh.ttf

ARIALUNI.TTF

mingliu.ttc

mingliu.ttc

mingliu.ttc

The Multi-language editor

Changing language

Multi-language widgets

Exporting/importing multi-language strings

Changing language at run time

Limitations in Unicode support

241

242

242

244

246

246

240

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

22    Multi-language

The Multi-language editor

Path: ProjectView> Config > double-click MultiLanguage

Language settings

Parameter

Language

Name

Language

Code

Writing system

Default Font

Description

Name identifying the language in the project.

ISO 639 language code identifier, used to match language items when importing resources from external xml files.

Select the set of fonts to be used with the language

Default font for project's widgets.

Note: When you choose a new font you are prompted to replace the font used in the widgets you already created.

Fonts

Size

Storage

Number of fonts associated with the selected language.

Memory used to store font files.

Location of file fonts is a removable external memory.

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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

241

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.

Multi-language for label widgets

Double-click on a text widget in a page to open the Text dialog.

242

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

22    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

Multilanguage

Choose text from other widget

Description

Enable/disable multi-language function for the widget.

Click on button to browse existing message strings in project to pick text for the widget.

Multi-language for message widgets

Double-click on a message widget in a page to open the Message Text dialog.

Parameter

Multilanguage

Continuous Index

Min

Range

Choose text from other widget

Description

Enable/disable multi-language function for the widget.

Index for the widget is set of contiguous numbers (example 3, 4,5,6)

Starting number for index

Number of messages

Click on button to browse existing message strings in project to pick text for the widget.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

243

Multi-language for alarm messages

To add a multi-language strings for alarm messages:

1. Open the Alarm editor.

2. Select a language using the language combo box.

3. Enter the text for the alarm in the Description column.

Exporting/importing multi-language strings

Tip: Text labels with alarm states displayed by alarms widgets can be translated or personalized through the

Multilanguage text editor.

Multi-Language for pop-up messages

To add a multi-language pop-up message:

1. Select a language from the language combo box.

2. Add the Page action ShowMessage and enter the text in the selected language.

Exporting/importing multi-language strings

The easiest way to translate a project into multiple languages is to export all texts to a .csv file, translate the resulting document and then import the translated text back into the project.

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.

244

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

22    Multi-language

Exporting and reimporting strings

Path: ProjectView> Config > double-click MultiLanguage

To export and re-import multi-language strings:

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.

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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

245

Changing language at run time

Import constraints

The following formats are supported for import: l

Comma Separated Values (.csv) l

Unicode Text (.txt)

Note: Use the Unicode Text file format when you import a file modified using Microsoft® Excel®.

Changing language at run time

Changing language with an action

After the project download, the HMI Runtime will start using the language set as default. You can change the language using the SetLanguage action. See

"MultiLanguage actions" on page 146

.

Note: Once the language has been changed, it will be used also in future sessions.

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.

Limitations in Unicode support

JMobile Studio has been designed for working with Unicode text. However, for compatibility issues with some platforms,

Unicode is supported only in a subset of properties.

Area

Protocol editor

Property

Alias

Tag editor

Name

Group

Charset Accepted

ASCII [32..126]

ASCII [32..126]

ASCII [32..126]

Reserved Chars/Strings

(space) , ; : . < * >'

. \ / * ? : > < | " & # %;=

 <New>  \ / * ? : > < | " & #

% ;

Comment Unicode

246

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

22    Multi-language

Area

Trends

Printing

Reports

Alarms

Property

Name

Name

Name

Description

Events

Buffer Name

Scheduler

Name

Languages

Language Name

Texts in widgets

Texts from import files

User

Group

User

Group Name

Comments

Name

Recipes

Password

Comment

Name

ASCII [32..126]

ASCII [32..126]

ASCII [32..126]

Unicode

Unicode a-z A-Z _

Unicode

ASCII [32..126]

Unicode

Unicode

ASCII [32..126]

Set Name

Element name

ASCII [32..126]

ASCII [32..126]

General

Charset Accepted

ASCII [32..126]

ASCII [32..126]

ASCII [36..126]

Unicode

Project Name A-Z,a-z,0-9,-,_

Page Name A-Z,a-z,0-9,-,_

Dialog Page Name A-Z,a-z,0-9,-,_

Template Page

Name

A-Z,a-z,0-9,-,_

Keypad Name A-Z,a-z,0-9,-,_

Files

(Images/Video/etc..)

A-Z,a-z,0-9,-,_

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

Reserved Chars/Strings

\ / * ? : > < | " & # % ;

\ / * ? : > < | " & # % ;

\ / * ? : > < | " & # % ;

[] - for live tags, \ escape seq for [ and \

\ / * ? : > < | " & # % ;

\ / * ? : > < | " & # % ;

\ / * ? : > < | " & # % ;

-

-

-

-

-

-

admin,guest,unauthorized

-

\ / * ? : > < | " & # % ;

-

-

\ / * ? : > < | " & # % ; ! $'

()+,=@[]{}~`

\ / * ? : > < | " & # % ;  ! $'

()+,=@[]{}~`

\ / * ? : > < | " & # % ;  ! $'

()+,=@[]{}~`

“PUBLIC”, “readme”,

“index.html”

247

Limitations in Unicode support

Area

Runtime

Property

Widgets ID

PLC

Communication

Charset Accepted

A-Z,a-z,0-9,-,_

UTF-8, Latin1, UCS-2BE, UCS-2LE,

UTF-16BE, UTF-16LE

Reserved Chars/Strings

-

-

248

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

23 Scheduler

JMobile Studio provides a scheduler engine that can execute specific actions at set intervals, or on a time basis.

Creating a schedule is typically a two-step process:

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 run-time 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.

Creating a schedule

HighResolution schedule

Recurring schedule

Configuring location for schedules

Configuring the Scheduler widget

Scheduling events at run time

250

250

250

252

253

254

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

249

Creating a schedule

Creating a schedule

Path: ProjectView> Config> double-click Scheduler

l

Click + to add a schedule.

Schedule parameters

Parameter Description

ID

Unique code assigned automatically to the schedule

Name

Type

Name of schedule

Type of schedule: l

Recurring, see

"Recurring schedule" below

for details.

l

HighResolution, see

"HighResolution schedule" below

for details

Schedule

Scheduler settings and options. See

"Recurring schedule" below

for details.

Action

Priority

Actions to be executed at the scheduled time

Priority level for the event. If two schedules occur at the same time, the event with the higher priority will be executed first.

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 run time the settings of this type of schedule. If you need to change the action time settings at run time, 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 run time.

250

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

23    Scheduler

Recurring scheduler parameters

Parameter

Type

Mode

Condition

Description

Frequency of the scheduled actions

Specific settings required by each scheduler type

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.

Actions

Actions to be executed by the schedule.

Important: Actions and schedule parameters cannot be modified at run time

Date

Date when the scheduled actions will be executed

Time/Offset

This field display one of the following:

Time = when the scheduled actions will be executed

Offset= delay or advance with respect to the selected mode.

Location

weekdays

Reference location to calculate sunset/sunrise time.

Days of the week in which the scheduled actions will be executed.

On startup

Executes schedule at start up

Enables/disables the schedule

Enable schedule

Execute only at startup

Executes the schedule only once at start up

Schedule type options

Option

By Date

Daily

Every

Hourly

Monthly

Description

Actions are executed on the specified date and time.

Actions are executed daily at the specified time.

Actions are executed with the specified interval (Range: 1 s–1 day)

Actions are executed every hour at the specified minute.

Actions are executed every month at the specified date and time.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

251

Configuring location for schedules

Option

Weekly

Yearly

Description

Actions are executed every week on the specified weekday(s) and time.

Actions are executed every year at the specified date and time.

Schedule mode options

Option Description

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-

Sunset+

Sunset-

Actions are executed with a specified advance before sunrise. The advance is set in minutes/hours and sunrise time is location specific.

Actions are executed with a specified delay after sunset. The delay is set in minutes/hours and sunset time is location specific.

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.

Configuring location for schedules

Scheduled actions can be configured to be executed at a specific time with respect to sunrise and/or sunset. To do this you need to define the correct location, based on UTC information. The system will the automatically calculate the sunrise and sunset time.

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.

Important: Each platform has its own Target_Location.xml file.

252

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

23    Scheduler

Location files position

Application

JMobile Studio

HMI Devices

Simulator

JMobile PC Runtime

Location file path

Exor\JMobile Suite\languages\shared\studio\config\Target_Location.xml

Exor\JMobile Suite\runtime\<HW Platform>\config\Target_Location.xml

Exor\JMobile Suite\simulator\config\Target_Location.xml 

Exor\JMobile Suite\server\config\Target_Location.xml

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.

Configuring the Scheduler widget

To display scheduler data on a page:

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

253

Scheduling events at run time

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.

4. In the Properties pane, customize all settings.

Scheduler settings

Parameter

Name

Columns

Show Header

Time Spec

Text

Display

Description

Schedule to be displayed

Columns to be displayed and their characteristics

Shows/hides column headers

Time to be displayed at run time

Font used for text

Table styles

Scheduling events at run time

At run time you can modify the following scheduling parameters.

254

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

23    Scheduler

Parameter

Occurrence

Condition

Enable

Description

Information on the type of schedule and time of execution

Condition applied to action execution

Enabels/disables the execution of the scheduled actions without deleting the schedule.

See

"Recurring schedule" on page 250

for details on schedule parameters.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

255

Scheduling events at run time

256

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

24 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.

Authorizations and permissions are divided in two categories: l

Widget permissions: hide, read only, full access l

Action permissions: allowed or not allowed.

By organizing permissions and groups you can define the security options of a project.

Enable/disable security management

Configuring groups and authorizations

Modifying access permissions

Assigning widget permissions from page view

Configuring users

Default user

Managing users at run time

Force remote login

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

258

258

259

264

265

265

266

266

257

Enable/disable security management

Path: ProjectView> right-click Security> Enable

The padlock symbol indicates whether the function is enabled or disabled.

Enable/disable security management

Important: Security settings are effective only if the security function is enabled.

Configuring groups and authorizations

Path: ProjectView> Security> double-click UserGroups

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.

Adding a user group

Click + to add user group.

Parameter

Name

Authorized

Home Page

Use Last Visited

Page

Description

Name of users group

Authorization granted

Page displayed when users belonging to this group log in

When selected, the last page displayed by the previous user will be displayed when users belonging to this group log in

258

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

24    User management and passwords

Parameter

Comments

Authorization

Settings

Description

Any comment or description for the group

Opens the Admin Authorization dialog to set access permissions.

See

"Modifying access permissions" below

for details.

Modifying access permissions

Path: ProjectView> Security> double-click UserGroups > Authorization Settings column

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).

Use Base settings to set default permissions at project level.

Possible settings are: l

Full Access to enable read/write access to the widget l l

Read Only to enable readonly access to the widget

Hide to hide widget for selected group

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

259

Modifying access permissions

Changing a widget permission

To change access permission for an individual widget in a page of the project, navigate to that widget within its page on the right pane and customize its access options. Otherwise, all widgets take the permissions set at project or page level.

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:

Permission level

Project level - Basic settings

Page level

Widget level

Priority

Low

Medium

High

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 264

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.

260

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

24    User management and passwords

Action permissions can be modified directly from the project page. See

"Assigning widget permissions from page view" on page 264

for details.

FTP authorizations

In the Ftp tab you can set specific authorizations for the FTP server.

Element Description

Enable FTP authorization

Enables the FTP function for the specific group

Permission

Type of permission: l

Read-Only

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

261

Modifying access permissions

Element

Root Folder

Additional folder

Allowed IP Addresses

Description

l

Read-Write

Folder to be used as root for FTP access. This is a relative path.

Extra folders to be used as root for FTP access (for example, on USB drive or SD card)

List of IP addresses from which FTP connection can be accepted.

Important: This setting is common to all users groups.

HTTP authorizations

In the HTTP tab you set restrictions to HTTP access to the web server integrated in JMobile HMI Runtime.

Wildcards can be used to identify a range of IP addresses.

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

IP list

Login

Access limits

Description

IP addresses authorized to access the HTTP server. By default all.

When disabled, the username and password are not required.

List of resources for which access is limited

Effect of these settings depends on whether the option Force Remote Login has been selected. See

"Force remote login" on page 266

for details.

262

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

24    User management and passwords

Force Remote

Login

-

Disable

Enable

Default Access to workspace

Full

Full

Access limits

-

Can be used to block access to some files/folders or to require authorization

Can be used to open access to files/folders No Access

Important: This setting is common to all users groups.

Adding an HTTP configuration

To add and configure a new access click +: the Access limits dialog is displayed.

To restore the default configuration click the Set default access limits icon. Default configuration allows access to the following: l

PUBLIC folder and Index.html

Miscellaneous settings

In the Miscellaneous tab you can define various authorization settings.

Note: Some of these settings are group specific, while other are common to all groups.

Option Description

Can enter config mode

Enables switching from runtime to configuration mode. Normally used for maintenance.

Can manage other users

Gives super user privileges at run time to manage the select groups. Allows adding, deleting and modifying users' permissions.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

263

Assigning widget permissions from page view

Option

Can load factory settings

Can zoom

Can see log

Can create backup

Number of users allowed to login

Description

Restores factory settings.

Enables zoom in/out in context menu at run time

Allows user to see logs at run time

Allows user to backup project.

Maximum number of users that can be connected to the HMI Runtime at the same time.

Default is 3.

Assigning widget permissions from page view

You can assign different levels of security, to different user groups, on a single widget, directly from the project pages.

1. Right-click on the widget and select Security settings.

2. Choose the group: the authorization dialog for the group is displayed.

3. Set the security properties to access the widget.

See

"Modifying access permissions" on page 259

for details.

264

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

24    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.

Parameter

Name

Default User

Group

Password

Change Initial

Password

Comments

Logoff time

Password Minimum

Length

Must Contain Special

Characters

Must Contain

Numbers

Description

User name

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.

User group

User password

This user is forced to change his password at first log in.

Further user description

Minutes of inactivity after which the user is logged off. Set to 0 to disable.

Minimum length of password

Password must contain at least one special character.

Password must contain at least one numeric digit.

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:

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

265

Managing users at run time l

SwitchUser

l

LogOut

See

"User management actions" on page 175

for details.

Managing users at run time

The default user, if any, is automatically logged in when the HMI Runtime is started. If no default user is configured, the system requires a user name and password. See

"User management actions" on page 175

for details on the actions that can be executed on users.

Removing user data

All the user information modified at run time is stored in dedicated files. To remove these dynamic files and all the changes applied to user configuration at run time you can: l on HMI Runtime: execute the action DeleteUMDynamicFile l with JMobile Studio: select the Delete Dynamic Files in the download dialog.

Force remote login

Path: ProjectView> right-click Security> Force Remote Login

Select this option to force user to log in when using remote access viaJMobile Client. If not selected, remote access will use the same level of protection of local access.

Important: This function only works when user management is enabled.

Tip: Use this option when you have a default user but at the same time you want to protect remote access.

See

"Enable/disable security management" on page 258 for details.

The only files/folders still accessible when this flag is enabled are: l

PUBLIC folder and Index.html.

See

"Modifying access permissions" on page 259

for details on HTTP access limits.

266

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

25 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.

If User Management is enabled, the actions are traced together with the name of the user. Only administrator user can modify this setting.

Enable/disable audit trail

Configure audit events

Configure tags for audit trail

Configure alarms for audit trail

Configure recipes for audit trail

Configure login/logout details

Exporting audit trail as .csv files

Viewing audit trails

268

268

269

270

270

271

271

272

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

267

Enable/disable audit trail

Path: ProjectView> right-click AuditTrail> Enable

The padlock symbol indicates status of the function.

Enable/disable audit trail

Configure audit events

You can have more than one set of audit records. You need to configure a dedicated event buffer.

Creating an event buffer

Path: ProjectView> Config> double-click Event Buffer

268

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

25    Audit trails

1. In the Event Buffer editor, click +: a row is added to the table.

2. Select Audit for Type.

3. Configure buffer parameters.

Parameter

Id

Name

Enable

Size

Type

Storage Device

Description

Buffer identification number

Buffer name

Enable/disable logging

Size of log file. Data is automatically saved to disk every 5 minutes.

Type of events logged: l

Alarms

l

Audit

l

Generic

Device where audit data will be stored

Configure tags for audit trail

Path: ProjectView> AuditTrail> click AuditTrail

Track only the tags related to actions that you want to keep under control. For tracked tags, all write operations will be logged together with the time stamp and user that performed the operation.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

269

Configure alarms for audit trail

Configure alarms for audit trail

Path: ProjectView> AuditTrail> click AuditTrail

You can specify the alarms to be tracked by the audit trail.

1. In Audit Trail editor, select the Alarms tab.

2. Select all the alarms to log in the audit trail: all operations performed on the specified alarms will be logged.

Configure recipes for audit trail

Path: ProjectView> AuditTrail> click AuditTrail

Track only the recipes related to actions that you want to keep under control. For tracked recipes, all transfer operations will be logged together with the time stamp and user that performed the operation.

270

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

25    Audit trails

Configure login/logout details

Path: ProjectView> AuditTrail> click AuditTrail

Audit trail can trace information about user login and user logout events.

1. In Audit Trail editor, select the Misc tab.

2. Select the information you want to log.

3. If you created additional event buffers of type Audit, then you can choose them from the Event Buffer combo box or you can leave the value AuditTrail that will use the default buffer.

Exporting audit trail as .csv files

To view audit trail data you have to export it o a csv file using the DumpEventArchive action. See

"System actions" on page 162

for details.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

271

Viewing audit trails

File structure

Exported data file has the following content:

For internal use

EventType

SubType

TimeStamp

Interface

Action

Information

Event time stamp. Time can be configured as local or global from the dump action.

LOCAL, when the action is performed in JMobile HMI Runtime.

CGI, when the action is performed by a remote client.

Action executed.

Action status and operation executed. For example, write Tag - Tag1:50

Viewing audit trails

Audit trail data must be exported as a data file for viewing.

See

"Exporting audit trail as .csv files" on the previous page

for details.

272

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

26 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.

Note: Report printing is not supported by JMobile Client.

Adding a report

Configuring text reports

Configuring graphic reports

Print triggering events

Default printer

274

274

275

276

277

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

273

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 type

Text

Reports

Description

Use for line-by-line printing of alarms.

Only used for line printers.

Text is sent to the printer without using any special driver.

Important: This printing mode requires using a physical port and only works on

Windows CE platforms.

Graphic

Reports

Contain graphical elements and may include complex widgets such as screenshots or alarms.

Important: Each printer requires a specific printer driver. See

"Configuring graphic reports" on the facing page

for a list of supported printer drivers.

Configuring text reports

Use the Reports editor . Paper Size in number of characters.

Setting printer options

Use printer options to control flush of pages on printer.

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.

Note: Text reports do not support PDF format.

Setting alarms layout

Paper Size is the width of paper in number of characters.

Adding fields to the report

To add an item to the report, drag and drop it on the template page from the Available fields list.

274

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

26    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.

Configuring graphic reports

Use the Report editor to configure graphic reports.

Adding a report page

Click + to add a new page to the report layout.

When the mouse goes over a page, two icons are displayed and allow you to reorder or delete the pages.

Modifying report page content

1. Double click on a page to edit its content: the Graphic Report editor appears.

Each page is divided in: header, footer and page body.

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.

Widgets available for reports

Widgets that can be used for a graphic report:

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

275

Print triggering events

Widget

Page

Number

Function

Automatic page numbering

Screenshot

Screen capture of the page currently displayed by the HMI device. The report page is automatically resized to fit the HMI device page.

Note: The full screen is printed, including all open dialogs.

Alarm

Text

Entire contents of the event buffer (default buffer is Alarm Buffer1).

Widgets such as labels and numeric fields

Print triggering events

Report printing can be triggered by events.

Configuring alarm printing

Path: ProjectView> Config > double-click Alarms

1. In the Alarms editor, open the Event Types dialog from the Events column.

2. In Print tab select all the conditions for which you want to trigger printing.

276

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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

26    Reports

Adjusting printer settings at run time

A graphic report printing can be started also using the action PrintGraphicReport.

Set the action property silent to false to have a pop-up dialog.

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

HP PCL 3, HP PCL 5e, HP PCL3GUI

HP PCL3/PCL5e/PCL3GUI, including DeskJet, LaserJet,

DesignJet

Epson ESC/P2

Epson Stylus Color

Epson LX (9-pin)

ESC/P2, LQ

Epson Stylus Color

9-pin printers, Epson LX, FX, PocketJet

Cannon iP100, iP90, BubbleJet

PocketJet II, 200, 3

MTE Mobile Pro Spectrum

Adobe PDF File

BubbleJet, iP90, iP100

Pocket Jet

MTE Mobile Pro Spectrum

Adobe PDF file

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

277

Default printer

Printer

SPT-8

M1POS

MP300

Zebra

Intermec PB42, PB50, PB51, PB2,

PB3

Datamax Apex

Languages

SPT-8

M1POS

MP300

Zebra CPCL language

Intermect PB42/50/51/2/3 with ESC/P language

Datamax Apex

Supported ports

The following ports are supported: l

LPT1 (USB printers) l

File (PDF)

Note: On Win32 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.

Driver

Custom

Epson

ESC/P 2

Printer Model

Plus 4 Kube II

Epson AcuLaser M2310

Epson LX

(9-pin)

HP PCL 3

GUI

Epson LX-300+II

HP PCL 3

HP LaserJet P2015dm

HP LaserJet 4700dtn

HP Deskjet 1010

HP Deskjet D5560

HP LaserJet 4700dtn

HP PCL 5e

HP LaserJet P2015dm

HP LaserJet 4700dtn

INTERMEC

Intermec PB50 with ESC/P language with 4 inch roll paper.

Note: The HMI device crashes when trying to print on

Graphic Line

Yes Yes

Yes Simulate

No

Yes

Yes

Yes

Yes

No

Yes

Yes

Yes

Simulate

Yes

No

No

Yes

Simulate

Yes

278

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

26    Reports

Driver

PDF

Printer Model

Intermec PB50 printers in standby mode after a first successful print job.

-

Graphic Line

Yes No

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

279

Default printer

280

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

27 Screen saver

Screen saver can be used to display a slide show when the HMI device is not in use. The slide show starts after a timeout if none of the following events occur: l l touch of display mouse movement l external keyboard key pressed

Enabling the screen saver function

Path: ProjectView> Config > right-click Screen Saver> Enable

Important: You must enable the screen saver before you can configure it.

Configuring a screen saver

Path: ProjectView> Config > double-click Screen Saver

Slide show parameters

Parameter Description

Timeout

Time after which the slide show starts

Slide

Interval

Interval between slides

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

281

Parameter Description

Storage

Device

Location of the images used in the slide show.

Images stored locally are saved in workspace\projectname\screensaver and can be downloaded to the

HMI device when the project is downloaded.

Images stored on USB or SD devices are saved in a screensaver folder on the device itself.

Important: Only JPEG and PNG images are supported.

Associating actions to the screen saver

Actions can be triggered by the screen saver start and/or stop.

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.

282

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

28 Backup/restore of Runtime and project

You can backup all the content of the HMI device, including JMobile HMI Runtime and project, 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 259

for details.

Note: Backup is not supported in Win32 / JMobile Client.

Backup function

The backup function automatically performs the following procedure:

1. Unloads the current project to unlock files in use.

2. Archives the content of the \QTHMI folder (containing JMobile HMI Runtime, projects, dynamic files such as recipes, alarms, trends and so on) to a .zip file (standard or encrypted).

3. Reloads the project.

To start the backup procedure:

1. In JMobile HMI Runtime right click to open the context menu.

2. Select Backup: the Backup dialog is displayed.

3. Select the path for storing the backup file.

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.

Restore function

Restore the backup package can be perform on HMI device l l from the Context Menu (see

"Update package" on page 78

for details) or from the System Settings (see

"System Settings" on page 417

for details)

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

283

284

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

29 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

Creating and using custom keypads

Deleting or renaming custom keypads

Keypad type

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

287

289

289

285

Keypad position 290

286

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

29    Keypads

Creating and using custom keypads

You can either create a new keypad or customize an existing one.

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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

287

Creating and using custom keypads

Attaching custom keypads to fields

Custom keypads can then be reused for any field where the Keypad property points to it as in this example.

Tips and tricks with custom keypads

By default, any numeric widget (read/write numeric field) are assigned the numeric keypad.

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" on the facing page

for details on how to rename a custom keypad.

Up-down arrows keypad

This type of keypad is particularly useful to move the cursor up and down within widget requiring this functionality. Here an example using a Control List widget. See

"Control list widgets" on page 329

for details.

288

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

29    Keypads

Deleting or renaming custom keypads

In ProjectView, right-click on a custom keypad and select one of the options: l l

Remove KeyPad Page to remove the keypad from the project

Rename Keypad Page to rename the keypad.

Keypad type

Path: ProjectView> Keypads > double-click a keypad > Properties

Set Keypad Type parameter for a keypad to define the type of data entry.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

289

Keypad

Type

Auto

Description

Default setting

Decimal

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

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.

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

Automatic

Absolute

Left-top

Left-center

Left-bottom

Center-top

Center-center

Center-bottom

Right-top

Right-cente

Right-bottom

Description

The best position is selected according to here data entry is required.

X,Y coordinates are entered to identify the exact position

Predefined screen positions

Select the Lock Keypad position option if you don't want the keypad to be moved by dragging.

Keypad position

290

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

30 External keyboards

JMobile HMI Runtime has been designed to work with external keyboards connected via USB.

Keyboards can be used for: l data entry (default) l execute actions mapped on specific keys

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.

Opening external keyboards

1. In the Page Editor, click on the icon on the right of Keyboard/Script at the bottom of the workspace: the

Keyboard/Script Editor is displayed.

2. Select the Keyboard tab.

Each row in the Keyboard Editor corresponds to a key.

For each key, the following information is displayed:

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

291

Element

Label

Code

Description

Key name

Key code

Enable

Key enable status

Inherits project actions

Defines whether the key is inheriting the action programmed at the project level

Here the possible configurations:

Enable

Checked

Checked

Inherits project actions

Checked

Editor appearance

Action lists show the project actions only and cannot be edited

JMobile HMI Runtime behavior

Unchecked Action lists show the page actions (or nothing if the list is empty)

Only the page actions (if any) will be executed.

Only the configured project actions (if any) will be executed.

No page or project action will be executed.

Unchecked Checked Inherits project actions check box and all action lists are disabled. Action lists show the project actions only.

Unchecked Unchecked Inherits project actions check box and all action lists are disabled. Action lists show the project actions only.

No page or project action will be executed.

Search and filter

Displayed keys

Removing action associations

Keyboard layout

Enable/disable keyboard

Associating actions to keys

293

293

293

294

294

294

292

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

30    External keyboards

Search and filter

To display a filtered set of keys, in Filter by select key name and type a letter in the search field: only the keys containing that letter in their name will be displayed in the Keyboard editor.

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 all keys modified keys modified keys in project

Description

All keys available in the keyboard layout are listed

Only the keys associated with actions at the page level are listed

Only the keys associated with actions at project level are listed

Removing action associations

To remove all the associations you created between keys and actions:

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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

293

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 run time using the KeyboardMacros action. See

"Keyboard actions" on page 146

for details.

Associating actions to keys

You associate actions to a keys from the Keyboard editor.

1. Click + next to the key you want to program: the fields for key configuration are displayed.

294

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

30    External keyboards

1. Click + to add actions.

You can associate actions both to the OnClick event and toe the OnHold event.

See

"Events" on page 41

for details.

Note: Also JavaScript code can be associated to a key event.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

295

Associating actions to keys

296

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

31 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.

From this pane you can: l verify where each tag is used (alarms, pages, recipes, schedulers, trends, and so on) l l identify invalid tag references (references to tags not defined in the tag editor) identify tags not used in the project

Note: The Tag Cross Reference pane does not list tags used in JavaScript code.

Updating data in the Tag Cross Reference pane 298

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

297

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.

Updating data in the Tag Cross Reference pane

Working in the Tag Cross Reference pane

The Tag Cross Reference pane provides a set of standard functions.

Element

Group by

Show

Search field

Filter by

Function

Groups tags by Location (alarms, pages, trends and so on) or Tag name

Filters tags and displays: l

All Reference: all tags l

Invalid Tag Reference: tags not listed in the Tag Editor.

l

Unused Tags: tags listed in the Tag Editor but not used in project.

Applies a filter to display a limited number of tags

Filters tags by Location, Tag or Property.

Navigate the listed tags to find where they are used inside the project.

Double-click on a tag to open the editor or page where it is used.

Updating data in the Tag Cross Reference pane

Manual update

By default, the information displayed in the Tag Cross Reference pane must be updated manually. To do this, click the refresh button . A warning sign is displayed when a refresh is needed.

298

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

31    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.

Select the Auto Update option.

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.

Grouped by

Location

Tag

File format

RESOURCE, RESOURCE DESC, WIDGET-ID, ATTRIBUTE, TAG

TAG, RESOURCE, RESOURCE DESC, WIDGET-ID, ATTRIBUTE

Note: The separators used in export operation depends on regional settings of your computer.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

299

Updating data in the Tag Cross Reference pane

300

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

32 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.

Creating an indexed addressing set

Using indexed tag set in pages

302

305

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

301

Creating an indexed addressing set

Creating an indexed addressing set

Scenario

In this scenario, environment data is collected from with four rooms, each equipped with temperature, pressure, and humidity sensors. Data is available as follows:

Room Number

1

2

3

4

Temperature

Room1-Temperature

Room2-Temperature

Room3-Temperature

Room4-Temperature

Pressure

Room1-Pressure

Room2-Pressure

Room3-Pressure

Room4-Pressure

Humidity

Room1-Humidity

Room2-Humidity

Room3-Humidity

Room4-Humidity

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.

How to create an indexed tag set

Path: ProjectView> Tags

To do this you need to create an indexed tag set.

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.

302

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

32    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.

Note: To reference an array data type use the array index = -1

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.

Click to enable the Autofill feature: the Autofill Table is displayed.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

303

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,

“Room0*$(Instance)-$(Alias)” will match all tag names:

Room1-Temperature,

Room01-Pressure,

Room001-Humidity,

Room2-Temperature,

Room02-Pressure,

Room002-Humidity,

304

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

32    Indexed addressing

Autofill table elements

Element Description

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.

Reset

Resets the tag filter to empty, no automatic fill is done.

Suggests a valid filter expression for your project.

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).

Using indexed tag set in pages

Once an indexed tag set has been created, you can use it to create a page for the HMI device as in this example.

To create this page:

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

305

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.

3

4

Index

0

1

2

String List

Room Number

Room 1

Room 2

Room 3

Room 4

4. Attach to each numeric field value the corresponding Alias variable (Room > Temperature, Room > Humidity,

Room > Pressure).

306

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

33 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...

To store data into an external database:

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.

Installing SQL4Automation

Configuring SQL4Automation

Configuring the HMI project

Transfer data with JavaScript

Database tables

Custom tables

Connection Limits

309

309

311

312

313

314

314

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

307

308

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

33    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.

Procedures described in this document refer to SQL4Automation Connector Version 3.3.2.0

Configuring SQL4Automation

Important: Refer to the SQL4Automation user manual for detailed configuration instruction.

Here is a quick description of how to access to a MS Office Database (MS Access).

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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

309

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.

9. At the fist connection, click New to select your Data Source

10. Select the IP address of your computer. This will be the connection IP Address used from your HMI device.

11. Select the Data Source.

12. Click OK to confirm.

13. Click Connect.

310

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

33    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.

Configuring the HMI project

Path: ProjectView> Config > double-click Database Links

To save a project data to an external database you need to create a link with the specific database

1. In the Database Links editor select Enable to enable the function.

2. click Add to create a new link.

3. Enter the IP Address the computer hosting the SQL4Automation Connector.

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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

311

Transfer data with JavaScript

Transfer data with JavaScript

Some actions used to transfer data from a HMI device to a remote database can be used as macros inside a JavaScript code as in the example below.

Status of database connection is available through system variable tags. See

"Database variables" on page 88

.

Error status can be reset with actions. See

"Database actions" on page 142

function myButton1_onMouseClick(me, eventInfo) { var CustomSQL = '' ; var DatabaseLink ='Link1'; project.dbInit(DatabaseLink, CustomSQL);

}; function myButton2_onMouseClick(me, eventInfo) { var CustomSQL = '' ; var DatabaseLink ='Link1'; var Tags ='Alarm1;SystemTime;Tag01;Tag02;'; project.dbReadTags(DatabaseLink, CustomSQL, Tags);

}; function myButton3_onMouseClick(me, eventInfo) { var CustomSQL = '' ; var DatabaseLink ='Link1'; var Tags ='Alarm1;SystemTime;Tag01;Tag02;'; project.dbWriteTags(DatabaseLink, CustomSQL, Tags);

};

dbQuery

project.dbQuery(databaseLink, customSQL, dbCallback);

Using this query you can execute SQL Queries.

Parameter databaseLink customSQL dbCallback()

Description

Link to the database to use

String with the SQL query

Function that will be call when query data are ready

dbCallBack

project.dbCallBack(dbStatus, dbResponse);

312

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

33    Storing data to external databases

Parameter dbStatus dbResponse

Description

0: no error found

Query response. Table column names followed by its rows:

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

TagValue

Table: Trends

Id

TrendName

SampleTime

TrendValue

Quality

RefreshTime

Text(255)

Text(255)

Long Integer

Text(255)

Text(255)

Text(255)

Text(255)

Text(255)

PRIMARY KEY

PRIMARY KEY

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

313

Custom tables

Table: Recipes

Recipe

SetName

ElementName

SetValue

Table: Event

Id

EventName

SampledTime

EventType

EventSubTime

EventValue

Text(255)

Text(255)

Text(255)

Text(255)

Long Integer

Text(255)

Text(255)

Text(255)

Text(255)

Text(255)

PRIMARY KEY

PRIMARY KEY

PRIMARY KEY

PRIMARY KEY

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

CREATE TABLE myTagsTable (tagname VARCHAR(255) PRIMARY KEY, tagvalue VARCHAR(255))

UPDATE myTagsTable SET Tagvalue= '%_JMV' WHERE Tagname= '%_JMT'

INSERT INTO myTagsTable (Tagname, Tagvalue) Values ('%_JMT', '%_JMV')

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:

314

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

33    Storing data to external databases

Or onto a separated Computer/Server:

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

315

Connection Limits

316

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

34 OPC UA Server

Path: ProjectView> Config > Interfaces > double-click OPC UA

Use the OPC UA Server to publish data according to the OPC UA standard..

Features

Parameter

Enable OPC UA Server

Enable alarms

Description

Activates operation of the OPC UA Server.

Data values defined in the HMI are published by the OPC UA Server.

Activates publication of real-time alarm data (Active Alarms).

The following properties of alarms are published:

• Enabled

• Severity

• Status

The alarm states are mapped to OPC UA states according to the following rules:

OPC UA Alarm state

Opcua.Alarm.Active

Opcua.Alarm.Acked

Opcua.Alarm.Retained

Opcua.Alarm.Confirmed

JMobile Studio Alarm state

TRIGGERED | TRIGGERED_NOT_

ACKED |

TRIGGERED_ACKED

TRIGGERED_ACKED |

NOT_TRIGGERED_ACKED

TRIGGERED |

TRIGGERED_NOT_ACKED |

TRIGGERED_ACKED |

( alarm requires reset flag & state !=

NOT_TRIGGERED ) when alarm requires reset flag & state is

NOT_TRIGGERED

OPC UA confirm operation is mapped to the reset operation. Confirmation only works if the alarm is currently active, otherwise return OpcUa_

BadInvalidState (since the reset operation only works in this condition).

The acknowledge/enable/disable/confirm operations done via OPC UA are audited as "OPC UA Server" domain. If the authentication is user/pass the user is logged as well.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

317

Parameter

Enable historical alarms

Enable trends

Network

Parameter

Node Name

Port

Produc URI

Description

BranchId is not supported (it is always “Null”).

Activates publication of historical alarm data

Activates publication of trend data.

Description

Enter node name or leave empty to use the host name.

The enter port number of OPC UA Server.

A globally unique identifier for the server.

Authentication

Parameter

Anonymous

User/Password

Certificates

Description

Anonymous clients accepted

Authentication with user name is accepted

Certificate-based authentication is accepted.

Server can support all options simultaneously.

For example, suppose there are 3 clients. Let Client 1 has only anonymous support. Client 2 has only user/password support. And, Client 3 has only certificate support. All three can connect if all checkboxs are checked in server config editor.

Server Identity

Parameter

Manufacturer name

Product name

Server's Certificate

Description

A human readable name for manufacturer of the product.

A human readable name for the product running the server..

Server certificate can be either generated automatically or by adding existing certificate files.

318

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35 Special widgets

Widgets designed for special purposes are called special widgets and include control lists, date and time widgets, variable widgets and so on.

BACnet widget

Browser widget

Canvas Widget

Combo Box widget

Consumption Meter widget

Control list widgets

DateTime widget

Gesture area widget

IP Camera widgets

Javascript function block widget

Media Player widgets

Multistate Image widget

Multistate Image Multilayer widget

Network Adapters widget

RSS Feed widget

Scrolling RSS Feed widget

Table widget

TextEditor widget

Variables widget

332

333

336

338

340

341

343

343

320

320

321

324

328

329

331

344

345

352

354

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

319

BACnet widget

BACnet widget

Path: Widget Gallery> BACnet

BACnet widgets are special widgets that let you interact with native BACnet objects.

l l

BACnet Calendar

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: For Windows CE based embedded HMI devices, the WebKit library is available as a plugin (see

"Software plug-in modules" on page 63

for details) to download to the JMobile HMI Runtime only when required.

320

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35    Special widgets

Important: This widget is not supported by MIPS based devices.

Parameter

Home Page

Zoom to Fit

Time out

Clear History

Scroll

Show Progress cursor

Description

Default URL to open when widget is shown on the page.

Automatically scales content to the size of view area.

Page load timeout in seconds.

Automatic history clear on load

Shows/hides scrollbars

Shows/hides loading cursor

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.

Important: HTTPs protocol is not supported.

Canvas Widget

Path: Widget Gallery> Basic> Generic Canvas

Canvas widget can be used to draw graphic via JavaScript scripting.

Note: the JavaScript methods are the same that are available for the HTML5 <canvas> tag

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

321

Parameter

Canvas Width

Canvas Height

Draw Hint

Description

Canvas size.

Note this is not the widget size. For example, the canvas size could be

500x500 pixels where the widget size could be 100x100 pixels. Draw Hint parameter will define how to stretch the canvas size to fit the widget size.

Define how fit the canvas inside the widget size l l

Clip

No Transformation is applied, coordinate system is not scaled and drawing is clipped inside the widget bounding rectangle.

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.

Example using a Canvas size larger than the widget size:

Canvas Widget

Design Time Preview

Canvas preview inside JMobile Studio

Note the JavaScript code could use data not available inside

JMobile Studio but only inside the HMI device

Auto Clear Background

OnDraw Action

OnMousePress Action

OnMouseRelease Actions

OnMouseDrag Actions

Automatic clear the background before draw canvas. When disabled, the painted items are persisted and is not necessary redraw everything from scratch.

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.

Mouse events

Available Canvas Methods

// Painter Save/Restore l void save(); // calls painter save l void restore(); // calls painter restore

322

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35    Special widgets

// Scale/Transform l void scale(qreal x, qreal y); l l void rotate(qreal angle); void translate(qreal x, qreal y); l void transform(qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy); l void setTransform(qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy);

// Gradient l l

CanvasGradient createLinearGradient(qreal x0, qreal y0, qreal x1, qreal y1);

CanvasGradient createRadialGradient(qreal x0, qreal y0, qreal r0, qreal x1, qreal y1, qreal r1);

// Rectangle Functions l void clearRect(qreal x, qreal y, qreal w, qreal h); l void fillRect(qreal x, qreal y, qreal w, qreal h); l l void strokeRect(qreal x, qreal y, qreal w, qreal h); void rect(qreal x, qreal y, qreal w, qreal h);

// Path l void beginPath(); l void closePath(); l l void moveTo(qreal x, qreal y); 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 l void fillText(const QString &text,qreal x, qreal y);

// 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 l void stroke(); void clip(); l bool isPointInPath(qreal x, qreal y) const;

// Image manipulation (Draw CImageWgt using target and source rect) l void drawImage(QObject *pObjImage, qreal sx, qreal sy,qreal sw, qreal sh, qreal dx, qreal dy,qreal dw, qreal dh); l l void drawImage(QObject *pObjImage, qreal dx, qreal dy); 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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

323

Combo Box widget l

ImageData createImageData(double sw, double sh);//Empty Image l

ImageData createImageData(ImageData fromImage);//from another Image l

ImageData createImageData(ArrayBuffer value); //From arraybuffer l l l void putImageData(ImageData imgData,double dx, double dy); void putImageData(ImageData imagedata, double dx, double dy, double dirtyX, double dirtyY, double dirtyWidth, double dirtyHeight);

ImageData getImageData(qreal sx, qreal sy, qreal sw, qreal sh);

Canvas JavaScript Example

The canvas is initially blank. To display something, a script first needs to access the rendering context and draw on it: var ctx = me.context2d; then you can use the canvas methods, as in the below example function GenericCanvasWgt1_onDraw(me, eventInfo)

{ var ctx = me.context2d; ctx.fillStyle = 'red'; ctx.fillRect(0,0,250,250); ctx.fillStyle = 'green'; ctx.fillRect(250,0,250,250); ctx.fillStyle = 'blue'; ctx.fillRect(0,250,250,250); ctx.fillStyle = 'black'; ctx.fillRect(250,250,250,250);

} function GenericCanvasWgt1_onMouseDown(me, eventInfo)

{ alert("X = " + eventInfo.posX + "\nY = " + eventInfo.posY );

}

The update method can be used to dynamically redraw a canvas widget function BtnStd1_btn_onMouseClick(me, eventInfo)

{ var myCanvasWidget = page.getWidget("GenericCanvasWgt1"); myCanvasWidget.update()

}

Combo Box widget

Path: Widget Gallery> Basic> Controls

Use this widget as a selector widget or to filter rows in a table to display only the values selected in the combo box.

324

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35    Special widgets

Parameter

Index

List / String

List

Description

Index of the selected item.

Item strings in the combo box.

Note: This field is multi-language.

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.

Text

Format of displayed text.

Attaching data vs. attaching indexes

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: l

Index: to display the index (integer) of the selected item (0...n).

l

Data: to display the data value (string) specified in the Data List column.

Combo Box widget “full screen” mode with images

From the

"Project properties pane" on page 58

the look and behavior of Combo Boxes can switches from Context mode to

Full Screen mode

Path: ProjectView> double-click Project properties> Properties pane> Style> ComboBox View Mode

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

325

Combo Box widget

Parameter

ComboBox

View Mode

Description

Select the visualization mode of all the Combo Box widgets of the project

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.

Context view example

Full screen view example

Additional parameters available in full screen mode

The additional "Image List" column will be available inside Combo Box> List parameter:

326

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35    Special widgets

Note: Some properties are displayed only in advanced mode.

Parameter

Image

Button

ListView

ListViewItems

Description

Return, inside the attached tag, the file name of the selected image

Define the look of the Combo Box l l

Show background = true

Combo Box button is showed

Show background = false

Only image or text is showed

Layout parameters of the Combo Box in edit mode

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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

327

Consumption Meter widget

Consumption Meter widget

Path: Widget Gallery> Basic> Trends/Graphs

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.

Tip: Use this widget to calculate the power consumption of a system.

Parameter

Value

Graph

Duration

Graph

Duration

Units

Bar Duration

Bar Duration

Units

Description

Resource monitored

Time period displayed in the window

Time period represented by each bar in the graph

Time Periods

Assigns a specific color to highlight the increment of the monitored resource in a specified time period (minimum resolution = 1 hour).

Color

Bar Width

Bar color and width

Bar Value

Show/Hide the value of each bar

Consumption

Meter

Number of labels to be displayed on graph.

Example: how to monitor energy consumption

In the following example a widget is design tho monitor energy consumption with a weekly scale and a daily unit.

328

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35    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.

Control list widgets

Path: Widget Gallery> Advanced> Control List

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

329

Control list widgets

Use these widgets to represent the status associated with a particular process and to control that process from the same widget.

Two types of control lists are available: 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

If Write mode is Write On Select: value of the item selected.

If Write mode is Write On Enter: value of item selected and confirmed pressing enter button.

This field can be attached to a tag to control selected and confirmed item.

State

Write

Mode

Default state when widget is loaded.

Selection

Currently selected item, displayed as a highlight cursor moving up and down. This property can be attached to a tag.

Write On Select: the value is automatically written to the tag when one of the items is selected.

Write On Enter: the value is written to the tag only when one of the items is selected and the enter key is pressed.

Read Only

Defines whether the list is only an indicator.

List Data

Adds/removes list items.

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 .

330

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35    Special widgets

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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

331

Gesture area widget

For the Time Spec property select which time the widget will show at run time.

Time options

Option local global server

Description

shows local time, the time of the HMI device where the project is running shows Global Time (GMT) shows  time information as handled by the server side of the HMI device

Gesture area widget

Path: Widget Gallery> Buttons> Others

Gesture Area Widget is a hotspot button that generates pan and pinch gesture events.

WARNING: Only multi touch HMI devices can generate pinch events

332

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35    Special widgets

Use OnPan and OnPinch events in association with JavaScript code to identify gestures and program the requested actions

See

"Widget events" on page 378

for details on these event types

Swipe Gesture

How to recognize a "swipe" gesture to change page in the application.

1. Put a Gesture area widget into the page

2. Configure the OnPan Action to trigger a JavaScript function

3. Write the JavaScript code that recognize the swipe 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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

333

IP Camera widgets

Parameter

Camera URL

Refresh Rate

User Name

Password

MJPEG Camera URL

Description

URL of the IP Camera when used in JPEG format.

Number of JPEG images for second allowed. Max rate = 1 fps.

Name of user allowed to access the camera.

Set this parameter when access to the camera is password protected.

Password to access the camera.

URL of MJPEG streaming (for example, http://192.168.0.1/video.cgi)

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:

IPCamera

Apexis APM-J901-Z-WS PTZ IP Camera

AXIS M3027-PVE Network Camera

DAHUA DH-IPC-HD2100P-080B 1.3mp

Outdoor Vandalproof 

Protocol URL

MJPEG

HTTP http://{ip_address}/videostream.cgi

http://{ip_address}/snapshot.cgi 

MJPEG

HTTP

HTTP http://{ip_address}/axis-cgi/mjpg/video.cgi

http://{ip_address}/axis-cgi/jpg/image.cgi

http://{ip_address}:9988/onvif/media_ service/snapshot

D-Link DCS-5605 PTZ

D-Link DCS-900W IP Camera

MJPEG

MJPEG http://{ip_address}/video/mjpg.cgi

http://{ip_address}/video.cgi

D-Link DCS-932L

MJPEG http://{ip_address}/video.cgi

334

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35    Special widgets

IPCamera

Edimax IC-7100P PTZ

Foscam FI8916W

Foscam FI9803 EP

Hamlet HNIPCAM IP Camera

MOXA VPort 254 (Rugged 4-channel

MJPEG/MPEG4 industrial video encoder) 

NVS30 network video server

Panasonic WV-Series Network Camera

Ubiquiti UniFi Video Camera

Zavio F3210 2MP Day & Night Compact IP

Came

Protocol

MJPEG

HTTP

MJPEG

HTTP

MJPEG

MJPEG

HTTP

MJPEG

HTTP

MJPEG

HTTP

MJPEG

HTTP 

MJPEG

HTTP

URL

http://{ip_address}/mjpg/video.mjpg

http://{ip_address}/picture.jpg

http://{ip_address}/videostream.cgi

http://{ip_address}/snapshot.cgi

http://{ip_address}:88/cgibin/CGIStream.cgi?cmd=GetMJStream&usr=

{user}&pwd={pass}

NOTE: l port 88 may be different as per IP Camera settings l

{user} = username defined into IP Camera settings l

{pass} = password defined into IP Camera settings http://{ip_address}/video.cgi

http://{ip_address}/image.jpg

http://{ip_address}/moxa-cgi/mjpeg.cgi

http://{ip_address}/moxacgi/getSnapShot.cgi?chindex=1 http://{ip_address}:8070/video.mjpeg

http://{ip_address}/jpg/image.jpg

http://{ip_address}/cgi-bin/mjpeg http://{ip_address}:7080/images/snapshot/camera/

{camera_guid}?force=true

NOTE: l

{camera_guiID} can be found into IP Camera

Webpage l port 7080 may be different as per IP Camera settings http://{ip_address}/stream?uri=video.pro3

http://{ip_address}/cgi-bin/view/image?pro_0

NOTE: l

MJPEG video streaming can be configured selecting "video profile 3" with 640x480 resolution into IP Camera settings.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

335

Javascript function block widget

PTZ Controls widget

PTZ (pan–tilt–zoom) cameras are cameras capable of remote directional and zoom control.

The PTZ Controls widget uses the MoveIPCamera action to send HTTP/cgi commands to the PTZ IP Camera.

Parameter Description

Camera URL

URL of IP Camera

User Name

Password

Command

Name of user allowed to access the camera.

Set this parameter when access to the camera is password protected.

Password to access the camera.

Command to send to the PTZ controller (for example, decoder_control.cgi?command=0)

Authentication methods

The authentication method is automatically set by the camera web server to which the widget connects. Authentication methods supported are: l l

Basic

NTLM version 1 l

Digest-MD5

Javascript function block widget

Path: Widget Gallery> Basic> JSFunctionBlock

Javascript Function Block is a widget that contains Javascript logic that is executed when tags values change.

Parameter value1

...

value16

OnDataUpdate

Description

Objects that will trigger the OnDataUpdate action.

Action that will be executed when a change of an associated value is detected

336

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35    Special widgets

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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

337

Media Player widgets

See

"Widget events" on page 378 for the description of the onDataUpdate parameters

Media Player widgets

Path: Widget Gallery> Media> Media Player

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.

Parameter

Media Player List

Loop Style

Description

Creates a playlist

Define how the video is played.

l

NoLoop: plays all the videos in the playlist, then stops.

l

LoopOne: repeats the first video in the playlist.

l l

LoopAll: repeats the entire playlist.

Random: plays the videos in a random order.

Note: The Media Player widget only works with some HMI devices (HMI devices based on ARM Cortex-A8-

1Ghz and Win32 platform). It doesn’t work the JMobile Client.

Note: You can have only one Media Player widget in a page.

Important: Use the same codecs and settings for all the videos of a playlist.

Supported video encoding

Two groups of codecs are supported: l

DSP based video codecs l

Software video codecs

338

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35    Special widgets

DSP video codecs

These include: l

H264 using AVI/MP4 container, CABAC off and Level 3  (suggested) l

MPEG2 using AVI container l

MPEG4 using AVI container

They use the DPS processor (video hardware acceleration) and BSP 1.55 or above is required to play them. Maximum resolution is 720x576 pixels and bit rate 4200 kb/s. 720p, 1080p and audio are not supported.

Software video codecs

This is only: l

Microsoft MPEG4 v3 using an AVI container.

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 playlist, in order to avoid upscaling and downscaling. Audio is not supported.

Converting a video

This procedure describes ho to convert a video using eRightSoft SUPER © video converter.

1. Drag and drop the video to convert in SUPER.

2. Select AVI from the Output Container list and H.264/AVC from the Output Video Codec.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

339

3. Click H264 Profile: choose Baseline as profile and level 3 in the dialog.

Multistate Image widget

4. Enable the checkbox Disable Audio.

5. Click Encode (Active Files) to start encoding of the videos.

Now you can open the videos with a standard video player, such as Windows Media Player and check the quality. You can add the resulting video to the playlist of the Media Player widget.

Note : This video converter tool is not distributed with the JMobile Suite.

Using Media Player in JavaScript

The Media Player widget can be also referenced in JavaScript programs with the following syntax:

//get the mediaplayer widget.

var mediaWgt = page.getWidget('MediaPlayerWgt2');

//load the play list mediaWgt.setProperty('medialist', '/Storage Card/demo_3.avi,/Storage Card/video1_

3.avi');

// set the loopstyle 0 - noloop, 1 - loop one, 2- loop all, 3 - random mediaWgt.setProperty('loopstyle', 2);

//start playing the first file.

mediaWgt.mediapath = '/Storage Card/demo_3.avi';

See

"JavaScript " on page 373

for details on how to work with JavaScript.

Multistate Image widget

Path: Widget Gallery> Basic> Images

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.

340

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35    Special widgets

Parameter

Value

Description

Index of image to display.

For example, set Value=0, to display the image with index 0 in the image collection.

Images collection with associated index.

Images

Animate

Set to true, to enable a slide show.

Time interval

Interval between images in the slide show.

Multistate Image Multilayer widget

Path: Widget Gallery> Basic> Images

Use this widget to create different animations and select the most suitable at run time.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

341

Multistate Image Multilayer widget

Setting up widget layers

1. Open the Layers dialog from the Properties pane.

2. Click + to add as many layers as you need.

3. Double click on each layer to add as many images as you want to include in the layer.

4. Drag and drop images into the frame to add it to current layer.

5. Define widget properties.

Parameter

Default

Layer

Name

Default

Frame

Description

Layer shown at run time.

Name of selected layer.

Frame shown when current layer is displayed.

Color / Fill

Fill color for images of current layer.

Animate

Enables slide show for active layer. Animations can be started/stopped at run time  attaching it to a tag.

Time

Interval

Time interval of slide show, if enabled.

Preview

Slide show simulation.

342

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35    Special widgets

Note: Default Layer, Default Frame, Color and Fill can be changed at run time, attaching the to a tag.

Network Adapters widget

Path: Widget Gallery> Basic> Control

Use the IP Widget to set the network adapters parameters.

The system variable Network->Status contains the result of the last operation performed by the IP Widget (see

"Network variables" on page 93

for details)

RSS Feed widget

Path: Widget Gallery> Media> RSSFeed Source

Use this widget to display on the HMI device your favorite RSS feeds directly from the Internet.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

343

Parameter

RSS Source

UpdateRate

Description

Feed URL

Note: Feed sources cannot be modified at run time.

Refresh time

Scrolling RSS Feed widget

The RSS Feed widget has been specifically designed to work with Pocket Internet Explorer.

Scrolling RSS Feed widget

Path: Widget Gallery> Media> RSSFeed Scroll

Use this version of the main RSS Feed widget to display highlights inside a text line using a smoothing scrolling text.

This widget has additional properties.

Parameter

Scrolling

Title Separator

Description

Scrolling speed

Separator character between highlights

344

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35    Special widgets

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:

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.

Configure the table widget

Table widget has two states: 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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

345

Table widget

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 configure the contents of cells, drag and drop the widgets inside the cells.

346

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35    Special widgets

If you need more widgets inside a single cell, create a group of widgets and copy the group from the page to the cell.

Configuring the data source

The data source, that provide the data to fill the table, could be a Table Data Source Widget or a JavaScript JSON table.

Table Data Source Widget

Path: Widget Gallery> Basic> Table

1. Drag and drop a Table Data Source Widget onto the page

2. Set the Table Model parameter to link at the data source.

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:

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

347

Table widget l l

Row 0

Header of the table. Contains only static text.

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.

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.

Define links with data source

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

348

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35    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.

Import/Export Data Source

The configuration of the Data Source can be imported/exported using xml files

JavaScript JSON table

In alternative to the Data Source Widget, for data to fill the table could be provided from a JavaScript code using a JSON table. In this case, we have to fill an array of JSON elements with the data to use and assign the array to the table widget.

var myTable = page.getWidget("TableWgt1");

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

349

Table widget myTable.model = model;

model is an array of JSON 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 model[0] = row_templates; model[1] = row_data1; model[2] = row_data2; model[3] = row_data3; model[4] = row_data4; model[5] = row_data4;

// row templates

// data of the row1

// data of the row2

// data of the row3

// data of the row4

// data of the row5

The row templates is a multi dimensional array where each array defines the datalink of one template row.

On the below example, we have a template for two rows.

var row_templates = {

_h : [

[ [] , [] ],

[ ["text"] , ["value"] ]

]

}

//rowType = 0

//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.

On the below example we define a row of data 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.

The JSON datalink element:

Parameter

_c : "dl" s : "_TagMgr" a : "Tag1", i: 0, m:2

Description

Identify the JSON element as a Datalink

Specify the source of data is the Tag Manager

Specify tag name and index (necessary when the tag is an array) and the read/write mode

350

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35    Special widgets

Parameter Description

l m=0 is Read Only l l m=1 is Write Only m=2 is Read/Write

The below JavaScript code will generate the same table of the previous example using the Table Data Source Widget var model = []; var row_templates = {

_h : [

[ [] , [] ],

[ ["text"] , ["value"] ]

]

}

//rowType = 0

//rowType = 1 var row_data1 = {

_t : 0,

_v : []

} var row_data2 = {

_t : 1,

_v : ["Temperature:", { _c : "dl" , s : "_TagMgr", a : "Tag1", i: 0, m : 2 }]

} var row_data3 = {

_t : 1,

_v : ["Humidity:",

} var row_data4 = {

_t : 1,

_v : ["Noise:",

}

{ _c : "dl" , s : "_TagMgr", a : "Tag2", i: 0, m : 2 }]

{ _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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

351

TextEditor widget var myTable = page.getWidget("TableWgt1"); myTable.model = model;

Multilanguage

A multi languages text can be entered using the below JSON element:

{ _c : "ml" , mltext : {"en-US" : "Temperature:" , "it-IT" : "Temperatura:"} }

Parameter

_c : "ml" mltext : { ... }

Description

Identify the JSON element as a Multilanguage text

List of couples: "ID Language":"Text"

Example: l l

"en-US" : "Temperature:"

"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 }

]

}

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.

352

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35    Special widgets

Widget Buttons

Button

Open

Save

Cancel

Edit

Insert

Delete

Up/Down

Description

Load text file inside the TextEditor

Save text file

Remove all changes from last OPEN or SAVE command

Enter in edit mode

Insert a new line

Delete current line

Move cursor up/down

Widget Properties

Option

Keyboard

FTP Config

File Name

Syntax Highlight Type

Description

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 l

Hidden

Visible

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

FTP Address

Server Port

Authentication

User Name

Password

Description

FTP server IP Address

Port for FTP connection (default = 21).

Select the FTP authentication to use: l l

Normal (Username and password required)

Anonymous

Username of the remote FTP account

Password of the remote FTP account

File name to edit. When empty a file browser to load a local file will be opened

Displays text in different colors according to the selected language l

None l

GCode

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

353

Variables widget

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 run time.

Setting the widget

To create variables and assign values to them, open the Variables dialog from the Variables property in the Properties pane.

These variables can then be referenced from the Attach tag dialog, from the Page Editor.

354

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

35    Special widgets

If you need global variables, configure them at project level, adding the desired variables to the global variable widget.

Using variables in JavaScript

Variables can be also referenced in JavaScript programs with the following syntax:

For local variables: var varWgt = page.getWidget("_VariablesWgt"); var compVar = varWgt.getProperty("VariableName");

For global variables: var varWgt = project.getWidget("_VariablesWgt"); var compVar = varWgt.getProperty("VariableName");

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

355

Variables widget

356

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

36 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.

Creating a custom widget

Adding properties to a custom widget

Using structured tags

JavaScript in custom widgets

User's Gallery

358

360

362

364

366

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

357

Creating a custom widget

Creating a custom widget

1. Drag and drop on a page all the widget you want to use to compose your custom widget.

2. Select and group them.

3. Right-click on the grouped object and select Convert To Widget: the Custom Widgets Catalog dialog is displayed.

Parameter

Include used custom widgets

Name

Description

Version

Inheritance

Description

When checked, list all the widgets used inside the project. Even system widgets.

You can define everything you prefer, but is common keep a name structure.

The folder com.hmi is reserved for the system widgets

Widget description.

Widget version.

All widgets that share the same version share the properties defined from the

Inheritance parameter.

Properties shared between widgets with the same version l

Full (both Graphic and Logic) l l

Only Graphic

Only Logic l

Disable

Inheritance is supported from version 2.7

358

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

36    Custom widgets

Modify a custom widget

Double click to select the custom widget in edit mode. The icon of the green padlock indicates that you are going to edit a custom widget, rather than just a group of widgets. The difference is that the modified will be propagate to all the other custom widgets with the same version that are configure to inherit the widget properties.

Click the padlock icon to enable the edit mode, padlock will be open. Click again when modifies are done.

Padlock is showed only when the Inheritance is enabled.

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.

Using widgets components

Widgets are usually made up of many parts, for example a button is a complex widget including two image widgets, a button widget and label.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

359

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.

To select a single widget, select it directly form the ObjectView pane.

Adding properties to a custom widget

When you create a custom widget, you need to define the properties that will be displayed for it in the Properties pane.

1. Right-click on the grouped object and select Widget catalog: the properties dialog is displayed.

360

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

36    Custom widgets

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

Properties

Description

Id

Support Tags

Read only

Advanced

Aliased properties

Description

Name shown in the Properties pane.

Any comment on the property to be displayed in the Properties pane.

The name exposed by JMobile Studio, to JavaScript functions and Attach Tag dialog.

Specifies if the property supports the “Attach to" attribute.

Property exposed only in read mode

Specifies whether each property should appear in the advanced, or in the simple view mode of the

Properties pane.

Internal properties linked with the exposed property

Combining properties

To combine two or more properties:

1. Select the primary property in the Properties list dialog.

2. Click + in the Aliased properties toolbar: the Property Select dialog is displayed.

3. Select the properties you want to combine.

4. Click OK: the combined attributes will be shown in the Aliased properties list box.

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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

361

Using structured tags

Using structured tags

A common problem using a widget that use many tags is the need to create instances of the widget by giving only the tag name of the structure that contains all the tags instead to configure each single tag.

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:

362

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

36    Custom widgets

To configure the data links of the custom widget the keyword ${RoomID} can be used to reference at the structure instance

Type filter

Using “Type filter” parameter, when attach to tag is opened the listed tags will be filtered using the filter value.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

363

JavaScript in custom widgets

JavaScript in custom widgets

JavaScript functions can be embedded in custom widgets.

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.

364

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

36    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.it to reference at the id of the active widget instance, as for the below example:

If you cut and paste some instances of the custom widget of the above example, you will obtain the below result.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

365

User's Gallery

Note that the custom widget can also past inside the User’s Gallery for later reuse.

User's Gallery

Widgets created from the developers can be saved inside the Widgets Gallery to be available during development of new projects.

User widgets toolbar

Command Description

Open the selected widgets folder into the JMobile Studio editor

Add a new widgets folder

Delete current selected folder

Select the user widgets folder

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.

366

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

36    Custom widgets

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

367

User's Gallery

368

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

37 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.

Configuring the email server

Configure emails

370

370

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

369

Configuring the email server

Configuring the email server

To configure the email server, enter the following information for the EmailConfig setting:

Parameter

SMTP Address

Server Port

Require Auth

User Name

Password

Encryption

Description

SMTP server address.

Port for SMTP server connection (default = 25).

Select if the SMTP server requires authentication.

Username for sending mail using SMTP server.

Password for sending mails using SMTP server.

Encryption type (none or SSL).

Click + to add more email servers.

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

Name

Optional, this information is only for the log.

Description

Optional, this information is only for the log.

From

Optional, sender email address (for example, [email protected]).

To

Subject

Recipient e-mail addresses. To enter multiple addresses, separate them with a semi-colon.

Subject of email.

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.

370

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

37    Sending an email message

WARNING: The maximum size for the message body is 4096 bytes, the exceeding text will be truncated.

Adding email templates

Click + to add more templates.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

371

Configure emails

372

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38 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

JavaScript editor

Execution of JavaScript functions

Events

Widget events

Page events

System events

Objects

Widget class objects

Widget properties

Widget methods

Page object

Page object properties

Page object methods

Group object

Group object methods

Project object

Project object properties

Project object methods

Project object widgets

State object

State object methods

Keywords

Global functions

393

394

394

394

405

406

406

407

407

384

385

385

388

390

390

391

393

375

375

377

378

381

382

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

373

Handling read/write files

Limitations in working with widgets in JavaScript

Debugging of JavaScript

408

411

411

374

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    JavaScript

JavaScript editor

JMobile Studio includes a powerful JavaScript editor.

Right-click in the editor to display available commands.

Execution of JavaScript functions

JavaScript functions are executed when events occur. For example, a user can define a script for the OnMouseClick event and the JavaScript script will be executed when the button is pressed on the HMI device.

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 JMobile 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.

JavaScript functions for page events

JavaScript editor will open when you add a JavaScript action inside an action list.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

375

1. Select the even that will execute the action.

2. Add a JavaScript action from the Widget category.

3. Either leave the default function name, or type a new one.

4. Click OK to confirm: the JavaScript editor displays your function structure.

Execution of JavaScript functions

You can also open the JavaScript editor from the Script tab at the bottom of the workspace.

JavaScript functions for alarms and scheduled events

JavaScript code associated with alarms and scheduled events and not associated with a specific page, can be edited from the main Project properties page.

Path: ProjectView> double-click Project properties

376

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    JavaScript

Note: JavaScript actions are client actions so they are executed only when a client is logged in.

Shared JavaScript code

The project global variable can be used to share JavaScript code between the pages. Variables are created/initialized from the main JavaScript code from the main Project properties page and can then be used from the project pages.

Events

You can add JavaScript to the following categories of events:

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

377

l

Widget events l

Page events l

System events

For events of type: l l

OnMousePress

OnMouseRelease l

OnMouseClick l

OnWheel

JavaScript eventinfo parameter contains the following additional properties:

Parameter eventInfo.posX

Description

Local mouse/touch X coordinate with respect to widget coordinates

eventInfo.posY

Local mouse/touch Y coordinate with respect to widget coordinates

eventInfo.pagePosX

Page X mouse/touch coordinate

eventInfo.pagePosY

Page Y mouse/touch coordinate

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 me eventInfo

Description

Object triggering the event

Details of triggered event function buttonStd1_onMouseClick(me, eventInfo) {

//do something…

}

onMouseHold

void onMouseHold (me, eventInfo)

Widget events

378

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    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 me eventInfo

Description

Object triggering the event

Details of triggered event function buttonStd1_onMouseHold(me, eventInfo) {

//do something…

}

onMousePress

void onMousePress(me, eventInfo)

This event is available only for buttons and it occurs when the button is pressed.

Parameter me eventInfo

Description

Object triggering the event

Details of triggered event function buttonStd1_onMousePress(me, eventInfo) {

//do something…

}

onMouseRelease

void onMouseRelease (me, eventInfo)

This event is available only for buttons and it occurs when the button is released.

Parameter me eventInfo

Description

Object triggering the event

Details of triggered event function buttonStd1_onMouseRelease(me, eventInfo) {

//do something…

}

onDataUpdate

boolean onDataUpdate (me, eventInfo)

This event occurs when data attached to the widget changes.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

379

Widget events

Parameter me eventInfo

Description

Object triggering the event

An object with the fields listed below (you can refer fields using “.” - dot notation)

oldValue = Widget value before the change

newValue = Value which will be updated to the widget

attrName = Attribute on which the event is generated

index = Integer attribute index if any, default = 0

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, this means the JavaScript code can modify the value before it is actually passed to the widget.

The code can terminate with a return true or return false. After terminating the code with return false, control is returned to the calling widget that may launch other actions.

After terminating the code with true, the control is not returned to the widget and this makes sure that no additional actions are executed following the calling event.

function buttonStd1_onDataUpdate(me, eventInfo) { if ( eventInfo.oldValue < 0) {

//do something…

} return false;

}

OnPan

boolean onGesturePan(me, eventInfo)

This event is only available for gesture area buttons; it occurs when one point inside the area has pressed and a movement has been detected.

Parameter me eventInfo

Description

Object triggering the event.

id = Gesture id; it is used to identify different gestures.

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.

function gstArea_onGesturePan(me, eventInfo)

{ wTYPE.setProperty("value","PAN");

380

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    JavaScript wID.setProperty("value",eventInfo.id); wDX.setProperty("value",eventInfo.dx); wDY.setProperty("value",eventInfo.dy); wRUN.setProperty("value",eventInfo.running);

}

OnPinch

boolean onGesturePinch(me, eventInfo)

This event is only available for gesture area buttons; it occurs when two points inside the area have been pressed and a movement has been detected.

WARNING: Only multi touch HMI devices can generate pinch events

Parameter Description me

Object triggering the event

eventInfo

id = Gesture id; it is used to identify different gestures.

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.

dy = Total Y axis movement in screen pixel units (see dx).

function gstArea_onGesturePinch(me, eventInfo)

{ wTYPE.setProperty("value","PINCH"); wID.setProperty("value",eventInfo.id); wDX.setProperty("value",eventInfo.dx); wDY.setProperty("value",eventInfo.dy); wRUN.setProperty("value",eventInfo.running);

}

Page events

onActivate

void onActivate( me, eventInfo )

This event occurs each time the page is displayed.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

381

System events

Parameter me eventInfo

Description

Object triggering the event

Reserved for future use

JavaScript will be executed when the page is active, that is when the page is loaded.

function Page1_onActivate(me, eventInfo) {

//do something…

}

onDeactivate

void onDeactivate( me, eventInfo )

This event occurs when leaving the page.

Parameter me eventInfo

Description

Object triggering the event

Reserved for future use function Page1_onDeactivate(me, eventInfo) {

//do something…

}

onWheel

void onMouseWheelClock( me, eventInfo )

This event occurs when a wheel device is moving (for example, a mouse wheel).

Parameter me eventInfo

Description

Object triggering the event

Details of triggered event function Page1_onMouseWheelClock(me, eventInfo) {

//do something…

}

System events

System events can be related to:

382

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    JavaScript 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.

You can edit the JavaScript from the Project Properties tab.

Alarm events

These events occur when triggered by the associated alarm condition.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

383

Objects

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).

Parameter me eventInfo

Description

Object triggering the event

Details of triggered event function Project1_onMouseWheelClock(me, eventInfo) {

//do something…

}

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

Widget

Page

Description

This is the base class for all elements on the page including the page element

This object references the current HMI device page.

384

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    JavaScript

Object

Group

Project

State

Description

The page is the top-level object of the screen.

This object associates a set of tags to allow uniform operation on a set of logically connected tags

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.

This object is the class holding the state of a variable acquired from the controlled environment.

Beside the value itself, it contains the timestamp indicating when the value was collected and flags marking the quality of the value.

Widget class objects

The Widget class is the base class for all the elements on a page including the page element.

Widget, in this case, is not used to indicate a specific screen object but a JavaScript class.

Changing widget properties with JavaScript

If you want to change the properties of widgets with JavaScript set the widget property Static Optimization to Dynamic.

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.”.

This error is visible also using following code fragment: var wgt; try { wgt = page.getWidget('label1');

} catch(err) { alert("" + err);

}

Widget properties

Some properties are common to all widgets.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

385

Widget properties

objectName

string objectName

Gets the name of the widget, a unique id.

function btnStd04_onMouseRelease(me) { var wgt = page.getWidget("rect1"); var name = wgt.objectName;

}

(Available on web pages)

x

number x

Gets or sets the widget ‘x’ position in pixels.

function btnStd1_onMouseRelease(me) { var wgt = page.getWidget("rect1"); wgt.x = 10;

}

(Available on web pages)

y

number y

Gets or sets the widget ‘y’ position in pixels.

function btnStd1_onMouseRelease(me) { var wgt = page.getWidget("rect1"); wgt.y = 10;

}

(Available on web pages)

width

number width

Gets or sets the widget width in pixels.

function btnStd1_onMouseRelease(me) { var wgt = page.getWidget("rect1"); wgt.width = 10;

}

(Available on web pages)

386

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    JavaScript

height

number height

Gets or sets the widget height in pixels.

function btnStd1_onMouseRelease(me) { var wgt = page.getWidget("rect1"); wgt.height = 10;

}

(Available on web pages)

visible

boolean visible

Gets or sets the widget visible state.

function btnStd4_onMouseRelease(me) { var wgt = page.getWidget("rect1"); wgt.visible = false;

} function btnStd5_onMouseRelease(me) { var wgt = page.getWidget("rect1"); wgt.visible = true;

}

value

number value

Gets or sets the widget 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");

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

387

Widget methods wgt.opacity = 0.5;

}

(Available on web pages)

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;

}

(Available on web pages)

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";

}

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 propertyName index

Description

String containing the name of property to get

Index of the element to get from the array (default = 0)

388

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    JavaScript

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.

function buttonStd1_onMouseRelease(me, eventInfo) { var shape = page.getWidget("rect2"); var y_position = shape.getProperty("y");

} function buttonStd2_onMouseRelease(me, eventInfo) { var image = page.getWidget("multistate1"); var image3 = image.getProperty("imageList", 2);

//…

}

(Available on web pages)

setProperty

boolean setProperty( propertyName, value, [index] )

Sets a property for the widget.

Parameters

Parameter propertyName value index

Description

String containing the name of property to set

String containing the value to set the property.

Index of the element to set in the array (default = 0)

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.

function buttonStd1_onMouseRelease(me, eventInfo) { var setting_result = shape.setProperty("y", 128); if (setting_result) alert("Shape returned to start position");

} function buttonStd2_onMouseRelease(me, eventInfo) { var image = page.getWidget("multistate1"); var result = image.setProperty("imageList", "Fract004.png", 2);

//…

}

(Available on web pages)

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

389

Page object

Page object

This object references the current HMI device page. The page is the top-level object of the screen.

Page object properties

Properties available at page level.

backgroundColor

string backgroundColor (in format rgb(xxx, xxx, xxx) where xxx range from 0 to 255)

Page background color.

function btnStd11_onMouseRelease(me) { page.backgroundColor = "rgb(128,0,0)";

}

(Available on web pages)

width

number width

Page width in pixels.

function btnStd05_onMouseRelease(me) { var middle_x = page.width / 2;

}

(Available on web pages, get only)

height

number height

Page height in pixels.

function btnStd05_onMouseRelease(me) { var middle_y = page.height / 2;

}

(Available on web pages, get only)

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.

390

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    JavaScript function btnStd9_onMouseRelease(me) { page.userValue = "Here I can store custom data";

}

(Available on web pages)

Page object methods

Methods that can be used at page level.

getWidget

object getWidget( wgtName )

Returns the widget with the given name.

Parameter wgtName

Description

String containing the widget name

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");

}

(Available on web pages)

setTimeout

number setTimeout( functionName, delay )

Starts a timer to call a given function after a given delay.

Parameter functionName delay

Description

String containing the name of function to call

Delay in milliseconds

Return value

A number corresponding to the timerID.

var duration = 3000; var myTimer = page.setTimeout("innerChangeWidth()", duration);

(Available on web pages)

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

391

Page object methods

clearTimeout

void clearTimeout( timerID )

Stops and clears the timeout timer with the given timer.

Parameter timerID

Description

Timer to be cleared and stopped var duration = 3000; var myTimer = page.setTimeout("innerChangeWidth()", duration);

// do something page.clearTimeout(myTimer);

(Available on web pages)

setInterval

number setInterval( functionName, interval )

Starts a timer that executes the given function with the given interval.

Parameter functionName interval

Description

String containing the name of function to call

Interval in milliseconds

Return value

A number corresponding to the timerID.

var interval = 3000; var myTimer = page.setInterval("innerChangeWidth()", interval);

(Available on web pages)

clearInterval

void clearInterval( timerID )

Stops and clears the interval timer with the given timer.

Parameter timerID

Description

Timer to be cleared and stopped var interval = 3000; var myTimer = page.setInterval("innerChangeWidth()", interval);

// do something

392

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    JavaScript page.clearInterval(myTimer);

(Available on web pages)

clearAllTimeouts

void clearAllTimeouts()

Clears all the timers started.

page.clearAllTimeouts();

(Available on web pages)

Group object

A group is a basic logical element that associates a set of logical tags.

Group object methods

Methods that can be used with group objects.

getTag

object getTag( TagName )

Gets the tag specified by TagName from the group object.

Parameter

TagName

Description

String representing the tag name

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.

var group = new Group(); project.getGroup("GroupName", group); var value = group.getTag("Tag1");

(Available on web pages)

getCount

number getCount()

Returns total number of tags in this group.

var group = new Group();

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

393

Project object project.getGroup("GroupName", group); var value = group.getCount();

(Available on web pages)

getTags

object getTags()

Returns the list of all tags in group.

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…

};

(Available on web pages)

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.

Project object properties

Properties to be set at project level.

startPage

string startPage

Page shown when the project is started.

var startPage = project.startPage; project.startPage = "Page2.jmx";

Project object methods

Methods to be used at project level.

394

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    JavaScript

nextPage

void nextPage()

The script executes the Next page action.

project.nextPage();

(Available on web pages)

prevPage

void prevPage()

The script executes the previous page action.

project.prevPage();

(Available on web pages)

lastVisitedPage

void lastVisitedPage()

The script executes the last visited page action.

project.lastVisitedPage();

(Available on web pages)

homepage

void homePage()

The script executes the Home page action.

project.homePage();

(Available on web pages)

loadPage

void loadPage(pageName)

The script executes to load the set page defined in the script.

project.loadPage("Page5.jmx");

(Available on web pages)

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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

395

Project object methods

showDialog

void showDialog(pageName)

The script executes to show the dialog page.

project.showDialog("Dialog.jmx");

(Available on web pages)

closeDialog

void closeDialog()

The script executes to close the currently-opened dialog page.

project.closeDialog();

(Available on web pages)

showMessage

void showMessage( message )

The script executes to display the message popup.

project.showMessage("Hi This is test message");

(Available on web pages)

getGroup

number getGroup( groupName, groupInstance, [callback] )

Fast read method; this gets the values of all tags in a group.

Parameter groupName groupInstance callback

Description

String containing the name of the group

Group element to be filled

String containing the name of the function to be called when the group is ready

Return value

A number value that is the status: 1 for success, 0 for fail.

var group = new Group(); var status = project.getGroup ("enginesettings", group); if (status == 1) { var value = group.getTag("Tag1"); if (value!=undefined) {

396

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    JavaScript

// do something with the value

}

} var g = new Group(); var status = project.getGroup ("enginesettings", g, function (groupName, group) { fnGroupReady(groupName, group);} ); function fnGroupReady(groupName, group) { var val = group.getTag("Tag1"); if (val!=undefined) {

// do something with the value

}

}

(Available on web pages)

getTag

object getTag( tagName, state, index, forceRefresh) void getTag( tagName, state, index, callback, forceRefresh)

It returns the tag value or the complete array if index value is -1 of the given tagName.

Parameter tagName state index

Description

String of tag name

State element to be filled

Index if the tag is of array type. -1 returns the complete array. Default = 0.

callback

Function name if an asynchronous read is required. Default = “".

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.

var state = new State(); var value = project.getTag("Tag1", state, 0);

//

//for non array type

//tags index is not considered, so can be left as 0

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

397

Project object methods

// if (value!=undefined) {

//...do something with s

} var state = new State(); project.getTag("Tag1", state, -1, function(tagName, tagState) { fnTagReady(tagName, tagState); }); function fnTagReady(tagName, tagState) { if (tagName=="Tag1") { var myValue = tagState.getValue();

}

}

(Available on web pages)

setTag

number setTag( tagName, tagValue, [index], [forceWrite] )

Sets the given tag in the project. Name and value are in strings.

Parameter Description tagName

String of tag name

tagValue

Object containing the value to write

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.

var val = [1,2,3,4,5]; var status = project.setTag("Tag1", val, -1, true); if (status == 0) {

// Success

} else {

// Failure

} var val = "value"; project.setTag("Tag1", val);

398

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    JavaScript

(Available on web pages)

updateSystemVariables

void project.updateSystemVariables()

Force system variables to refresh.

project.updateSystemVariables()

selectAllAlarms

void project.selectAllAlarms(bool selected)

Select/unselect all alarms project.selectAllAlarms(true)

(Available on web pages)

ackAlarms

void project.ackAlarms()

Acknowledge all selected alarms project.selectAllAlarms(true); project.ackAlarms(); project.selectAllAlarms(true);

(Available on web pages)

resetAlarms

void project.resetAlarms()

Reset all selected alarms project.selectAllAlarms(true); project.resetAlarms(); project.selectAllAlarms(true);

(Available on web pages)

enableAlarms

void project.enableAlarms()

Enable all selected alarms project.selectAllAlarms(true); project.enableAlarms(); project.selectAllAlarms(true);

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

399

Project object methods

(Available on web pages)

getRecipeItem

object getRecipeItem (recipeName, recipeSet, recipeElement)

Gets the value of the given recipe set element.

Parameter recipeName recipeSet

Description

String representing the recipe name

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.

var value = project.getRecipeItem("recipeName", "Set", "Element");

setRecipeItem

number setRecipeItem (recipeName, recipeSet, recipeElement, value )

Gets the value of the given recipe set element.

Parameter recipeName

Description

String representing the recipe name

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.

var val = [2,3,4]; project.setRecipeItem("recipeName", "Set", "Element", val); if (status == 0) {

// Success

} else {

// Failure

}

downloadRecipe

void downloadRecipe (recipeName, recipeSet )

400

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    JavaScript

Downloads the recipe set to the corresponding tag.

Parameter recipeName recipeSet

Description

String representing the recipe name

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 )

Uploads the value of tags into the provided recipe set.

Parameter recipeName recipeSet

Description

String representing the recipe name

String representing the recipe set, can be either the recipe set name or 0 based set index.

project.uploadRecipe("recipeName", "Set");

launchApp

void launchApp( appName, appPath, arguments, singleInstance)

Executes an external application.

Parameter appName appPath

Arguments singleInstance

Description

String containing the application name

String containing the application absolute path

String containing the arguments to be sent to application true = only single instance allowed, false = multiple instances allowed project.launchApp("PDF.exe","\\Flash\\QTHMI\\PDF","\\USBMemory\\file.pdf","true");

printGfxReport

void printGfxReport( reportName, silentMode)

Prints the graphic report specified by reportName.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

401

Project object methods

Parameter reportName silentMode

Description

String containing the report name

True = silent mode enabled. No printer settings dialog is displayed.

project.printGfxReport("Report Graphics 1", true);

printText

void printText( text, silentMode)

Prints a fixed text.

Parameter text silentMode

Description

String to print

True = silent mode enabled. No printer settings dialog is displayed.

project.printText("Hello I Am Text Printing",true);

printBytes

void printBytes( text, silentMode)

Prints a hexadecimal string representing data to print. For example, "1b30" to print < ESC 0 >

Parameter text silentMode

Description

Hexadecimal string to print

True = silent mode enabled. No printer settings dialog is displayed.

project.printText("Hello I Am Text Printing",true);

emptyPrintQueue

void emptyPrintQueue()

Empties the print queue. Current job will not be aborted.

project.emptyPrintQueue();

pausePrinting

void pausePrinting();

Suspends printing operations. Will not suspend the print of a page already sent to the printer.

402

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    JavaScript project.pausePrinting();

resumePrinting

void resumePrinting();

Resumes previously suspended printing.

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;

Returns a string representing current printing status.

Status string

error printing idle paused

Description

An error occurred during printing

Ongoing printing

System is ready to accept new jobs

Printing has be suspended var status = project.printStatus; project.setTag("PrintStatus",status);

printGfxJobQueueSize

project.printGfxJobQueueSize;

Returns the number of graphic reports in queue for printing.

var gfxqueuesize = project.printGfxJobQueueSize; project.setTag("printGfxJobQueueSize",gfxqueuesize);

printTextJobQueueSize

project.printTextJobQueueSize;

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

403

Project object methods

Returns the number of text reports in queue for printing.

var textjobqueuesize = project.printTextJobQueueSize; project.setTag("printTextJobQueueSize",textjobqueuesize);

printCurrentJob

project.printCurrentJob;

Returns a string representing current job being printed var currentjob = project.printCurrentJob; project.setTag("printCurrentJob",currentjob);

printActualRAMUsage

project.printActualRAMUsage;

Returns an estimate of RAM usage for printing queues var myVar = project.printActualRAMUsage; alert(" actual ram usage is "+ myVar);

printRAMQuota

project.printRAMQuota;

Returns the maximum allowed RAM usage for printing queues var ramquota = project.printRAMQuota; project.setTag("printRAMQuota",ramquota);

printActualDiskUsage

project.printActualDiskUsage;

Returns the spool folder disk usage (for PDF printouts) var myVar1 = project.printActualDiskUsage; alert(" actual disk usage is "+ myVar1);

printDiskQuota

project.printDiskQuota;

Returns the maximum allowed size of spool folder (for PDF printouts).

var ramquota = project.printRAMQuota; var diskquota = project.printDiskQuota;

404

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    JavaScript

printSpoolFolder

project.printSpoolFolder;

Returns current spool folder path (for PDF printouts).

var spoolfolder = project.printSpoolFolder; project.setTag("printSpoolFolder",spoolfolder);

printPercentage

project.printPercentage;

Returns current job completion percentage (meaningful only for multipage graphic reports) var percentage = project.printPercentage; project.setTag("printPercentage",percentage);

Project object widgets

getCurrentPageName

string getCurrentPageName()

Return the name of current active page

// Get PageMgr widget var pageMgr = project.getWidget( "_PageMgr" );

// Show Current Page var currentPageName = pageMgr.getCurrentPageName(); project.showMessage( "Current active page is: " + currentPageName );

(Available on web pages)

hasPage

boolean hasPage(string pageName)

Return true if the page exist, false otherwise

// Get PageMgr widget var pageMgr = project.getWidget( "_PageMgr" );

//Page exists var pageExists = pageMgr.hasPage( "Page10" ); if (pageExists) { project.showMessage( "Page10 exists" );

} else {

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

405

State object project.showMessage( "Hei Page10 not exists!" );

}

(Available on web pages)

State object

This is the class holding the state of a tag acquired from the controlled environment.

State object methods

Methods to be used with state objects.

getQualityBits

number getQualityBits()

Returns an integer - a combination of bits indicating tag value quality.

var state = new State(); var value = project.getTag("Tag1", state, 0); var qbits = state.getQualityBits();

(Available on web pages)

getTimestamp

number getTimestamp()

Returns time the value was sampled.

Return value

A number containing the timestamp (for example 1315570524492).

Note: Date is a native JavaScript data type.

var state = new State(); var value = project.getTag("Tag1", state, 0); var ts = state.getTimestamp();

isQualityGood

boolean isQualityGood()

Returns whether the value contained in this state object is reliable.

Return value

A Boolean true if quality is good, false otherwise.

406

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    JavaScript var state = new State(); var value = project.getTag("Tag1", state, 0); if (state.isQualityGood()) {

// do something…

}

(Available on web pages)

Keywords

Global objects are predefined and can be referenced by the following names.

page

object page

References the page object for the current page.

function btnStd04_onMouseRelease(me) { var wgt = page.getWidget("rect1"); var name = wgt.objectName;

}

project

object project

References the project widget.

var group = new Group(); project.getGroup("GroupName", group); var value = group.getCount("Tag1");

Global functions

print

void print( message )

Prints a message to the HMI Logger window.

Parameter message

print("Test message");

Description

Message string

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

407

Handling read/write files

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 message

Description

Message string

Note: The alert function may be used for debugging JavaScript functions.

alert("Test message");

(Available on web pages)

Handling read/write files

Create folder

boolean fs.mkdir(strPath);

Creates a folder, if not already existing, in the specified path. Returns true on success and false if it fails.

Parameter strPath

Description

Path string

Remove folder

boolean fs.rmdir(dirPath);

Remove directory at strPath if exists and empty. Returns true on success and false if it fails.

Parameter dirPath

Description

Folder string

Read folder content

object fs.readdir(dirPath);

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 dirPath

Description

Folder string

408

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    JavaScript

Read file

object fs.readFile(strfile [,strFlag]);

Opens the strFile file in read mode, reads its contents and returns it.

Parameter strFile strFlag

Description

File name string

Read file mode:

“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.

Parameter strFile fileData strFlag

Description

File name string

Data to be write on the file in byte array

Write file mode: l

“a”: appends fileData to the end of the text file l l

“r”: replaces the contents of the file with fileData

“ab”: appends fileData to the end of the binary file l

“rb”: replaces the contents of the binary file with fileData

Default flag is for writing text file in append and write mode. File path will be created if not present.

Returns -1 if write error occurs.

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 strFile fileData

Description

File name string

Data to be write on the file in byte array

File exists

boolean fs.exists(strPath)

Returns true if the file or folder exists at strPath.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

409

Handling read/write files

Parameter strPath

Description

Path string

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 strPath

Description

Path string

File status

object fs.stat(strPath)

Retrieves information on the file/folder present at the specified path.

Parameter strPath

Description

File/folder path string var fileStats = var fs.stat(strPath) fileStats.isFile

fileStats.isDir

fileStats.size

fileStats.atime

fileStats.mtime

fileStats.ctime

fileStats.perm

True if path is a file

True if path is a folder

Size in bytes of that file

Date object representing the last read access time

Date object representing the last write access time

Date object representing the creation time

File permissions

If path is invalid both isFile and isDir fields return false.

File permission table

0x4000

0x2000

0x1000

0x0400

0x0200

File is readable by the owner of the file

File is writable by the owner of the file

File is executable by the owner of the file

File is readable by the user

File is writable by the user

410

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    JavaScript

0x0100

0x0040

0x0020

0x0010

0x0004

0x0002

File is executable by the user

File is readable by the group

File is writable by the group

File is executable by the group

File is readable by anyone

File is writable by anyone

Important notes on file handling

Path for files and folders are expected to be UNIX style. This means the backslash character (\) is not recognized. Use slash character (/) instead.

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 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.

Limitations in working with widgets in JavaScript

Widgets cannot be instantiated by JavaScript, they can only be accessed and changed. If you need additional widgets on the page, you can add hidden widgets on the page, and then display or position them using JavaScript.

Debugging of JavaScript

JMobile Studio and JMobile HMI Runtime include a JavaScript debugger.

Two types of debuggers are available: l

Runtime debugger: a debugger running directly on the HMI device l

Remote debugger: a debugger running on a remote computer connected to the HMI device via Ethernet (usually computer running JMobile Studio)

Enabling debugging

In the Properties pane of a page, set JavaScript Debug to true.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

411

Debugging of JavaScript

For schedulers and alarms debugging, enable JavaScript Debug in Project properties.

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.

For a complete reference guide about JavaScript Debugger refer to : http://qt-project.org/doc/qt-4.8/qtscriptdebugger-manual.html

Remote JavaScript Debugger

Path: Run> Start JS Remote Debugger

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.

412

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

38    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 JMobile Client.

JavaScript Memory Usage

When the memory exceeds the maximum, an out of memory exception is thrown with a custom message. Please note that we don't have a fine control over the actual memory usage so it is mainly a soft limit. Moreover we can't forbid the allocation

(this will break the engine implementation), so exception is thrown only when the memory is already over the limit. Before raising the exception, a garbage collection is forced to see if some memory can be freed.

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 l l

$EngineMemory.setLimit() set maximum memory allowed for JavaScript (the default limit is 0x00FFFFFF)

$EngineMemory.getLimit() get maximum memory allowed for JavaScript

$EngineMemory.getSize() get currently used memory from JS (fastMallocStat)

Test memory exception

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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

413

Debugging of JavaScript

414

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

39 Handling Gestures

Some widgets have the capability to detect and manage pan and pinch gestures.

l

Trends (see

"Trend widget gestures" on page 224

for details) l

Gesture Area Widget. Special widget designed to customize handling of gesture events (see

"Gesture area widget" on page 332

for details)

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 gesture requires two fingers. It is available only with HMI devices supporting multi touch operation (see

"HMI devices capabilities" on page 475

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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

415

416

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

40 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 457

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.

WinCE Devices

Linux Devices

418

425

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

417

WinCE Devices

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.

The System Settings tool can be used in two operating modes: l

User mode l

System mode.

For each mode different options are available.

Runtime Installation

HMI devices are delivered from factory without Runtime, at first power up HMI shows the “Runtime Loader” screen.

Runtime can be installed: l l

Automatically, via Ethernet on first project download with JMobile Studio

Manually via USB Memory, creating an “Update Package”

Install Runtime via Ethernet

To install Runtime via Ethernet follow the

"Download to HMI device" on page 76

procedure.

418

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

40    System Settings

WARNING: Runtime installation via Ethernet download requires the HMI to have a valid IP address.

The IP address can be assigned in three ways: 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.

Install Runtime via USB Memory

To install Runtime, UpdatePackage or Backup Package via USB device follow this procedure:

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.

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.

To access System Mode:

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

419

WinCE Devices l 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.

From the System Setting page in User Mode, restart the panel in Configuration OS mode

Elements available in User Mode

Element

Calibrate Touch

Description

Calibrate the touch screen

Display settings

Time

Control backlight inactivity timeout and brightness

Set HMI device date and time manually or configure NTP servers

Regional Settings

Select or customize the regional setting parameters

BSP Settings

Display operating system version and unit operating timers to control buzzer and battery led.

Network

Plug-in List

Sets IP address and other network settings

List the plug-in modules installed and recognized by the system.

Note: this option may not be supported by all platforms and all versions.

Close

Restart

Closes the system setting page

Restart the HMI device 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

Elements available in System Mode

In addition to those available in User Mode, the following features are also available:

Element

Format Flash

Restore Factory Settings

Description

Formats the internal device flash disk. All projects and the JMobile HMI Runtime will be erased, returning the device to its 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.

Clear System Settings: resets system parameters (registry settings) and deletes the following files:

\\Flash\\Documents and Settings\\system.hv

420

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

40    System Settings

Element Description

\\Flash\\Documents and Settings\\default\\user.hv

\\Flash\\Documents and Settings\\default.mky

\\Flash\\Documents and Settings\\default.vol

System Mode password is also reset.

Clear Controller Application: clears current folders used by CODESYS V2.3

and CODESYS V3 internal controllers for applications: l

\Flash\QtHmi\RTS\APP\*.*

l l

\Flash\QtHmi\RTS\VISU\*.*

\Flash\QtHmi\codesys\*

l

\Flash\$SysData$\codesys\*

Clear sysdata settings: clears \Flash\$SysData$ folder

Service call: To be used only by technical support to fix display problems.

Note: Not all these options are available for all HMI devices and BSPs.

Resize Image Area

Download Configuration OS

Download Main OS

Download Splash Image

Download Bootloader

Download Main FPGA

Download Safe FPGA

Resizes the flash memory reserved to store the splash screen image displayed at power up. Default settings are normally suitable for all units.

Checks and upgrades the current version of the operating system used in System

Mode

Checks and upgrades the current version of the main operating system

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.

See

"Update of system components from the application" on page 458

for details.

Checks and upgrades the current version of the system boot loader.

Checks and upgrades the current version of the main FPGA file. This function may not be available for all platforms and versions.

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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

421

WinCE Devices

Element

Download System Supervisor

Description

Checks and upgrades the current version of the system supervisor firmware

(used for the RTC and power supply handling).

Copy the system files from the operator panel on the external device (usually an

USB stick).

Upload Configuration OS

Upload Main OS

Upload Splash Image

Upload Bootloader

Upload Main FPGA

Upload Safe FPGA

Upload System Supervisor

Update System Components

System components can be updated using a USB  flash drives. For each component, a couple of specific update files are provided.

Note: Upgrading procedures depend on hardware and operating system versions. Contact technical support for assistance.

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 419

for 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.

5. Click Download to transfer files to the HMI device.

Note: From this dialog click Upload to transfer files to the USB device.

422

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

40    System Settings

6. Follow the instructions displayed to complete the update: the progress of the operation in displayed in a progress bar.

This operation may require a few minutes.

Important: Do not turn off the device while a system component is being upgraded.

List of upgradable components

The HMI devices support the upgrade of the following components:

Component

Application

Main OS

Configuration OS

Splash

Bootloader

Main FPGA

Safe FPGA

Description

The HMI Application and the HMI Runtime generated from the Run> Update

Package command

Main Operating System

Backup operating system that ensures units recovery in case of main operating system corruption

The initial screen shown during the startup of the HMI device

Loader to handle device startup

FPGA firmware

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).

The System Supervisor component can be upgraded from v4.13 or above.

Important: Do not try to update versions V4.08, V4.09, V4.10 and

V4.11 since they do not support automatic update from System

Settings.

Touchscreen calibration

System Setting Calibration allows to calibrate Touchscreen device, can be accessed from System Settings

To access 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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

423

WinCE Devices

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 419

for details)

From the rotating menu, select “BSP Settings” and then the Password tab to open the set password dialog.

The password must be at least 5 characters long.

Leave “Old password” empty as default if target password is not set.

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.

424

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

40    System Settings

1. Enter System Mode.

2. Use one of the following operations available in rotating menu: l

Format Flash, to clean the flash drive and registry configuration.

l

Restore Factory Settings, to clean only the select components.

Note: Both operations do not involve firmware factory restore (MainOS, ConfigOS, Bootloader, FPGA images, etc).

See

"System Settings" on page 419

for details.

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.

Runtime can be installed: l

Automatically, via Ethernet on first project download with JMobile Studio l

Manually via USB Memory, creating an “Update Package”

Install Runtime via Ethernet

To install Runtime via Ethernet follow the

"Download to HMI device" on page 76 procedure.

WARNING: Runtime installation via Ethernet download requires the HMI to have a valid IP address.

The IP address can be assigned in three ways:

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

425

Linux Devices l 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.

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.

Install Runtime via USB Memory

To install Runtime, UpdatePackage or Backup Package via USB device follow this procedure:

1. Create an Update Package from JMobile Studio and copy into an empty USB memory stick

2. On HMI select [Startup sequence], then [Install]

3. Double click on “mnt” to access this folder

4. Then on “usbmemory”

426

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

40    System Settings

5. Select “UpdatePackage.zip” and confirm with [Ok]

6. The runtime installation begin

Note: File systems supported are FAT16/32 and Linux Ext2, Ext3 and Ext4.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

427

Linux Devices

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.

System Setting access from Web browser

To access System Settings using a Web browser, enter the IP address of the device, in the following format:

https://IP/machine_config

Note: Remote access requires port 443.

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: l

SSLv3 256 bits ECDHE-RSA-AES256-SHA l

TLSv1 256 bits ECDHE-RSA-AES256-SHA

WARNING: We discourage usage of CBC cyber suites in the context of SSL3 or TLSv1.0 connections since potentially affected by some vulnerabilities.

428

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

40    System Settings

System Setting access from HMI device

When Runtime is not installed, the System Settings is accessible from the Runtime Loader screen,

When Runtime is installed the System Settings is accessible selecting “Show System Settings” option of Context Menu,

Enter System Settings via tap-tap procedure

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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

429

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

Select "System Setting" from the HMI Default Mode screen

430

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

40    System Settings

System Settings Sections

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

Info

Status

Timers

PlugIn

Description

Device information

Device status (Free RAM, Up time, CPU Load)

Device timers (System on, Back light on)

Hardware plugins information

Logs

Device log files

Date & Time

Device date and time. Available parameters in edit mode:

Parameter Description

Current Timezone

Current Date

Local Time

Timezone region

Date and Time can set manually only when the Automatic Update is disabled.

Automatic Update (NTP)

Enable to keep date and time synchronized from a remote server

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

431

Linux Devices

Parameter Description

l

NTP Server

Specify the Internet NTP Server address

Networks

Network parameters. Available parameter in edit mode:

Parameter

General Settings

Network Interface

DNS

Description

Device hostname

Network parameters of the available interfaces l

DHCP l

IP Address l

Net Mask l

Gateway

DNS Servers

Generally provided from the DHCP servers, but can be modified in edit mode

Search Domains

Optional domains that will be used in concatenation with the provided urls

Services

Services are is 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.

Parameter

Avahi Daemon

Cloud Service

Router Service

SNMP Server

SSH Server

Description

Avahi is a system which enables programs to publish and discover services and hosts running on a local network.

Allow to manage remote HMI devices connected to a centralized server through gateways.

l

Server Type l l

Server

Username

Enable routing between Ethernet adapters

Enable the SNMP server

Enable the SSH server

432

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

40    System Settings

Parameter

System Logger

VNC Service

Description

Enable system logger servcie

Enable VNC service l

Port l l

Multiple clients

View only l

Encryption l

Authentication

Management

Management is available only when logged as admin.

From the management area is possible

"Update System Components" below

of the HMI device.

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

Brightness

Back light timeout

Orientation

Description

Brightness level of the display

Backlight inactivity timeout

Display orientation

Restart

HMI device restart command

Authentication

Enter in edit mode to change the authentication passwords.

EXIT

Exit from the System Setting tool.

Update System Components

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.

The system components of the Linux device can update locally using an USB memory key or remotely via web browser.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

433

Linux Devices

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> and select the “Management” section.

Expand the component to update and select [Update]

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.

Enter System Settings in Config OS mode via tap-tap procedure

System Setting in Config OS mode is available via tap-tap sequence, this mode can be accessed also when HMI is facing a software failure.

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.

434

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

40    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”

HMI will restart into System Settings in Config OS mode:

Touchscreen calibration

System Setting Calibration allows to calibrate Touchscreen device, can be accessed by tap-tap procedure.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

435

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

436

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

40    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 428

, 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 8

for details).

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.

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

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

437

Linux Devices

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]:

Select the Runtime you want to remove (1) and click [Uninstall] button (2):

438

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

40    System Settings

Runtime uninstall process will be performed:

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

439

Linux Devices

440

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

41 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 plugins 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 setup Wi-Fi access if you are working with tablet or phone devices to access the JM4Web pages on the HMI device.

Supported platforms and browsers

Generating page for Web access

Platform specific Home pages

Testing the Web project

Downloading the Web project

Web connectivity issues

Web supported features

Troubleshooting and FAQ

442

442

444

444

445

446

447

450

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

441

Supported platforms and browsers

Supported platforms and browsers

JM4Web supports 3 platforms: l web, for desktop browsers, l phone, for smart phone devices l tablet, for tablet devices

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. 

Working with a computer

JM4Web works with all modern web browsers. The following browsers have been tested for compatibility with JM4Web: l

Mozilla Firefox 40+ l l

Microsoft Internet Explorer 11+

Apple Safari 7.1+ l

Google Chrome 36+

Working with tablets or phones

JM4Web works with most tablet and phone devices. The following tablets have been tested for compatibility with

JM4Web: l iOS 4+ - Mobile Safari l

Android 7+ - Android Webkit

Generating page for Web access

Path: ProjectView> Web> Pages

Right-click the Pages node and select Insert Page to add a web page.

442

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

41    Web access

Any widgets and features can be used in JMobile Studio; however, not all features are currently available in JM4Web. If the project includes a feature that is not available, JM4Web will still work correctly but the feature will not be available on the remote client device.

See

"Web supported features" on page 447

for a list of the features supported in JM4Web and of the existing limitations.

Exporting pages

To select pages to export from the current project.

1. On the Run menu, click Web Project Settings: the Web Project Settings dialog is displayed.

2. Select the web pages you wish to export. By default all project and dialog pages are selected.

3. For each platform, select the home icon next to the page you want to define as the Home page. Only one Home page can be selected for each platform. All other home icons are grayed.

WARNING: When you download a project to the HMI device, make sure the Download Web

Project option is selected.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

443

Platform specific Home pages

Platform specific Home pages

The Home Page of the JM4Web project defines the first page that is shown in the browser of each platform type and defines the starting point for your web project. Pages that can be accessed from home page depend on the how other pages are linked in the project.

For example, if you have designed a set of pages for a phone platform, set as a Home Page a page appropriately sized for a mobile phone display. Then include in this page only links to  other phone pages: the user will only access phone pages when browsing the JM4Web project from a phone.

Testing the Web project

You can test your JM4Web project using the online simulator opening a standalone web page directly from a browser.

Testing with the online simulator

JMobile Studio includes an web server in the online simulator. You can start the simulator and access your JM4Web project from a web browser. The pages will be served from the simulator. 

1. Create your project (see

"Generating page for Web access" on page 442 ).

2. On the Run file, choose Start Simulator: the project will start running in a separate window.

3. Open a web browser (see

"Supported platforms and browsers " on page 442

for a list of browser compatible with

JM4Web).

4. Enter the following address: http://localhost:81: this tells the web browser to read the web pages from the local computer and use port 81, used by default by the online simulator in JM4Web.

5. Test your project in the browser.

Important: If you make any changes to the project pages in JMobile Studio you must stop and restart the simulator.

444

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

41    Web access

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.

Downloading the Web project

After testing the JM4Web pages, you can download the project to the desired HMI device.

The JM4Web project is downloaded together with the JMobile Studio project, see

"Download to HMI device" on page 76

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.

Running JM4Web from a browser

1. Open a web browser and enter the IP adress of your HMI device: the login page is displayed.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

445

2. Enter User Name and Password and click Sign In: the Home page will be displayed.

Web connectivity issues

See

"User management and passwords" on page 257

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.

Web connectivity issues

Here are described the most common issues you might encounter when connecting remotely to your HMI device.

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.

446

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

41    Web access

Once the server is back online, the red circle-bar icon will disappear indicating normal communications with the device.

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.

User session termination

A user session can be terminated either from the server or from the user.

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.

Non-Active JM4Web Project

The JM4Web page displayed in your browser might come from a project that is no longer active in the device. In this case a confirmation box is displayed and you can return to the active project.

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.

Web supported features

Currently not all JMobile Studio features are supported in JM4Web. Here a list of features supported and limitations, classified by category.

When you copy and paste objects from standard pages to a web pages, make sure that all objects are supported in web pages. Eventually remove unsupported objects from the web page after paste.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

447

Web supported features

Category

Widgets

Supported features

l

Basic (Text/Numeric, Images, Shapes, Trends/Graphs, Recipes,

Controls, Alarms, Texture) l l

Buttons

Meters l

Switches l

Lights l l

Media (IP Camera)

Icons l

Factory Automation

Alarms

Actions l l l l l

Alarms limits in JM4Web is the same of HMI device (500..2000

based on target)

Widgets (Javascript)

Page (HomePage, LoadPage, NextPage, PrevPage,

LastVisitedPage, ShowDialog, CloseDialog, ShowMessage,

LaunchBrowser)

Multilanguage (SetLanguage)

Tag (WriteTag, StepTag, SetBit, ResetBit, ToggleBit)

Limitations

l

AttachToTag of system variables is not supported l

Font files without web download permissions flag enabled are not loaded from the

JM4Web l

Widget properties with Attach to… dynamic behavior may not work for all properties supported by

JMobile Studio.

l

Multistate Image

Multi-Layer is not supported.

l

Alarm Color based on trigger condition is not supported in

Web l

Can not edit the

Alarm widgets in runtime l

On

Smartphone/Tablet

(in general embedded devices) based on

HW a user could expect performance problems with >

500 alarms.

l

JavaScript is supported (see

"JavaScript " on page 373

JavaScript chapter for a list of supported features)

448

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

41    Web access

Category

XForms

Keypads

Dialog Page

User

Management

Concurrent

User

Connections

Supported features

l l

Trend/Graph (RefreshTrend, ScrollLeftTrend, ScrollRightTRend,

PageLeftTrend, PageRightTrend, ScrollUpTrend, ScrollDownTrend,

PageUpTrend, PageDownTrend, PageDurationTrend, ZoomInTrend,

ZoomOutTrend, ZoomResetTrend, ZoomInAxisTrend,

ZoomOutAxisTrend, ZoomResetXAxisTrend, PauseTrend,

ResumeTrend, ShowTrendCursor, ScrollTrendCursor,

ScrollTrendToTime)

Alarm (ResetAlarm, AckAlarm, SelectAllAlarms, EnableAlarms) l

System (DumpTrend, DeleteTrend, DeleteEventArchive) l

Recipes (DownLoadRecipe, UpLoadRecipe,

WriteCurrentRecipeSet, DownLoadCurRecipe, UpLoadCurRecipe,

ResetRecipe, DumpRecipeData, RestoreRecipeData,

AddRecipeDataSet, DelRecipeDataSet) l

Scaling l l

Offset

ColorPalette l

BitIndex l

Only numeric keypads widgets are supported.

Limitations

l

Page actions are not supported in alarm trigger condition l

Some parameters do not support the

ColorPalette functionality.

l l l

Supported, you can show them and close them based on the

ShowDialog and CloseDialog actions.

The login mechanism verifies user credentials on the server.  The user name and password are based on the user credentials defined in

User Management.

The web server in the HMI device supports three concurrent connections at a time.

l

Custom keypads are not supported.

The numeric keyboard will be displayed as numeric widgets with a read/write or write mode.

l

Dialog pages support only modal dialogs.

l

Individual security settings applied to widgets or pages are not supported.

l

If more than 3 connections are attempted from remote browsers, only the first 3 connections will be permitted.

Working with keypads in JM4Web

The user can click on the Numeric widget and a text box will be displayed in which the new value can be inserted.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

449

Troubleshooting and FAQ

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.

Troubleshooting and FAQ

Enable JavaScript

JM4Web requires JavaScript to provide interactivity with the server and the user.  JM4Web will not work if JavaScript is disabled in your browser.

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 10 and not less than 5.

Why I'm not able to see changes in the web pages?

Every time a new web page is added edited into the project, you need to download the project to the device. However, when you connect the device IP address, the web browser might display cached pages instead of the latest downloaded pages. To avoid this behavior you can: l disable cache of your web browser l force web page refresh l by-pass browser cache 

450

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

42 License activation of HMI device software modules

You perform license related tasks for the HMI device in the Manage Target dialog of JMobile Studio.

Activate the device

Save a license

Import a license

452

453

453

454

454 CODESYS Demo mode

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

451

Activate the device

Activate the device

On each HMI device you need to activate the corresponding license. To do this you need an Internet connection.

Important: JMobile HMI Runtime must be installed in the device before you can activate your license.

Path: Run> Manage Target

1. In the Manage Target dialog, click the License tab.

2. In License folder select the location of your backup license files.

3. Choose the Activate Panel option.

4. Select the panel.

5. Click Select IP button: all of the devices connected to the network are listed.

6. Select the device on which the license is to be activated.

7. Enter Activation Key.

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.

452

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

42    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.

Path: Run> Manage Target

1. In the Manage Target dialog, click the License tab.

2. In License folder select the location of your backup license file.

3. Choose the Save License option.

4. Enter Panel ID.

5. Enter Activation Key.

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.

This is a two-step procedure:

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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

453

Downloading and activating the license

1. On a computer with Internet access, open a browser and go to https://license.x-formation.com

2. Enter your activation key (for example, 5BDI0-FORLS-HR67G-5BI5T).

3. Enter your HMI MAC ID in the field HostID Value as Custom=<MAC_ID> (for example,

Custom=0030D801DE27).

4. Click Activate: the license file is generated.

5. Click Download: the license file is saved to your computer.

Importing and activating the license

Path: Run> Manage Target

1. In the Manage Target dialog, click the License tab.

2. Select the device if it is connected or enter the MAC ID if you are generating the license offline.

3. Click Import license and select the license file you created. Add more license files if more than one activation key was purchased.

4. Click Activate license to activate the licenses on the HMI device or Save License for offline license file generation.

Note: You need to restart the HMI device to enable the activated license.

CODESYS Demo mode

A CODESYS Demo mode is available. The CoDeSys runtime will run for two hours, then you have to power cycle the panel to restart the two hours demo period.

Path: Run> Manage Target

1. In the Manage Target dialog, click the License tab.

2. Enter CODESYS_DEMO as the Activation Key.

3. Click Activate license: the license is activated on the HMI device.

454

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

42    License activation of HMI device software modules

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

455

CODESYS Demo mode

456

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

43 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.

New software modules can be updated l

Directly on HMI device using an USB flash drives (see

"System Settings" on page 417

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.

Update of system components from the application

Settings

458

459

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

457

Update of system components from the application

Update of system components from the application

You can download system components to a single HMI device or to a bulk of HMI devices of the same type using the

Ethernet communication interface.

Path: Run> Manage Target> Board

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 l 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

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.

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.

458

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

43    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

Uploading a splash screen picture

You can replace the default splash screen image shown by the devices during the power up phase.

The image used as splash screen must comply with the following requirements:

Filename

Format

Size

Bitmap width splash.bmp

Bitmap, RGB 565 format

< 500 KB

Even number (for example 430x239)

To upload the splash screen image:

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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

459

Settings

460

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

44 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)

WARNING: Unauthorized access to the device can cause damage or malfunctions. When connecting the device to a network protect the network against unauthorized access.

Measures for protecting the network include: l

Firewall l l

Intrusion Prevention System (IPS)

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.

Changing password on HMI device

Ports and firewalls

462

462

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

461

Changing password on HMI device

To change the password on the HMI device, use one of the following methods: l

From the JMobile HMI Runtime context menu: Settings> Password tab.

Changing password on HMI device 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 417

Tool

Leave “Old password” empty as default if target password is not set.

For Win32 JMobile HMI Runtime, password is saved into Users\

[username]\AppData\Roaming\Exor\buildNumber\server\config\RemoteUpdateConfig.xml.

Ports and firewalls

Here a list of all the ports used by JMobile Suite components.

Port

80/tcp

21/tcp

2100/tcp

Usage

HTTP port

FTP cmd port

Board port

16384-17407/tcp FTP data port (passive mode) -

990/udp UDP broadcast (Device discovery)

-

-

-

Remote

Access

Yes

Board

Management

-

-

Yes

Yes

Optional

Runtime/Project

Management

Yes

Yes

-

Yes

Optional

462

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

44    Protecting access to HMI devices

Port Usage

991/udp

998/udp

999/udp

5900/tcp

5100/tcp

1200/tcp

11740-11743/tcp

1217, 1740-

1743/udp

UDP broadcast (Device discovery)

UDP broadcast (Device discovery)

UDP broadcast

(Device discovery)

VNC Server

JS Remote Debugger

CODESYS 2.3

CODESYS 3

Remote

Access

-

-

-

-

-

VNC only

-

Optional

Optional

-

-

-

-

Board

Management

Optional

Runtime/Project

Management

Optional

Optional

Optional

-

-

-

Optional

Remote access

Remote access is required to connect to JMobile HMI Runtime using: l

JMobile Client l

Web access JM4Web

Runtime and project management ports

You use these ports to connect to JMobile HMI Runtime for operations such as update, installation and project download.

Board management ports

You use these ports to connect to the HMI device for Board operations such as BSP update, splash image download and so on.

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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

463

Ports and firewalls

464

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

45 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.

Static Optimization

FAQ on Static Optimization

Page caching

Image DB

Precaching

FAQ on precaching

466

469

470

470

470

470

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

465

Static Optimization

Static Optimization

Static optimization is a technique used in JMobile Studio to improve run-time 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: l

Static: values or properties do not change at run time.

l

Dynamic: values or properties change at run time.

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.

Background images can be created as follows: 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 run time.

l

Dynamic: The widget is not optimized at all. Use this flag when a static widget needs to be changed by Javascript.

466

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

45    Tips and tricks to improve performance

Tips for best performance

1. First of all: avoid placing static widgets over a dynamic widget. The overlapping area is computed considering the bounding rectangles of the widgets, that is the rectangles delimited by editing handles.

2. Don’t 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 run time 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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

467

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.

Here is an example of a correct and an incorrect use of static optimization.

Supported image formats

JMobile Studio supports several raster formats like BMP, PNG, JPEG, TIFF and the vector format SVG. Here a list of pros and cons:

468

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

45    Tips and tricks to improve performance

Image format

RASTER

VECTOR

(SVG)

Pros

l

Fast rendering l

Well standardized l

Small file size l

Rescale without quality loss l

Can handle dynamic properties

Cons

l

Big file size l

Fixed resolution l l l

Complex SVG images with many graphic items and layers can be slow to render.

Creating an optimized SVG is not simple.

Only Tiny 1.2 ( http://www.w3.org/TR/SVGTiny12/ ) supported.

Note: Scour software is free tool that can be used to remove foreign code from file

( http://www.codedread.com/scour/ ).

Static optimization of templates

Template pages can have large amounts of static content. However, static optimization cannot be applied to a template page, since where the template is used is based on the page design.

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.

FAQ on Static Optimization

Q: In a page where there are a few identical widgets, in the opt folder I see a PNG for each one of them. If they are really identical, why should the software duplicate them instead of having just one

PNG?

A: The software does not know if static images are actually the same since each widget could have different settings/properties altering the actual rendering at run time.

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.

Q: What will happen when no optimization is done in the software?

A: Every single widget is rendered at run time. In particular SVG images may require a lot of time to render in an embedded platform.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

469

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.

The file imagecachelist.xml is created in project/opt folder, containing relevant information: l

Fill color (in case of SVG images) l

Size of SVG image l

Number of times an image is used in the project l

Number of different sizes for the same image

Tips for using the Image DB function

1. Use uniform size of buttons, gauges and other widgets wherever possible.

2. Use same color themes among widgets of the same kind.

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 hìruno 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.

470

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

45    Tips and tricks to improve performance

When a project is loaded, JMobile HMI Runtime proceeds as follows:

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).

When the project is ready:

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 | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

471

FAQ on precaching

472

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

46 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.

Table of functions and limits

HMI devices capabilities

Compatibility

Converting projects between different HMI devices

474

475

476

477

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

473

Table of functions and limits

Table of functions and limits

Function

Number of pages

Number of basic widgets

Number of tags

Number of dialog pages

Number of dialog pages that can be open at the same time

Number of Recipes

Number of parameter sets for a recipe

Number of elements per Recipe

Number of user groups

Number of users

Number of concurrent remote clients

Number of schedulers

Number of alarms

Number of data transfers

Number of templates pages

Number of actions programmable per button state

Number of Trend Buffers

Number of curves per trend widget

Number of curves per scatter diagram widget

Number of samples per trend buffer

Number of tags per trend buffer

Number of trend buffer samples for a project

Max limit

1.000

2.000 x page

10.000

50

5

Number of messages in a message field

Number of languages

Number of events per buffer

Number of event buffers

32

1.000

1.000

50

50

32

30

5

4

30

2.000 (See

"HMI devices capabilities" on the facing page

)

1000

50

10

200.000

200

1.200.000 (See

"HMI devices capabilities" on the facing page

)

1024

12

2.048

4

474

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

46    Functional specifications and compatibility

Function

JavaScript file size per page

Size of project on disk

Number of indexed instances

Number of indexed alias

Number of indexed tag sets

Number of physical protocols

Number of reports

Number of reports pages

Max number of variables in variables widget

User folder size (UpdatePackage.zip)

FTP additional folders

32

32

255

5 MB

5

Max limit

16 KB

60 MB (See

"HMI devices capabilities" below )

100

100

30

4

HMI devices capabilities

See

"Table of functions and limits" on the previous page

for the standard capabilities.

HMI Devices (Windows CE)

eBIS510, eBIS513 eTOP507M, eTOP507MG, eTOP507MFB, eTOP510, eTOP510G, eTOP512, eTOP513, eTOP515, eTOP515G eTOP607M eTOP610 eBIS504, eBIS507 eTOP504, eTOP506, eTOP507, eTOP507G eTOP605

H3 wired, H4 wireless

Limits

Standard Capabilities

Max_Alarm = 500

Max_ProjectSize = 30 MB

HMI Devices (Linux)

eSMART04M, eSMART07M, eSMART10 eTOP607L, eTOP610L , eX705, eXware eSMART04 eSMART107 eX707, eX710, eX715, eX721

Limits

Standard Capabilities

Max_Alarm = 500

Max_ProjectSize = 240 MB

Max_Alarm = 4.000

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

475

Compatibility

HMI Devices (Linux) Limits

Number of trend buffer samples for a project =

2.400.00

PC (Windows)

JMobile PC Runtime

Limits

Max_Alarm = 10.000

Max_PageWidth = 10.000 px

Max_PageHeight = 10.000 px

Features not available in Linux devices: l l

LaunchBrowser macro

Media Player widget l

Printer devices are not supported. Reports can be printed only on PDF files. Print of text reports and alarm events are not supported.

Features not available in JMobile PC Runtime: l

VNC and PDF Readers plug-in l

Manage Target l l

System Settings Tool

Backup/Restore l

Serial protocols that requires special hardware

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.

476

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

46    Functional specifications and compatibility

Converting projects between different HMI devices

Project conversion from different HMI device models is supported, however, some manual operations may be required if the project uses features not supported in the destination device.

Guideline

Before converting a project have a look if some unsupported features are present (see

"HMI devices capabilities" on page 475 ), 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 474

for details).

l

Remove unsupported widgets, actions, system variables, protocols, project properties.

l l

If the project uses external storage, verify if the same storage path is still available.

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.

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.

JMobile Studio | User Manual | v206 (2017-04-04) | EN | © 2009-2017 Exor International S.p.A.

477

JMobile Suite

User Manual

2.06

2017-04-04

Copyright © 2009-2017

Exor International S.p.A.

Via Monte Fiorino, 9

37057 San Giovanni Lupatoto (Verona)

Italy [email protected]

phone: +39 045 8750404

fax: +39 045 8779023

advertisement

Was this manual useful for you? Yes No
Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Related manuals

Download PDF

advertisement

Table of contents