ABB CP600 Panel Builder 600 Programming Software Manual
বিজ্ঞাপন
বিজ্ঞাপন
Manual
PB610 Panel Builder 600
Programming Software for
CP600 Control Panels
Contents
What´s new in comparison to V2.0.0
Changing multiple widgets properties
Launching and stopping the simulator
7 Transferring the project to HMI device
Daylight Saving Time variables
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
I
II
Retentive memory specifications
11 Using the Client application
The Client application toolbar
Settings and time zone options
Transferring files to a remote HMI device
12 Using the integrated FTP server
13 Using ActiveX Client for Internet
Security setting for trusted site zone
Installing ActiveX in Internet Explorer
14 Using VNC for remote access
Enable/disable alarms at run time
Exporting alarm buffers to .csv files
Uploading/downloading a recipe
Backup and restore recipes data
Values outside range or invalid
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
Exporting data to .csv files 170
Data transfer limitations and suggestions 170
Offline node management process
Manual offline node management process 174
Automatic offline node detection
Exporting/importing multi-language strings 182
Changing language at run time 184
Limitations in Unicode support
Configuring location for schedules
Configuring the Scheduler widget
22 User management and passwords
Enable/disable security management
Configuring groups and authorizations
Assigning widget permissions from page view
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
26 Backup/restore of Runtime and project 221
Creating and using custom keypads
Deleting or renaming custom keypads
Updating data in the Tag Cross Reference pane
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
III
IV
Creating an indexed addressing set
Using indexed tag set in pages
Multistate Image Multilayer widget
Adding properties to a custom widget
Editing custom widgets properties
Execution of JavaScript functions
Limitations in working with widgets in
Supported platforms and browsers
Generating page for Web access
37 Updating system components in HMI devices 327
Display information on connected devices 328
List of upgradable components 328
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
Update of system components from the application
Update system components via USB
38 Protecting access to HMI devices
Changing password on HMI device
40 Tips and tricks to improve performance 339
Changing fill color property according to tag values 347
42 Functional specifications and compatibility
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
V
VI
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
1 Getting started
PB610 Panel Builder 600 is a software application designed to create graphical HMI pages. PB610 Panel Builder 600 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 PB610 Panel Builder 600.
This document is divided into chapters that describe the key functions of PB610 Panel Builder 600 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.
What´s new in comparison to V2.0.0
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
1
Assumptions
Assumptions
We assume that readers of this manual are using the PB610 Panel Builder 600 software to design control panel applications that run on CP600 panels and on computers running Windows.
We also assume that readers have a basic understanding of computers, Microsoft Windows, and the specific network environment where the application will run.
What´s new in comparison to V2.0.0
l
Support of Windows 10 32-/64-bit l
User´s gallery for customized widgets l
Maximum number of tags for PB610 PC Runtime: 10000 l
German online-help / manual
Installing the application
PB610 Panel Builder 600 installation contains: l
PB610 Panel Builder 600: an application for designing custom HMI projects in a user-friendly manner, along with a variety of objects in its built-in library, the Widget Gallery.
l
HMI Client: a light-weight application that can be used on Windows computers to remotely view and manage a project running on an HMI device.
l l
HMI Runtime: a standalone application that runs on the HMI devices. The HMI Runtime is installed via PB610
Panel Builder 600.
PC Runtime: a standalone application that runs on Win32 platforms (computers instead of HMI devices).
PB610 Panel Builder 600 system requirements
PB610 Panel Builder 600 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
Installing multiple versions of PB610 Panel Builder 600
You may install different instances of PB610 Panel Builder 600 on the same computer. Each installation has its own settings and can be uninstalled individually.
Three installation scenarios are possible:
2
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
1 Getting started
Installation scenario
First installation of PB610 Panel Builder 600 in the system
System with only one instance of PB610 Panel Builder 600 already installed
System with multiple instances of PB610 Panel Builder 600 already installed
Results
Software is installed in the specified destination folder
Current version can be replaced or maintained.
Last version installed can be replaced or maintained.
If you try to install a second instance of an already installed version of PB610 Panel Builder 600, a warning message is displayed.
Multiple PB610 Panel Builder 600 installations share a common workspace folder, each sub-folder includes the version number, for example C:\Program Files\ABB\Panel Builder 600 Suite1.90. 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 PB610 Panel Builder 600 project (.jpr file) created with an older version of the software PB610 Panel
Builder 600 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 PB610 Panel Builder 600 older than the version used to create them. This will damage the project and may cause runtime instability.
Multilanguage for PB610 Panel Builder 600
PB610 Panel Builder 600 is available in multiple languages. All languages are installed by default as part of PB610 Panel
Builder 600.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
3
Installing the application
The default language is English. To change it go to Help > Change Language.
Crash reports
A crash report dialog appears whenever PB610 Panel Builder 600 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.
4
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
2 Runtime
HMI Runtime is designed to support different platforms and different operating systems.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
5
Runtime modes
Runtime modes
The HMI Runtime is composed of two logic units: l
Server: runs communication protocols, collects data, monitors alarms, drives trend buffer sampling.
l
Client: displays data collected by server.
The server unit is responsible for handling the HMI services such as the communication protocols, performing data acquisition, driving trend buffer sampling activities, monitoring alarms, and so on.
The client unit is the part which is responsible for the visualization process: use the data collected by the server to render it on the display as graphical information.
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.
HMI device basic settings
On the HMI device press and hold on an empty area of the screen for a few seconds to display the context menu.
If no runtime is installed on the device click the dedicated button on the device when in loader mode. See
"The Runtime loader" on page 67
for details.
6
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
2 Runtime
1. From the context menu, select Show system settings: the System settings menu is displayed.
2. Click Back/Next to scroll the rotating menu.
Menu
Calibrate Touch
Display settings
Time
Regional Settings
BSP Settings
Network
Plug-in List
Function
Calibrate the touch screen
Control backlight inactivity timeout and brightness
Set HMI device date and time manually or configure NTP servers
Select or customize the regional setting parameters
Display operating system version and unit operating timers to control buzzer and battery led.
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
Context menu options
Option
Zoom In/Out/100%
Pan Mode
Function
Select view at run time
Enables/disables pan mode after a zoom in
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
7
Context menu options
Runtime settings
Main parameters
Context Menu Delay(s)
Show Busy Cursor
Use keypads
Keep retentive data on project download
Password
The Project Manager
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 333
for details.
This tool allows you to:
8
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
2 Runtime l unload the current project l load another project l 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 system components via USB" on page 331
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.
Developer tools
Utility functions for debugging at run time.
About
This function shows information about the Runtime version.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
9
Built-in SNTP service
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 for the following servers when turned on, or once a week if the HMI device is not turned off: l time.windows.com
l tock.usno.navy.mil
Important: Server addresses are hard-coded and cannot be changed by the user.
Customizing SNTP servers
Path: from the context menu > System Settings> Time> SNTP
Availability: BSP v1.76 ARM / 2.79 MIPS or higher
You can customize up to two SNTP servers.
Note: This function is not available in Configuration Mode (ConfigOS).
10
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
2 Runtime on PC
2 Runtime on PC
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.
PC Runtime provides connectivity with factory and building automation protocols, based on Ethernet and serial interfaces.
PC Runtime system requirements
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
Multiple instances of PC Runtime
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.
The port used by PC Runtime can be changed from the Settings dialog. Restart the application to apply the port change.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
11
Built-in SNTP service
Limitations
The following features are not supported in PC Runtime:
Function
Widgets
Manage Target
Feature NOT supported
Analog videos
Board section
System Mode/ User Mode
Tap sequence and rotating menu
VNC/PDF readers
Backup/Restore
Tags
Protocols
Non-standard computer software
Backup and restore functions. Standard computer software can be used for the purpose.
More than 4000 tags
Serial protocols requiring special hardware.
See
"Functional specifications and compatibility" on page 349
for more details.
Fullscreen mode
PC Runtime can start in fullscreen mode or in a window.
To switch to full screen:
1. Right click in the PC Runtime main window to display the context menu.
2. Choose Full Screen.
The workspace folder
When using PC Runtime, project files are stored in a workspace folder in:
%appdata%\ABB\[build number]\server\workspace
where [build number] is a folder named as build number (for example, 01.90.00.608).
12
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
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 333
for details.
In some conditions PC Runtime cannot detect all services running in ports like 80/HTTP and 21/FTP, this forces 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 PC Runtime fails, try one of the following procedures.
Issues with port numbers
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 PB610 Panel
Builder 600.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
13
Typical installation problems
1. From the Download to Target dialog select Advanced.
2. Modify the port number to match that set on PC Runtime.
3. Click OK to confirm: you can now download you project to the PC Runtime.
Restoring port information
If information about changes made on 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 PC Runtime can be changed from the Settings dialog. Restart the application to apply the port change.
14
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
2 Runtime on PC
Bypassing firewall or antivirus blocks
If PB610 Panel Builder 600 is running on the same machine as the PC Runtime, your firewall or antivirus may block the connection from PB610 Panel Builder 600 to PC Runtime.
1. From the Download to Target dialog manually type-in the localhost IP address 127.0.0.1.
2. Click Download.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
15
Typical installation problems
16
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
3 My first project
This section describes how to create a simple PB610 Panel Builder 600 project.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
17
The workspace
Workspace areas
PB610 Panel Builder 600 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
18
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
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
Analog Video Input, IPCamera, MediaPlayer
Alert and Print function
“Title” of dialog pages
Dialogs for data entry
ShowMessage, LunchApplication, LunchBrowser
PDF Reader. VNC
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
19
Communication protocols
Copying, moving, renaming a project
PB610 Panel Builder 600 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.
See
"Communication protocols" on page 353
for more details.
Note: you can run different Ethernet protocols over the same physical Ethernet port, but you cannot run different serial protocols using the same serial port. Some serial protocols support access to multiple controllers, but this option is set within the protocol itself which is still counted as one protocol.
Adding a protocol
Note: Refer to CP600 operating instructions manual in case you need cables information.
20
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
3 My first project
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
Description
Tags imported for the protocol.
See
for details.
See
"Automatic offline node detection" on page 175
for details.
Enable Offline AlgorithmOffline Retry
Timeout
Version
Protocol version available in PB610 Panel Builder 600 for selected HMI device.
Designing a page
Path: ProjectView > Pages
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
21
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.
Designing a page
Importing a page
When importing a page PB610 Panel Builder 600 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 l importing only the pages and the widgets: in this case all actions and data link have to be defined importing pages with references to actions and data links: used tags must be present in the project for these elements to work properly
Note: Page import can only be performed between projects made using the same software version. Save the older project as the newer version, then try again.
1. Right click the Pages node from the project tree and select Import page.
2. Choose the page to be imported from the desired project then click OK: a warning message is displayed.
3. Click Yes to remove all the links to data and actions. Click No to maintain the reference to data links and actions.
Tags need to be available in the new project.
Group of pages
You can group similar pages for easier maintenance. Grouping pages does not affect how pages appears at 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.
22
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
3 My first project
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:
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
23
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.
24
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
3 My first project
Adding tags
PB610 Panel Builder 600 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 34
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
25
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.
26
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
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.
See
"Communication protocols" on page 353
for details.
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
for details).
Importing tags
Introduction
Some protocols allow you to import tags stored in a comma separated file (.csv or other formats). Refer to the Tag Import section of each protocol for details (see
"Communication protocols" on page 353
).
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 184
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
27
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:
28
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
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:
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
29
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
)
Connect to a widget property (for example, value of a slider widget)
Data from the Recipe Manager (see
)
30
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
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 34
for details.
Communication Error
Two icons may appear close to widgets that have an attached tag.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
31
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 349 .
When the maximum number of open dialogs is reached, the oldest dialog is closed to open the new one.
32
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
4 Programming concepts
Programming for PB610 Panel Builder 600 is based on a few basic concepts and behaviors.
Changing multiple widgets properties
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
33
Data types
Data types
When creating a tag you have to specify its properties. Data type are specific to PB610 Panel Builder 600, 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 PB610 Panel Builder 600 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.
34
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
35
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
)
Connect to a widget property (for example, value of a slider widget)
Data from the Recipe Manager (see
)
Advanced search
Various syntax options can be applied to search box:
"Attach to" parameters
Main options
Function
WildChars
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:
36
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
37
Events
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.
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.
38
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
4 Programming concepts
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 45
.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
39
Note: If Hold Time is set to -1 for the widget, the project Hold Time value will be used.
Events
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.
40
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
4 Programming concepts
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:
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
41
Managing overlapping widgets
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.
42
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
4 Programming concepts
Grouping widgets
To group widgets:
1. Select all the widgets to group.
2. Right-click and then click Group.
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
Tip: Rename the components of a group of object using the same prefix followed by a point character(for example, myWidget.). This because when a group of objects with the same prefix is found, PB610 Panel
Builder 600 replicates the same prefix when the object is copied. This is very useful when the object needs to be referenced from JavaScript code.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43
Changing multiple widgets properties
Changing multiple widgets properties
You can set the properties of more widgets of the same category (label, field, gauge and so on) all at once.
To change properties:
1. Select widgets.
2. Set common properties from Properties pane.
3. When multiple widgets are selected, the Properties pane title changes to <MultipleObjects>: all changes will be applied to all selected widgets.
Note: Not all properties can be modified for multiple widgets simultaneously and must therefore be modified individually.
44
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
5 Project properties
Project properties contain settings for the project.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
45
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.
46
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
5 Project properties
Property Description
Version
Context
Menu
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
for details.
Developer
Tool
Enable/disables a collection of runtime debugging utility tools.
Buzzer on
Touch
Enables buzzer when touching the runtime screen. It can be used as an alternative to the touch buzzer feature available in Windows CE side that gives feedback when the user touches anywhere on the touchscreen. Buzzer on touch is supported also by Win32 Runtime.
Available for Windows CE from v1.76 ARM / 2.79 MIPS.
Buzzer duration
Default 200 ms
Keyboard
Enables the use of keyboard macros at run time when using external keyboards.
JavaScript
Debug
Enables the JavaScript debugger at run time for the current project.
Note: For UN20 HMI devices (Windows CE MIPS HMI devices), local debugger is disabled.
However, a remote JavaScript debugger is available to be used from a computer connected to the HMI device via Ethernet.
Allow JS
Remote
Debugger
Enables JavaScript remote debugger for current project.
Note: Remote debugging not supported on HMI Client and ActiveX.
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.
FreeType
Font
Rendering
Switches to FreeType the font rendering used by PB610 Panel Builder 600 and runtime.
Software plug-in modules
Defines which software modules are downloaded to the Runtime with the project. See
Behavior
These properties define different aspects of page behavior. See
Buzzer
A buzzer can be associated to the following widgets:
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
47
Developer tools l buttons l hotspots l needles l l fields external keys l combo boxes l tables items l control list items
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
Event queues
Timelog summary
Embed window
Reset queue stats
Disable watchdog
Ignore
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.
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.
Disable the watchdog function and prevents system restart in case of freeze or crash of services.
Disables crash report function, exceptions are not saved in the crash report window.
48
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
5 Project properties
Tool Description exceptions
Launch
VNC
Profiling
Launches the VNC server if available in runtime. VNC server is available as a plugin for Windows CE runtime only.
Measures the time spent for loading/rendering the active page. See
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.
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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
49
Developer tools 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
50
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
5 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
All projects created with PB610 Panel Builder 600 v1.90 (b608) or newer use the FreeType font engine as default. Projects created with older versions of PB610 Panel Builder 600 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 and it can be disabled from v1.90 onwards.
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:
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
51
Behavior l
WebKit (module required by browser widget – if available) l
PDF Reader l
VNC Server l
ActiveX
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 PB610 Panel Builder 600 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 format flash l restore factory settings
Important: The system cannot detect automatically which software plug-ins are required by the HMI application, make sure you select them all in the Project Properties.
Note: Software plug-in support has been designed for embedded HMI devices where storage is limited. This option is not supported in Win32 platform.
ActiveX requirements
ActiveX requires Microsoft Visual C++ 2008 Redistributable Package (x86) to be installed on your computer. If needed you can download it from the Microsoft web site.
Important: This plug-in requires about 10 MB of space. Enable it only if needed by the HMI project to reduce footprint for the project.
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 195
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.
52
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
5 Project properties
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 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.”
Panel Memory
Size of the available internal panel memory.
PageRequest, CurrentPage and SyncOptions
It is possible to have HMI Runtime exchange devices information on the page shown by the HMI. You can synchronize pages shown on the HMI device and on HMI 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 HMI 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 HMI Client or on both.
Attached tag must be available at least as a Write resource and must have integer data type.
SyncOptions
Synchronization of project pages with the value contained into the CurrentPage property.
Options can be: l
disable: page number value is ignored, l
local: page number displayed on HMI, l l
remote : page number displayed on HMI Client.
local + remote: page number displayed on HMI and on HMI Client, if different pages are displayed the last page loaded is considered.
Example: forced page change from controller/PLC to HMI device and HMI 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 HMI Client.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
53
Behavior
Example: forced page change from controller/PLC to HMI and HMI 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
Set value of tag "A" to display the requested page on HMI device and HMI Client. Tag "B" will contain the number of page currently shown by the device.
Example: forced page change from controller/PLC to HMI device and HMI Client. Read current page loaded on HMI Client.
Set properties as follows:
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 HMI Client. Tag "B" will contain the number of page currently shown by HMI Client.
Example: forced page change from controller/PLC to HMI device and HMI Client. Force HMI Client page synchronization with HMI device (not vice versa).
Set properties as follows:
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 HMI Client. Change page on HMI to display the same page on HMI Client.
Example: forced page change from controller/PLC to HMI device and HMI Client. Force HMI page synchronization with HMI Client (not vice-versa).
Set properties as follows:
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 HMI Client. Change page on HMI Client to display the same page on HMI.
54
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
5 Project properties
Example: synchronize displayed page between HMI device and on HMI 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 HMI Client and vice-versa.
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 PB4Web 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
Refresh Time
Defines the refresh time for the communication between the runtime and PB4Web clients.
Range
Default value
500–10000 ms
3000 ms
HMI device 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
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
55
Attach this property to a change of wheel event and use an action like StepTag to increase/decrease a tag value.
Events
56
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
6 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.
Launching and stopping the simulator
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
57
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
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.
58
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
6 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
59
Launching and stopping the simulator
60
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
7 Transferring the project to HMI device
To transfer the PB610 Panel Builder 600 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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
61
Download to HMI device
Download to HMI device
Path: Run> Download to Target
This function transfers project and HMI Runtime via Ethernet .
Note: The HMI device must have a valid IP address. See
"HMI device basic settings" on page 6
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.
3. Click Download: PB610 Panel Builder 600 will switch the HMI device to Configuration Mode and transfer the files.
When the download operation is completed, the HMI deviceis 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.
62
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
7 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 PB4Web pages to HMI device.
When transferring a project, PB610 Panel Builder 600 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.
Changing HMI device connection settings
Path: Run> Manage Target
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.
3. Specify Hostname to easily identify each device in a network where multiple devices are available. The default hostname is “HMI” for all devices.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
63
Download to HMI device
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
Changing system connection settings
1. In the Download System Files dialog, click Advanced.
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.
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.
64
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
7 Transferring the project to HMI device
Update package
To install or update HMI Runtime and project you may create a package to be loaded via USB.
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
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 PB4Web pages to HMI device.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
65
Update package
Option
Set Target
Password
User Files
Encrypted
Location
Description
Sets password to perform critical tasks (for example, project download/upload , board management)
See "Protecting access to HMI devices" on page 333
.
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 file2
HMI device:
\Flash\QtHmi (on HMI device) subFolder1/file1 file2
Note: User files copy is available only from the USB key.
Loading an update package
Path: from the context menu > Update
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.
66
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
7 Transferring the project to HMI device
3. Select Auto select best match and click Next: the procedure is completed automatically
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.
The Runtime Loader presence depends on the device Operating System and may not be available on all the units.
Important: Old versions of HMI devices may not include the Runtime Loader. Contact technical support if you need further information.
Installing Runtime with a project
1. Click System settings: the System menu is activated in user mode.
2. Enter the IP adress for the HMI device. See
"System Settings tool" on page 313
for details.
3. Download a project with PB610 Panel Builder 600 to install the Runtime.
When you download a project the Runtime is automatically installed if needed.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
67
Upload projects
See
"Transferring the project to HMI device" on page 61
for details.
4. Click Install Runtime: the procedure is run automatically.
Installing Runtime from a USB drive
1. Prepare the Update Package as described in
"Transferring the project to HMI device" on page 61
2. Plug the USB drive in the device and click Transfer from disk.
3. Follow the instructions displayed.
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 PB610 Panel Builder 600 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: a password is required to proceed.
for details.
5. Enter password: the upload process starts.
68
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
7 Transferring the project to HMI device
A copy of the project is saved in:
C:\Users\username\Documents\PB610 Panel Builder
600\workspace\Uploaded\RuntimeIPAddress\workspace\ProjectName
Note: If the upload operation fails, check firewall settings the computer where PB610 Panel Builder 600 is running.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
69
Upload projects
70
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
8 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.
Daylight Saving Time variables
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
71
72
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
8 System Variables
Alarms variables
Number of alarms of the requested type.
Variable
Not Triggered
Acknowledged
Description
Alarm condition no longer active; alarms already acknowledged
Not Triggered Not
Acknowledged
Alarma condition no longer active; awaiting acknowledgment
Number of missed alarm events
Alarms exceeding the event queue. Queue length is defined in the
engineconfig.xml file.
Triggered Acknowledged
Alarm condition active; alarms already acknowledged
Triggered Alarms
Alarm active: aknowledgement not required
Triggered Not
Acknowledged
Alarm condition active; awaiting acknowledgment
Buzzer variables
Adjust buzzer behavior.
Variable Description
Buzzer Setup
0 = disabled
1 = enabled (buzzer sounds as audible on any touchscreen event)
2 = buzzer status controlled by Buzzer Control system variable.
Buzzer
Control
0 = buzzer off
1 = buzzer on
2 = buzzer blink
Data type
int int int read only int read only int read only int read only int read only
Data type
int read only
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
73
Communication variables
Variable
Buzzer Off
Time
Buzzer On
Time
Description
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.
Data type
int int
WARNING: Buzzer Setup =1 (on touch) can be overridden by the “Buzzer on Touch” property defined inside the
"Project properties pane" on page 46
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 103 .
Data type
int
Read only
ASCII string
Read only int
Read only
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.
74
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
8 System Variables
Variable Description
Standard Offset
Offset in minutes when standard time is set, with respect to GMT (for example: -8x60 = -480 minutes).
Standard Week
Week in which the standard time starts (for example: First = 1).
Standard Month
Month in which the standard time starts. Range: 0–11. (for example: November = 10).
Standard Day
Day of week in which the standard time starts (for example: Sunday = 0).
Standard Hour
Hour in which the standard time starts (for example: 02 = 2).
Standard
Minute
Minute in which the standard time starts (for example: 00 = 0).
DST Offset
DST Week
DST Month
DST Day
DST Hour
DST Minute
Offset in minutes when DLS time is set, with respect to GMT
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
Enables/disables the low battery LED indicator (when available).
0 = disabled
1 = enabled
Reserved
Battery
Timeout
Display
Brightness
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.
int int
Data type
uint64 read only unsignedInt read only int
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
75
Dump information variables
Variable
External
Timeout
Flash Free
Space
System Font
List
Description
Range: 0–255
Non-operational time after which the display backlight is automatically turned off. The backlight is automatically turned on when the user touches the screen.
-1 = switch off backlight and disable touch (switch display off). Backlight Time counter is stopped.
0 = switch backlight on (switch display on)
1..n = timeout for switch off backlight (screensaver timer)
Free space left in internal Flash memory.
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).
Data type
int uint64 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.
Note: If copy time is less then one second, the system variable does not change its value.
Variable
Dump
Archive
Status
Description
1 = event buffer copy in progress
Dump Recipe
Status
1 = recipe buffer copy in progress
If the copy duration time is less than 1 second, the system variable does not change its value
Data type
int read only int read only
76
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
8 System Variables
Variable
Dump Trend
Status
Reset Recipe
Status
Description
1 = trend buffer copy in progress
1 = recipe buffer reset in progress
If the reset duration time is less than 1 second, the system variable does not change its value
Restore
Recipe Status
Returns information during the copy process of recipes. If the copy duration time is less than 1 second, the system variable does not change its value.
0 = initial default state
1 = operation triggered
2 = operation complete successfully
3 = operation completed with errors int read only
Data type
int read only int read only
Keypad variables
Keypad status.
Variable
Is keypad open
Description
0 = no keypad open
1 = keypad open
Network variables
Device network parameters.
Variable
Gateway
Description
Gateway address of the main Ethernet interface of device
Data type
int read only
IP Address
Mac ID
Subnet Mask
IP address of the main Ethernet interface of device
MAC ID of the main Ethernet interface of device
Subnet Mask of the main Ethernet interface of device
Data type
string read only string read only string read only string read only
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
77
Printing variables
Printing variables
Information on printing functions.
Variable
Completion percentage
Current disk usage
Current job
Current RAM usage
Disk quota
Graphic job queue size
Last error message
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 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
error
l
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.
read only read only read only string read only read only string read only read only
Data type
read only read only read only
78
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
8 System Variables
Variable
Download from HMI error message
Download from HMI percentage
Download from HMI status
Description
Error description
Download progress (0→100)
0 = idle, action is not in use or completed
1= file download in progress
2 = error
Error description
Data type
ASCII string read only read only int (32 bit) read only
Upload to HMI error message
Upload to HMI percentage
Upload to HMI status
Upload progress (0→100)
0 = idle, action is not in use or completed
1= file upload in progress
2 = error
Version variables
Operating System and runtime version.
Variable
Main OS Version
Runtime Version
Description
Version of Main OS, for example, UN30HSxx60M0166.
Version of runtime, for example, 1.90 (0) – Build (682)
ASCII string read only read only int (32 bit) read only
Data type
string string
Screen variables
Screen status.
Variable Description
Time remaining to unlock
Time remaining to unlock screen (see LockScreen action,
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
79
Server variables
Variable
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
Status of SD card
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 HMI Client.
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 HMI Runtime as in System Date format
(milliseconds).
Time variables
System time expressed in UTC format.
Variable
Day Of Month
Day of Week
Hour
Minute
Month
Description
Range: 1–31
Range: 0 = Sunday, .. , 6 = Saturday
Range: 0–23
Range: 0–59
Range: 1–12
Data type
string string uint64 uint64 int int int
Data type
int int
80
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
8 System Variables
Variable
Second
System Time
Year
Description
Range: 0–59
The same as UTC time. It can also be set as date/time for this variable.
Current Year
Data type
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.
Note: Page size can be different than HMI device display size.
Variable Description
Cursor position related to page
Page
Touch
X
Page
Touch
Y
Screen
Touch
X
Screen
Touch
Y
Cursor position related touchscreen
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
Java Script
page.primaryTouch.x
page.primaryTouch.y
page.primaryTouch.screenX
page.primaryTouch.screenY
81
USB drive variables
Variable Description
Touch
Press
0 = screen not pressed
1 = screen pressed
Touch
Status
Java Script
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.
Variable
USB Drive free space
Description
Available space in bytes
USB Drive Name
USB Drive Size
USB Drive Status
Name of USB device
Size in bytes of the device plugged in the USB port
Status of USB device
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
Description
Number of HMI Clients connected to the server
This Client Group-
Name
Group of currently logged user
This Client ID
Only for HMI Clients. Local and remote clients connected to the same server (for example, runtime) get a unique ID.
Data type
short read only string read only short
82
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
8 System Variables
Variable Description
This Client User-
Name
Name of the user logged to the client where the system variable is displayed.
Data type
read only string read only
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
83
User management variables
84
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
9 Retentive System Variables
Retentive memory is an option of the System Variables protocol that provides a memory area whose content is maintained when the HMI device is powered off.
Retentive memory specifications
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
85
Retentive memory specifications
Retentive memory specifications
The physical support for retentive memory is a FRAM chip. Variables with different data types can be stored in the retentive memory.
Important: Not all HMI devices include the FRAM chip. If no FRAM chip is available, memory persistency is not supported. In this case, the project file is still compatible, but values are not maintained over power cycles.
Important: Size of retentive memory up to 16 KB.
Retentive memory vs. recipes storage
Recipe data is saved in flash memory (except for 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.
Configuring retentive memory
Path: ProjectView> Protocols
1. Click + and select System Variables: the System Variables dialog is displayed.
2. Select Retentive Memory from the PLC Models list.
The flat memory area is accessible through an offset index.
Clearing 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.
86
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
9 Retentive System Variables
See
for details.
JavaScript Interface
project.clearRetentiveMemory();
Preserving retentive memory at project download
When a project file is downloaded to an HMI device, or when the active project is modified, the content of the retentive memory is normally deleted.
If you need to preserve the content of the retentive data at project download or update, select the Keep retentive data on
project download option in the settings tabs of the HMI device.
This setting will be ignored if you select the Delete Dynamic Files option when you download the project.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
87
Configuring retentive memory
88
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
10 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).
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
89
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.
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).
90
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
10 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
91
Keyboard actions
ShowKeyPad
Shows the default operating system touch keypad.
Note: might not be supported by all operating systems.
92
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
10 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.
Page actions
Page navigation. Page actions can be used with the following events:
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
93
l
OnMouseClick, l
OnMouseRelease, l
OnMouseHold l l
OnActivate
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
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.
Page actions
94
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
10 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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
95
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 Description
App Name
Executable name with extension (for example, "notepad.exe" to run Notepad)
Path
Application path. In Windows CE platforms: \flash\qthmi.
Arguments
Application specific arguments (for example, \flash\qthmi\Manual.pdf to open the document
“Manual.pdf”)
Single
Instance
Argument to start the application in a single instance or multiple instances.
When single instance is selected, the system first verifies whether the application is already running; if so, then the application is brought to the foreground, if not, then the application is launched.
Note: Arguments with spaces must be quoted (for example, "\Storage Card\Manual.pdf")
Example:
Page actions
96
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
10 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.
Note: Only works on Windows CE based embedded devices .
LaunchPDFViewer
Starts PDF Viewer.
Note: Only works on devices that include PDF Viewer.
PDF Viewer is a software plug-in. To download it to HMI device:
1. Enable the plug-in the Project Properties.
2. Install/update the runtime.
See
"Software plug-in modules" on page 51
for details.
LaunchUpdater
Updates project and/or runtime from an external device.
Use Path parameter to specify folder.
Examples
l
\USBMemory (for USB devices in Windows CE) l
\Storage Card (for SD devices in Windows CE)
Note: Not supported in devices based on Win32.
JavaScript Interface
project.launchUpdater(strPath)
Examples
project.launchUpdater("\\USBMemory")
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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
97
Print actions
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.
Note: printing could a few minutes for models not designed for line printing.
No custom driver is required.
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.
No custom driver is required.
EmptyPrintQueue
Flushes the current printing queue. If executed while executing a job, the queue is cleared at the end of the job.
98
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
10 Actions
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).
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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
99
Recipe actions
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.
Define the location where to save the file.
Note: supported formats are FAT or FAT32. NTFS format is not supported.
Parameter Description
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
FileName
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.
Tag that specifies a filename.
RestoreRecipeData
Restores previously saved recipe data.
Enter the file full path of the Recipe files in any external storage like USB, SD or network paths.
Note: supported formats are FAT or FAT32. NTFS format is not supported.
Parameter
FileName
BrowseForFile
Description
Attached tag from which read the file name at run time.
true = shows the Open dialog to browse the file to read.
false = no dialog is shown,
100
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
10 Actions
AddRecipeDataSet
Adds a new dataset to the selected recipe. The new dataset is appended at the end of the already defined datasets.
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
101
Remote Client actions
Parameter
RecipeName
DataSet
Description
Recipe where the dataset is to be deleted.
Dataset to be deleted.
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 HMI
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:
102
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
10 Actions
True
False
Transfer successful
Transfer failed
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
Description
Name of historical trend to store
FolderPath
FileFormat
Destination folder:
USB drive = \USBMemory
SD Card = \Storage Card
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 157
DateTimePrefixFileName
true = the dumped file will have date and time as prefix to its name (for example D2012_01_
01_T10_10_Trend1.csv)
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
103
System 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
%d = Day l
%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
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 PB610 Panel Builder 600 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
104
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
10 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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
105
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.
System actions
106
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
10 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
USB drive = \USBMemory
SD Card = \Storage Card
Note: supported formats are FAT or FAT32. NTFS format is not supported.
DumpConfigFile
Enables conversion to .csv file
DumpAsCSV
DateTimePrefixFileName
true = the dumped file will have date and time as prefix to its name (for example
D2012_01_01_T10_10_alarmBuffer1.csv)
Note: option only available when exporting directly in .csv format.
timeSpec
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.
Time format: l l
Local = the time values exported are the time of the HMI device.
Global = the time values exported are in UTC format.
FileName
Enabled when the DateTimePrefixFileName=true
The below wildcards are supported l
%n = Event archive name l l
%y = Year
%M = Month l
%d = Day l
%h = Hour l l
%m = Minutes
%s = Seconds
Example: \%n\%y%M%d\%h%m%s
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
107
System actions
Once the two folders are copied from the USB drive to the computer disk, the folder structure will be:
\config\ alarms.xml
eventconfig.xml
\data\
AlarmBuffer1.dat
AlarmBuffer1.inf
\
AlarmBufferReader.exe
To convert dump files to .csv
The AlarmBufferReader.exe tool is stored in the Utils folder of the PB610 Panel Builder 600 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:
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.
108
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
10 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
for details.
SafelyRemoveMedia
Provides for safe removal of SD card or USB drive fromHMI.
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
109
Tag actions
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.
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.
ClearRetentiveMemory
When set to 0, clears the content of the Retentive Memory.
EnableNode
Enable/disables action for offline node management. No communication is done with a disabled node.
110
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
10 Actions
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
Trend actions
Used for Live Data Trends and Historical Trends Widget.
RefreshTrend
Refreshes the Trend window.
It can be used in any Trends/Graphs widgets. Specify the widget as a parameter for the action.
ScrollLeftTrend
Scrolls the Trend window to the left side, by one-tenth (1/10) of the page duration.
Note: with the real-time trends pause the trend using the PauseTrend action, or the window will be continuously shifted to the current value.
ScrollRightTrend
Scrolls the Trend window to the right side, by one-tenth (1/10) of the page duration.
Note: with the real-time trends pause the trend using the PauseTrend action, or the window will be continuously shifted to the current value.
PageLeftTrend
Scrolls the Trend window by one-page. For example, if the page size is 10 minutes, then use the PageLeftTrend action to scroll the trend left for 10 minutes.
PageRightTrend
Scrolls the Trend window by one-page. For example, if the page size is 10 minutes, then use the PageRightTrend action to scroll the trend right for 10 minutes.
PageDurationTrend
Sets the page duration of the Trend window.
Define trend name and page duration.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
111
Trend actions
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.
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.
112
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
10 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)
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
113
User management 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.
ResetPassword
Restores the original password together with the settings specified in the project for the current user.
No parameter is required.
114
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
10 Actions
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
115
Widget 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.
116
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
10 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
117
Widget actions
MoveIPCamera
Sends remote commands to a camera that supports them. See
"IPCamera widgets" on page 256
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 143
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 46
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);
118
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
11 Using the Client application
HMI Client is a standalone application which provides remote access to the HMI Runtime, and is included in the PB610
Panel Builder 600. HMI Client uses the same graphic rendering system as the runtime in the HMI devices, it relies on a specified HMI Runtime as server for live data.
To run the HMI Client application:
1. From the Start menu > PB610 Panel Builder 600 >HMI Client: the client opens in a browser-like style window.
2. Type the server/device IP address in the address bar (for example: http://192.168.1.12
): HMI Client will connect to the server and the same graphical application running on the device will be loaded in the client window.
HMI Client acts as a remote client and communicates to the server, sharing the local visualization with the tag values that are maintained or updated by the communication protocol.
HMI projects contain properties indicating which page is currently displayed on the HMI and can force the HMI to switch to a specific page. You can use these properties to synchronize pages showed on the HMI device and HMI Client or to control an HMI device with a PLC.
See
for details.
The Client application toolbar
Settings and time zone options
Transferring files to a remote HMI device
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
119
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 HMI Client into the following cache folder.
%appdata%\ABB\[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 HMI 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 HMI Client. Default = 5 s.
Reuse connection
Enables reuse of the same TCP connection for multiple HTTP requests to reduce network traffic.
120
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
11 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 HMI 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 102 .
See
"Remote Client variables" on page 78
.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
121
Transferring files to a remote HMI device
122
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
12 Using the integrated FTP server
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 196
for details.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
123
FTP settings
124
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
13 Using ActiveX Client for Internet
Explorer
Standard distribution of PB610 Panel Builder 600 includes a HMI Client and an ActiveX Client.
Note: Maximum project resolution allowed by ActiveX is 1200 x 800 pixels.
Important: ActiveX components are not installed by default to the HMI devices, in order to save memory space in the flash memory. Enable them only if needed by HMI application. To install ActiveX components see
"Software plug-in modules" on page 51
Security setting for trusted site zone
Installing ActiveX in Internet Explorer
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
125
HTTP access to ActiveX files
HTTP access to ActiveX files
When security is enabled, the HMIAX.cab and HMIClientAX.htm ActiveX files have to be accessible from the HTTP server embedded into runtime.
See
"Modifying access permissions" on page 197
for details.
Internet Explorer settings
You must add the HMI device’s IP address to the list of the trusted sites in Internet Explorer.
Path: In Internet Explorer Tools> Internet Options> Security tab
1. Choose Trusted sites.
2. Click Sites.
3. In Websites enter the IP address of the HMI device where the ActiveX component has been installed and from where it will be loaded to the browser.
Security setting for trusted site zone
Path: In Internet Explorer Tools> Internet Options> Security tab
1. Choose Trusted sites.
2. Click Custom level.
3. In the Security Settings - Trusted Sites Zone dialog set the following options:
126
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
13 Using ActiveX Client for Internet Explorer
Option
Allow Scriplets
Automatic prompting for ActiveX controls
Binary and script behaviors
Display video and animation on a webpage that does not use ...
Run ActiveX controls and plug-ins
Scripts ActiveX controls marked for scripting
Automatic prompting for file downloads
Set to
Disable
Disable
Enable
Disable
Enable
Enable
Disable
Installing ActiveX in Internet Explorer
In Internet Explorer, when the add-on installation pop up comes up, choose Install This Add-on for All Users on This
Computer.
If you are using Vista or Windows 7 the User Account Control dialog is displayed: click Yes to proceed.
Uninstalling ActiveX
To remove the ActiveX component from your system, you must delete it from the computer.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
127
By default, the component is installed in:
C:\Program Files\ABB\HMIClientAX
Uninstalling ActiveX
128
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
14 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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
129
Starting VNC server
Starting VNC server
VNC server is a plug-in. It can be enabled and downloaded as part of the Runtime.
"Software plug-in modules" on page 51 .
VNC server has been signed for Windows CE based embedded HMI devices, Win32 platform is not supported.
Important: VNC server allows only one client.
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 45
VNC Options dialog
From the VNC Options dialog you can perform several tasks.
Tab
Control
Options
Functions
Star/stop the VNC server and connect to viewer
Define security information for server access using a VNC viewer
130
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
14 Using VNC for remote access
Tab Functions
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.
Important: Settings in the Advanced tab are reserved to expert users and should be modified when
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 practicable 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
Starting VNC viewer
No VNC viewer is provided as part of PB610 Panel Builder 600.
Many compatible VNC viewers are available for free download (for example, TightVNC).
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
131
Starting VNC viewer
132
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
15 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.
Enable/disable alarms at run time
Exporting alarm buffers to .csv files
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
133
Alarms Editor
Alarms Editor
Path: ProjectView> Config > double-click Alarms
Adding an alarm
Click + to add an alarm.
Parameter Description
Name
Name of alarm
Enable
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 143
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 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.
134
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
15 Alarms
Parameter Description
Tag
Tag whose value will trigger the alarm when it exceeds the set limits.
The alarm can refer to the value of this tag, or to the state of a bit if bitMaskAlarm has been selected as trigger.
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.
0 = set to this value when alarm is triggered
1 = set to this value when alarm is acknowledged.
Actions
Actions executed when the alarm is triggered. Additional conditions can be specified in the Events column.
See
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 144
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
for details.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
135
Remote alarms acknowledge
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.
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.
136
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
15 Alarms
Setting events
Path: ProjectView> Config > Alarms > Events column
Events are defined using the Alarms Editor.
See
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
137
Setting events
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
138
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
15 Alarms
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.
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
139
Active Alarms widget
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)
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.
140
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
15 Alarms
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
141
Active Alarms widget
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.
142
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
15 Alarms
Note: The severity value displayed here is set in the Alarm Editor.
Alarms History widget
Logs and display an alarm list if Buffer property in Alarms Configuration Editor is set.
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 139
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
143
Displaying live alarm data
Displaying live alarm data
Tag values can be included in the alarm description of the event buffer only from version 1.80.
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]]".
Example of Alarm widget
144
Note: The csv file resulting from the dump of the alarm events list will also display the tag value in the description column.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
15 Alarms
Exporting alarm buffers to .csv files
To export an event buffer containing an history alarms list, use the DumpEventArchive action.
See
for details.
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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
145
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.
146
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
15 Alarms
Tip: Enable this function when the alarm file is managed by a different tool (for example, PLC programming software) as well as by PB610 Panel Builder 600.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
147
Exporting alarm configuration
148
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
16 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 PB610 Panel Builder 600 workspace; the user can specify default values for each element of the data records. In 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 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 HMI Runtime.
See
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.
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
149
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.
150
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
16 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 can be referenced by name or by position.
To avoid ambiguity, the names of the recipe elements 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
151
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.
Default paths are: l
SD card: /Storage Card/data l
USB drive: /USBMemory/data
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 l
Recipe set: allows you to select a recipe set for upload or download. See
"Uploading/downloading a recipe" on the facing page
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:
152
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
16 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 34
for details) l configure the action in an alarm action list (see
for details) l configure the action in a scheduler action list (see
"Scheduling events at run time" on page 192
for details)
Downloading a recipe
You download a recipe from an HMI device using a recipe widget and the DownloadRecipe, DownLoadCurRecipe action. See
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
153
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
for details.
154
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
17 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.
Values outside range or invalid
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
155
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.
156
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
17 Trends
Element
Total memory
Space
Description
Memory currently used by the trend buffer. See
"Table of functions and limits" on page 350
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)
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
157
Trend widgets
Dump extended mode (compact mode)
Note: The first row of the header contains the tags names and tags data types
See
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:
158
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
17 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 161
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
159
History trends
Scaling data
Tag values can be scaled using the X Forms in the Attach to dialog. See
""Attach to" parameters" on page 34
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
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
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.
160
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
17 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
161
Values outside range or invalid
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
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.
162
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
17 Trends
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
163
Scatter diagram widget
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.
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
164
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
17 Trends 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 .
Note: Scatter diagrams support only the RefreshTrend action.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
165
Scatter diagram widget
166
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
18 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 limitations and suggestions
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
167
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.
168
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
18 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 executed on startup if the quality of the source tag is good.
See
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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
169
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.
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)
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.
170
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
18 Data 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
171
Data transfer limitations and suggestions
172
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
19 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
Automatic offline node detection
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
173
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.
174
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
19 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).
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
175
Automatic offline node detection
176
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
20 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. PB610 Panel Builder 600 also extends the TrueType Fonts provided by Windows systems to provide different font faces associated with different character sets.
PB610 Panel Builder 600 also allows you to provide strings for each of the languages supported.
PB610 Panel Builder 600 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:
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
177
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
Exporting/importing multi-language strings
Limitations in Unicode support
178
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
20 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
179
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.
180
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
20 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
181
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
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 PB610 Panel Builder 600 is coded in Unicode, to edit it you need a specific tool supporting Unicode encoded .csv files.
Exporting and reimporting strings
Path: ProjectView> Config > double-click MultiLanguage
182
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
20 Multi-language
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.
Import constraints
The following formats are supported for import:
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
183
Changing language at run time 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 91
.
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
PB610 Panel Builder 600 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> \ / * ? : > < | " & #
% ;
Trends
Printing
Reports
Comment
Name
Name
Unicode
ASCII [32..126]
ASCII [32..126]
\ / * ? : > < | " & # % ;
\ / * ? : > < | " & # % ;
184
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
20 Multi-language
Area
Alarms
Property
Name
Description
Charset Accepted
ASCII [36..126]
Unicode
Events
Buffer Name
Scheduler
Name
Languages
Language Name
Texts in widgets
User
Group
Texts from import files
Group Name
User
Comments
Name
Password
Recipes
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 ASCII [32..126]
Element name
Project Name
ASCII [32..126]
A-Z,a-z,0-9,-,_
General
Runtime
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,-,_
Widgets ID
PLC
Communication
A-Z,a-z,0-9,-,_
UTF-8, Latin1, UCS-2BE, UCS-2LE,
UTF-16BE, UTF-16LE
-
-
-
-
-
-
Reserved Chars/Strings
\ / * ? : > < | " & # % ;
[] - for live tags, \ escape seq for [ and \
\ / * ? : > < | " & # % ;
\ / * ? : > < | " & # % ;
\ / * ? : > < | " & # % ; admin,guest,unauthorized
-
\ / * ? : > < | " & # % ;
-
-
-
-
-
\ / * ? : > < | " & # % ; ! $'()
+,=@[]{}~`
\ / * ? : > < | " & # % ; ! $'()
+,=@[]{}~`
\ / * ? : > < | " & # % ; ! $'()
+,=@[]{}~`
“PUBLIC”, “readme”,
“index.html”
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
185
Limitations in Unicode support
186
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
21 Scheduler
PB610 Panel Builder 600 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.
Configuring location for schedules
Configuring the Scheduler widget
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
187
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
for details.
l
HighResolution, see
"HighResolution schedule" below
for details
Schedule
Scheduler settings and options. See
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
for details.
Recurring schedule
The Recurring schedule is used to perform actions at specified points in time. Settings can be modified at run time.
188
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
21 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
189
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.
190
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
21 Scheduler
Location files position
Application Location file path
PB610 Panel Builder 600
PB610 Panel Builder 600\languages\shared\studio\config\Target_Location.xml
Devices
PB610 Panel Builder 600\\runtime\UN20_WCE6 (MIPSIV_FP)\config\Target_Location.xml
Simulator
PC Runtime
PB610 Panel Builder 600\\runtime\UN30_SDK (ARMV4I)\config\Target_Location.xml
PB610 Panel Builder 600\\runtime\UN31_SDK (ARMV4I)\config\Target_Location.xml
PB610 Panel Builder 600\\simulator\config\Target_Location.xml
PB610 Panel Builder 600\\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:
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
191
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.
192
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
21 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 188
for details on schedule parameters.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
193
Scheduling events at run time
194
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
22 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
Assigning widget permissions from page view
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
195
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
196
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
22 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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
197
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 201
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.
198
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
22 User management and passwords
Action permissions can be modified directly from the project page. See
"Assigning widget permissions from page view" on page 201
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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
199
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 HMI Runtime.
Important: This setting is common to all users groups.
Element
IP list
Access limits
Description
IP addresses authorized to access the HTTP server. By default all.
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 204
for details.
Force Remote
Login
-
Disable
Enable
Default Access to workspace
Full
Full
No Access
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
Adding an HTTP configuration
To add and configure a new access click +: the Access limits dialog is displayed.
200
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
22 User management and passwords
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, that contain web console and public resources l
ActiveX files (hmiclientax.html, hmiax.cab)
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
Can enter config mode
Can manage other users
Can load factory settings
Can zoom
Can see log
Can create backup
Number of users allowed to login
Description
Enables switching from runtime to configuration mode. Normally used for maintenance.
Gives superuser privileges at run time. Allows adding, deleting and modifying users' permissions.
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
201
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.
Configuring users
See
"Modifying access permissions" on page 197
for details.
Configuring users
Path: ProjectView> Security> double-click Users
In the Users editor, click + to add a user: one row is added to the table.
202
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
22 User management and passwords
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 HMI Runtime with a different user, use one of the actions: l l
SwitchUser
LogOut
See
"User management actions" on page 114 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 114
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 l on HMI Runtime: execute the action DeleteUMDynamicFile with PB610 Panel Builder 600: select the Delete Dynamic Files in the download dialog.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
203
Force remote login
Force remote login
Path: ProjectView> right-click Security> Force Remote Login
Select this option to force user to log in when using remote access (via Activex or HMI 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 196 for details.
The only files/folders still accessible when this flag is enabled are: l
PUBLIC folder and Index.html, that contain web console and public resources l
ActiveX files (hmiclientax.html, hmiax.cab)
See
"Modifying access permissions" on page 197
for details on HTTP access limits.
204
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
23 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.
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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
205
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
206
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
23 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
207
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.
208
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
23 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
for details.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
209
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 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.
210
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
24 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, PB610 Panel Builder 600 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 HMI Client and ActiveX.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
211
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.
212
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
24 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:
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
213
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.
214
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
24 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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
215
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
216
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
24 Reports
Driver
Printer Model
Intermec PB50 printers in standby mode after a first successful print job.
-
Graphic Line
Yes No
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
217
Default printer
218
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
25 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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
219
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.
Note: The screen saver function is supported by Windows CE & Win32 devices and can also be used in HMI
Client and ActiveX clients.
220
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
26 Backup/restore of Runtime and project
You can backup all the content of the HMI device, including 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 197
for details.
Note: Backup is available only on Windows CE platform. It is not supported in Win32 / HMI 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 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 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 using the Transfer from disk option in the Loader menu.
Select the backup file: the system will automatically check for compatibility with the current platform and install it.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
221
222
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
27 Keypads
Several keypads are provided by default in the PB610 Panel Builder 600 so that they can be used for data entry. Here are a few examples:
Creating and using custom keypads
Deleting or renaming custom keypads
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
223
Creating and using custom 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.
224
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
27 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 next 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 260
for details.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
225
Deleting or renaming custom 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.
226
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
27 Keypads
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
227
Keypad position
228
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
28 External keyboards
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:
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
229
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
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.
230
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
28 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
231
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
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.
232
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
28 External keyboards
1. Click + to add actions.
You can associate actions both to the OnClick event and toe the OnHold event.
See
for details.
Note: Also JavaScript code can be associated to a key event.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
233
Associating actions to keys
234
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
29 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 236
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
235
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.
236
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
29 Tag cross reference
Automatic update
Path: View> Properties
You enable the automatic update of the Tag Cross Reference pane from the PB610 Panel Builder 600 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
237
Updating data in the Tag Cross Reference pane
238
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
30 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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
239
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.
240
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
30 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
241
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,
…
242
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
30 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:
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
243
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).
244
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
31 Special widgets
Widgets designed for special purposes are called special widgets and include control lists, date and time widgets, variable widgets and so on.
Multistate Image Multilayer widget
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
245
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.
DateTime 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
See
for details on system architecture.
Multistate Image widget
Path: Widget Gallery> Basic> Images
246
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
31 Special widgets
Use this widget to display an image from a collection based on the value of a tag used as Index. You can use this widget also for simple animations.
Parameter
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
247
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.
248
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
31 Special widgets
Note: Default Layer, Default Frame, Color and Fill can be changed at run time, attaching the to a tag.
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.
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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
249
Consumption Meter widget
In many projects you may need to attach fields such as Index or Data to tags to know the values of the selected item in the combo box. Use: 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.
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
Consumption Meter
Assigns a specific color to highlight the increment of the monitored resource in a specified time period (minimum resolution = 1 hour).
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.
250
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
31 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
251
RSS Feed widget
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.
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.
Parameter
RSS Source
UpdateRate
252
Description
Feed URL
Note: Feed sources cannot be modified at run time.
Refresh time
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
31 Special widgets
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
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
253
Media Player widgets
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 l
LoopOne: repeats the first video in the playlist.
LoopAll: repeats the entire playlist.
l
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 HMI Client or ActiveX.
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 l
DSP based video codecs
Software video codecs
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.
254
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
31 Special widgets
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.
3. Click H264 Profile: choose Baseline as profile and level 3 in the dialog.
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
255
IPCamera widgets
Note : This video converter tool is not distributed with the PB610 Panel Builder 600.
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
for details on how to work with JavaScript.
IPCamera widgets
Path: Widget Gallery> Media> IP Camera
Use these these widgets to show images captured from an IPCamera or a video stream.
Parameter
Camera URL
Refresh Rate
User Name
Password
MJPEG Camera URL
Description
URL of the IPCamera 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.
256
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
31 Special widgets
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 IPCamera widgets, but this will reduce the frame rate fore each widget.
Supported IPCameras
The following IPCamers 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
MJPEG
HTTP
MJPEG
HTTP
HTTP
URL
http://{ip_address}/videostream.cgi
http://{ip_address}/snapshot.cgi 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
Edimax IC-7100P PTZ
Foscam FI8916W
Foscam FI9803 EP
Hamlet HNIPCAM IP Camera
MOXA VPort 254 (Rugged 4-channel
MJPEG/MPEG4 industrial video encoder)
MJPEG
MJPEG
HTTP
MJPEG
HTTP
MJPEG
MJPEG
HTTP
MJPEG
HTTP http://{ip_address}/video.cgi
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}/moxa-
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
257
IPCamera widgets
IPCamera
NVS30 network video server
Panasonic WV-Series Network Camera
Ubiquiti UniFi Video Camera
Zavio F3210 2MP Day & Night Compact IP
Came
Protocol URL
MJPEG
HTTP
MJPEG
HTTP cgi/getSnapShot.cgi?chindex=1 http://{ip_address}:8070/video.mjpeg
http://{ip_address}/jpg/image.jpg
http://{ip_address}/cgi-bin/mjpeg
MJPEG
HTTP 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.
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 IPCamera.
Parameter Description
Camera URL
URL of IPCamera
User Name
Name of user allowed to access the camera.
Set this parameter when access to the camera is password protected.
258
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
31 Special widgets
Parameter
Password
Command
Description
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
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 51
for details) to download to the HMI Runtime only when required.
Important: This widget is not supported by MIPS based devices and ActiveX.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
259
Control list widgets
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.
Control list widgets
Path: Widget Gallery> Advanced> Control List
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.
260
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
31 Special widgets
Parameter Description
Value
State
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.
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
Mode
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 .
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
261
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.
262
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
31 Special widgets
These variables can then be referenced from the Attach tag dialog, from the Page Editor.
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");
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
263
Variables widget
264
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
32 Custom widgets
PB610 Panel Builder 600 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.
Adding properties to a custom widget
Editing custom widgets properties
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
265
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 Convert to Widget dialog is displayed.
Note: This dialog shows widget types defined in the gallery, not the types that are specifically created for a project.
4. Select an existing category or Custom to create your own.
5. If you create your own, assign a name to it.
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.
To display a list of all the elements that are part of a widget, select the widget and open the ObjectView pane: all the element making up a complex widget are listed in hierarchical order.
To select a single widget without ungrouping the complex 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.
266
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
32 Custom widgets
1. Right-click on the grouped object and select Custom Properties: the Properties List dialog is displayed.
2. Click + to open the Property Select dialog: this lists all the properties of all the grouped widgets.
3. Select the properties you want to define for your custom widget.
4. Define each property's details.
Parameter Description
Display
Name
Name shown in the Properties pane.
Attribute
Name
Display
Category
The name exposed by PB610 Panel Builder 600, to JavaScript functions and Attach Tag dialog. The default property name format is WidgetType.name, where WidgetType is the type of widget; and name is the attribute name.
If you have more than one widget of the same type, the widget type name will be WidgetType01,
WidgetType02, an so on.
The category or group of the property in the Properties pane.
All properties in the same category are shown together, this allows you to organize the properties in the pane (for example, you can declare position properties, such as X coordinate, height, width properties in a single display category called Position).
Description
Any comment on the property to be displayed in the Properties pane.
Advanced
Specifies whether each property should appear in the advanced, or in the simple view mode of the
Properties pane.
Specifies if the property supports the “Attach to" attribute.
Support
Tags
Tags
Internal tag name for the widget. Typically this is the same as the attribute name; however, you can assign a different attribute name for your custom widget. The tag list is also used to combine tags.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
267
Combining properties
To combine two or more properties:
1. Select the primary property in the Properties List dialog.
2. Click +: the Property Select dialog is displayed.
3. Select the properties you want to combine.
Editing custom widgets properties
Note: The dialog only shows the properties that can be combined.
4. Click OK: the combined attributes will be shown in the Tags list box.
Use the up or down buttons to rearrange the order of the properties and click - to delete it
Select a property to display its details in the dialog box.
Editing custom widgets properties
To change the properties of a custom widget :
1. Right-click on the widget and select Custom Properties: the Properties List dialog is displayed.
2. Modify all the properties you need.
3. Click OK to confirm.
See
"Adding properties to a custom widget" on page 266
for details.
268
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
32 Custom widgets
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 PB610 Panel Builder 600 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
269
User's Gallery
270
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
33 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
271
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.
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
To
Optional, sender email address (for example, [email protected]).
Recipient e-mail addresses. To enter multiple addresses, separate them with a semi-colon.
Subject
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.
Attach a string tag to the From, To and Subject fields so that their value can be changed in the HMI Runtime.
WARNING: The maximum size for the message body is 4096 bytes, the exceeding text will be truncated.
272
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
33 Sending an email message
Adding email templates
Click + to add more templates.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
273
Configure emails
274
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
34 JavaScript
The purpose of this section is to describe how JavaScript is used in the PB610 Panel Builder 600 applications, not to explain the JavaScript language.
PB610 Panel Builder 600 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 PB610 Panel Builder 600 as you do in a web browser. If you are not familiar with the ECMAScript language, refer to: https://developer.mozilla.org/en/JavaScript
Execution of JavaScript functions
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
275
Limitations in working with widgets in JavaScript
276
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
34 JavaScript
JavaScript editor
PB610 Panel Builder 600 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.
PB610 Panel Builder 600 provides a JavaScript engine running on the client side. Each project page can contain scripts having a scope local to the page where they are added; global scripts can be created to be executed by scheduler events or alarm events.
In both cases scripts are executed on the client. This means that if more than one client is connected to the HMI device (for external computer running the HMI Client), each client will run the same script, providing different output results depending on the input, since inputs provided to different clients may be different.
For example, if a script acts according to the position of a slider and this position is different on the different clients, the result of the script will be different on each client.
JavaScript functions for page events
JavaScript editor will open when you add a JavaScript action inside an action list.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
277
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
278
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
34 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:
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
279
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
280
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
34 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
281
Page 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;
}
Page events
onActivate
void onActivate( me, eventInfo )
This event occurs each time the page is displayed.
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…
}
282
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
34 JavaScript
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: l scheduler l l alarms 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
283
System events
You can edit the JavaScript from the Project Properties tab.
Alarm events
These events occur when triggered by the associated alarm condition.
You can edit the JavaScript from the Project Properties tab.
onWheel
void onMouseWheelClock( me, eventInfo )
This event occurs when a wheel device is moving (for example, a mouse wheel).
284
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
34 JavaScript
Parameter me eventInfo
Description
Object triggering the event
Details of triggered event function Project1_onMouseWheelClock(me, eventInfo) {
//do something…
}
Objects
PB610 Panel Builder 600 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
Group
Project
State
Description
This is the base class for all elements on the page including the page element
This object references the current HMI device page.
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
285
Widget properties
Important: If the widget property Static Optimization is not set to Dynamic, changes to properties will be ignored.
Whenever a call to getWidget fails, the remote debugger reports the following error:
“Trying to access static optimized widget "label1". Disable widget static optimization to access widget from script.”.
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.
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;
}
x
number x
Gets or sets the widget ‘x’ position in pixels.
function btnStd1_onMouseRelease(me) { var wgt = page.getWidget("rect1"); wgt.x = 10;
}
y
number y
Gets or sets the widget ‘y’ position in pixels.
286
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
34 JavaScript function btnStd1_onMouseRelease(me) { var wgt = page.getWidget("rect1"); wgt.y = 10;
}
width
number width
Gets or sets the widget width in pixels.
function btnStd1_onMouseRelease(me) { var wgt = page.getWidget("rect1"); wgt.width = 10;
}
height
number height
Gets or sets the widget height in pixels.
function btnStd1_onMouseRelease(me) { var wgt = page.getWidget("rect1"); wgt.height = 10;
}
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
287
Widget methods function btnStd6_onMouseRelease(me) { var wgt = page.getWidget("field1"); wgt.value = 100;
}
opacity
number opacity (range from 0 to 1)
Gets or sets the widget opacity. Values are decimals from 0 to 1, where 1 is 100% opaque.
function btnStd8_onMouseRelease(me) { var wgt = page.getWidget("rect1"); wgt.opacity = 0.5;
}
rotation
number rotation (in degrees)
Gets or sets the rotation angle for the widget. The rotation is done clockwise and by degrees, starting at the East position.
function btnStd9_onMouseRelease(me) { var wgt = page.getWidget("rect1"); wgt.rotation = 45;
}
userValue
string userValue
Gets or sets a user-defined value for the widget. This field can be used by JavaScript functions to store additional data with the widget.
function btnStd9_onMouseRelease(me) { var wgt = page.getWidget("rect1"); wgt.userValue = "Here I can store custom data";
}
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.
288
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
34 JavaScript
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)
Almost all properties that are shown in the PB610 Panel Builder 600 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);
//…
}
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 PB610 Panel Builder 600 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");
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
289
Page object
} function buttonStd2_onMouseRelease(me, eventInfo) { var image = page.getWidget("multistate1"); var result = image.setProperty("imageList", "Fract004.png", 2);
//…
}
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)";
}
width
number width
Page width in pixels.
function btnStd05_onMouseRelease(me) { var middle_x = page.width / 2;
}
height
number height
Page height in pixels.
function btnStd05_onMouseRelease(me) { var middle_y = page.height / 2;
}
290
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
34 JavaScript
userValue
string userValue
Gets or sets a user-defined value for the widget. This field can be used by JavaScript functions to store additional data with the page.
function btnStd9_onMouseRelease(me) { page.userValue = "Here I can store custom data";
}
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");
}
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;
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
291
Page object methods var myTimer = page.setTimeout("innerChangeWidth()", duration);
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);
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);
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
292
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
34 JavaScript page.clearInterval(myTimer);
clearAllTimeouts
void clearAllTimeouts()
Clears all the timers started.
page.clearAllTimeouts();
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");
getCount
number getCount()
Returns total number of tags in this group.
var group = new Group(); project.getGroup("GroupName", group); var value = group.getCount();
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
293
Project object
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…
};
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.
nextPage
void nextPage()
The script executes the Next page action.
project.nextPage();
294
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
34 JavaScript
prevPage
void prevPage()
The script executes the previous page action.
project.prevPage();
homepage
void homePage()
The script executes the Home page action.
WARNING: All active time events are forced to removed and the JavaScript procedure will run until the end before switch to the new page.
project.homePage();
loadPage
void loadPage(pageName)
The script executes to load the set page defined in the script.
WARNING: All active time events are forced to removed and the JavaScript procedure will run until the end before switch to the new page.
project.loadPage("Page5.jmx");
showDialog
void showDialog(pageName)
The script executes to show the dialog page.
project.showDialog("Dialog.jmx");
closeDialog
void closeDialog()
The script executes to close the currently-opened dialog page.
project.closeDialog();
showMessage
void showMessage( message )
The script executes to display the message popup.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
295
Project object methods project.showMessage("Hi This is test message");
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) {
// 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
}
}
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.
296
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
34 JavaScript
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
// 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();
}
}
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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
297
Project object methods
Parameter Description index
Index if the tag is of array type. -1 pass the complete array. Default = 0.
forceWrite
Boolean value for enabling force write of tags, the function will wait for the value to be written before it returns back. Default = false.
Return value
Interger value for denoting success and failure of action when forceWrite is true. 0 means success and -1 means failure. If forceWrite is false, returned value will be undefined.
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);
updateSystemVariables
project.updateSystemVariables()
Force system variables to refresh.
project.updateSystemVariables()
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");
298
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
34 JavaScript
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 )
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
299
Project object methods 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.
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)
300
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
34 JavaScript
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.
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
301
Project object methods
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;
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);
302
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
34 JavaScript
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;
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);
State object
This is the class holding the state of a tag acquired from the controlled environment.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
303
State object methods
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();
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.
var state = new State(); var value = project.getTag("Tag1", state, 0); if (state.isQualityGood()) {
// do something…
}
304
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
34 JavaScript
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
void print( message )
Prints a message to the HMI Logger window.
Parameter message
Description
Message string print("Test message");
alert
void alert( message )
Displays a pop-up dialog with the given message. The user must press the OK button in the dialog to continue with the execution of the script.
Parameter message
Description
Message string
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
305
Handling read/write files
Note: The alert function may be used for debugging JavaScript functions.
alert("Test message");
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
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)
306
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
34 JavaScript
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
“r”: replaces the contents of the file with fileData l l
“ab”: appends fileData to the end of the binary file
“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.
File exists
boolean fs.exists(strPath)
Returns true if the file or folder exists at strPath.
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)
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
307
Limitations in working with widgets in JavaScript 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
0x0100
0x0040
0x0020
0x0010
0x0004
0x0002
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
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.
308
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
34 JavaScript
Debugging of JavaScript
PB610 Panel Builder 600 and HMI Runtime include a JavaScript debugger.
Two types of debuggers are available: l l
Runtime debugger: a debugger running directly on the HMI device
Remote debugger: a debugger running on a remote computer connected to the HMI device via Ethernet (usually computer running PB610 Panel Builder 600)
Enabling debugging
In the Properties pane of a page, set JavaScript Debug to true.
For schedulers and alarms debugging, enable JavaScript Debug in Project properties.
In the 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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
309
Debugging of JavaScript
Note: For UN20 HMI devices (Windows CE MIPS HMI devices), the local debugger has been disabled.
However, remote debugger is available for JavaScript debugging from a computer connected to HMI device via
Ethernet.
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.
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 HMI Runtime using port 5100/TCP.
Note: The Remote JavaScript debugger tool is not supported in HMI Client and ActiveX.
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).
310
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
34 JavaScript l l
$EngineMemory.setLimit() set maximum memory allowed for JavaScript (the default limit is 0x00FFFFFF)
$EngineMemory.getLimit() get maximum memory allowed for JavaScript l
$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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
311
Debugging of JavaScript
312
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
35 System Settings tool
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 l
User mode
System mode.
For each mode different options are available.
User Mode
In User Mode a simplified interface gives users access to the basic settings of the HMI device.
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.
Elements available in User Mode
Element
Calibrate Touch
Display settings
Description
Calibrate the touch screen
Control backlight inactivity timeout and brightness
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
313
System Mode
Element Description
Time
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
System Mode
In System Mode a full interface gives users access to all the tool's options.
A special procedure is required to start the tool in System Mode, or when the standard access procedure cannot be used for some reason. Once activated by this special procedure, the System Settings tool always starts in System Mode.
To access System Mode: l
Execute a tap sequence on the touch screen during the power-up phase. A tap sequence is a high frequency sequence of touch activations executed immediately after the device has been powered.
l
From the
page, restart the panel in Configuration OS 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 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 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
\\Flash\\Documents and Settings\\default\\user.hv
314
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
35 System Settings tool
Element Description
\\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
\Flash\QtHmi\RTS\VISU\*.*
l
\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(see
"List of upgradable components" on page 328
for details)
Checks and upgrades the current version of the main operating system (see
"List of upgradable components" on page 328
for details)
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 PB610 Panel
Builder 600 programming software.
See
"Update of system components from the application" on page 329
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
315
System Mode
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
System Setting tool password protection
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.
Restrict access to the System Settings tool with a password, so that critical functions can only be accessed by authorized personnel.
To activate password protection:
1. Choose BSP Settings: the BSP Info/Settings dialog is displayed.
2. In the Password tab select the Password Protected option and enter password.
The password must be at least 5 characters long.
From this dialog you can also change current password.
Important: Store password in a safe place since you cannot be reset this password. You will have to return the device to factory for password reset.
316
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
36 Web access
PB4Web 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 PB4Web, users can create a web project to display at a remote location the same graphical display shown on the HMI device. PB4Web 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 PB4Web pages on the HMI device.
Supported platforms and browsers
Generating page for Web access
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
317
Supported platforms and browsers
Supported platforms and browsers
PB4Web 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
PB4Web works with all modern web browsers. The following browsers have been tested for compatibility with PB4Web: l
Mozilla Firefox 3.6+ l l
Microsoft Internet Explorer 9+
Apple Safari 7.1+ l
Google Chrome 6+
Working with tablets or phones
PB4Web works with most tablet and phone devices. The following tablets have been tested for compatibility with
PB4Web: 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.
318
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
36 Web access
Any widgets and features can be used in PB610 Panel Builder 600; however, not all features are currently available in
PB4Web. If the project includes a feature that is not available, PB4Web will still work correctly but the feature will not be available on the remote client device.
See
"Web supported features" on page 323
for a list of the features supported in PB4Web 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
319
Platform specific Home pages
Platform specific Home pages
The Home Page of the PB4Web 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 PB4Web project from a phone.
Testing the Web project
You can test your PB4Web project using the online simulator opening a standalone web page directly from a browser.
Testing with the online simulator
PB610 Panel Builder 600 includes an web server in the online simulator. You can start the simulator and access your
PB4Web 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 318 ).
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 318
for a list of browser compatible with
PB4Web).
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 PB4Web.
5. Test your project in the browser.
Important: If you make any changes to the project pages in PB610 Panel Builder 600 you must stop and restart the simulator.
320
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
36 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 PB4Web pages, you can download the project to the desired HMI device.
The PB4Web project is downloaded together with the PB610 Panel Builder 600 project, see
"Download to HMI device" on page 62
for details.
After the download process is completed, the HMI project automatically starts on the HMI device and the PB4Web project is ready to be used.
Running PB4Web from a browser
1. Open a web browser and enter the IP adress of your HMI device: the login page is displayed.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
321
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 195
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 PB4Web 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 PB4Web 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
PB4Web as in this example.
322
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
36 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 PB4Web 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
PB4Web 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 PB4Web Project
The PB4Web 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 PB4Web 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 PB4Web cannot perform any server-bound communication.
Web supported features
Currently not all PB610 Panel Builder 600 features are supported in PB4Web. Here a list of features supported and limitations, classified by category.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
323
Web supported features
Category
Widgets
Alarms
Actions
XForms
Keypads
Dialog Page
Supported features
l
Basic (Text/Numeric, Images, Shapes,
Controls, Alarms, Texture) l l
Buttons
Meters l
Switches l
Lights l l
Media (IP Camera)
Icons l
Factory Automation l l l
Page (HomePage, LoadPage, NextPage,
PrevPage, LastVisitedPage, ShowDialog,
CloseDialog, LaunchBrowser)
Tag (WriteTag, StepTag, SetBit, ResetBit,
ToggleBit) l
Alarm (ResetAlarm, AckAlarm,
SelectAllAlarms, EnableAlarms) l
Scaling l l
Offset
ColorPalette l
BitIndex l
Only numeric keypads widgets are supported.
l
Alarms limits in PB4Web is the same of HMI device (500..2000 based on target)
Supported, you can show them and close them based on the ShowDialog and CloseDialog actions.
Limitations
l
AttachToTag of system variables is not supported l
Font files without web download permissions flag enabled are not loaded from the PB4Web l
Widget properties with Attach to… dynamic behavior may not work for all properties supported by PB610 Panel
Builder 600.
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 not supported l
Page actions are not supported in alarm trigger condition l
Some parameters do not support the
ColorPalette functionality.
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
Dialog pages do not support runtime positioning and are not movable.
324
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
36 Web access
Category
User
Management
Supported features
l
The login mechanism verifies user credentials on the server. The user name and password are based on the user credentials defined in User
Management.
Limitations
l
Individual security settings applied to widgets or pages are not supported.
Concurrent
User
Connections l
The web server in the HMI device supports three concurrent connections at a time.
l
If more than 3 connections are attempted from remote browsers, only the first 3 connections will be permitted.
Working with keypads in PB4Web
The user can click on the Numeric widget and a text box will be displayed in which the new value can be inserted.
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
PB4Web requires JavaScript to provide interactivity with the server and the user. PB4Web 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 PB4Web pages.
Browser cache
PB4Web 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 PB4Web 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 PB4Web pages.
Caching is normally enabled by default, for optimal PB4Web performance make sure it has not been disabled.
Note: PB4Web pages will still work properly with disabled browser caching, however resource loading time will be slower compared with normal cached operations.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
325
Troubleshooting and FAQ
Using a proxy
Some users may be accessing the PB4Web 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
326
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
37 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 uploaded using USB flash drives and following an upload procedure (see
"Update system components via USB" on page 331
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.
Display information on connected devices
Update of system components from the application
Update system components via USB
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
327
Display information on connected devices
Display information on connected devices
The lower part of the Manage Target dialog displays information on the connected HMI devices.
Tab
Status Details
Settings
Content
Status of executed commands
Password and communication port settings. Test: verifies HMI device connection parameters
Restart: resets the HMI device.
Device Information
Shows HMI device internal information
Note
Shows information on the selected component
List of upgradable components
The HMI devices support the upgrade of the following components:
Component Description
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.
Main FPGA FPGA firmware (for example: h146xaf02r06.bin)
Safe FPGA Backup copy of the Main FPGA that ensures unit booting in case of main FPGA corruption
(for example: h146xaf02r06.bin)
Important: Use the same file for updating Main and Safe FPGA components.
Bootloader
Main OS
Loader to handle device startup (for example: redboot_UN20HS010025.bin)
Main Operating System (for example: mainos_UN20HS0160M0237.bin)
Configuration
OS
Backup operating system that ensures units recovery in case of main operating system corruption (for example: configos_UN20HS0160C0237.bin)
328
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
37 Updating system components in HMI devices
Update of system components from the application
You can download system components to the HMI device using the Ethernet communication interface.
Path: Run> Manage Target
1. In the Manage Target dialog, click the Board tab.
2. Select the IP of the HMI device from the Target list. If the desired IP is not listed, type it directly into the box.
Note: 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.
When the device has been recognized the HMI device details are displayed as in the example.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
329
Update of system components from the application
3. Click Folder and select the local folder containing the system files that can be used for the update.
4. Click the download icon next to each component to download it. Click Download to download several selected components at once: download progress is displayed in the Status Display tab.
Note: You need to restart the HMI device to finalize the update.
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:
Format
Size
Bitmap width
Bitmap, RGB 565 format
< 500 KB
Even number (for example 430x239)
To upload the splash screen image:
330
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
37 Updating system components in HMI devices
1. Rename the new image splash.bmp and copy it in the source folder.
2. Click Download.
Note: To ensure the best visual results, splash screen images must have a black background.
Update system components via USB
System components can be updated using a USB flash drives. For each component a specific update file is provided.
Important: A checksum .md5 file must be saved in the same location as the system file to be upgraded.
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
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.
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.
Note: Upgrading procedures depend on hardware and operating system versions. Contact technical support for assistance.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
331
Update system components via USB
332
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
38 Protecting access to HMI devices
The following operations are password protected on the HMI device: l
HMI Runtime management: install HMI Runtime and update 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
A default password is used HMI Runtime and PB610 Panel Builder 600 to access the HMI device.
If you change your password on the HMI device you will need to change it also PB610 Panel Builder 600 side.
Changing password on HMI device
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
333
Changing password
Changing password
To change the password in PB610 Panel Builder 600:
1. On the Run menu, select Manage Target> Board> Connection settings.
2. Enter password to allow PB610 Panel Builder 600 to access HMI Runtime. Default port = 2100.
Leave Old password empty if no password is set on the HMI device side.
Changing password on HMI device
To change the password on the HMI device, use one of the following methods: l
In the System Settings Tool (System mode): BSP Settings> Remote tab (see
for details).
This feature is available from BSP versions V1.64 ARM UN30/31 and V2.73 MIPS UN20 based on WCE OS.
l
From the HMI Runtime context menu: Settings> Password tab.
Here you enter the same password set in the HMI device: the new password is stored into the device registry.
334
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
38 Protecting access to HMI devices l
Use the Set Target Password function in update package: the password is updated by HMI Runtime just after the update process is completed.
Note: A format of HMI device reset password device side.
For Win32 HMI Runtime, password is saved into Users\[username]
\AppData\Roaming\ABB\buildNumber\server\config\RemoteUpdateConfig.xml.
Ports and firewalls
Here a list of all the ports used by PB610 Panel Builder 600 components.
Port
80/tcp
21/tcp
2100/tcp
16384-
17407/tcp
990/udp
991/udp
998/udp
999/udp
5900/tcp
5100/tcp
1200/tcp
11740-
11743/tcp
1217, 1740-
1743/udp
Usage
HTTP port
FTP cmd port
Board port
FTP data port (passive mode)
UDP broadcast (Device discovery)
UDP broadcast (Device discovery)
UDP broadcast (Device discovery)
UDP broadcast
(Device discovery)
VNC Server
JS Remote Debugger
CODESYS 2.3
CODESYS 3
-
-
-
Remote
Access
Yes
-
-
-
-
VNC only
-
-
-
Board
Management
-
-
Yes
Yes
Optional
Optional
Optional
Optional
-
-
-
-
Runtime/Project
Management
Yes
Yes
-
Yes
Optional
Optional
Optional
Optional
-
Optional
-
-
Remote access
Remote access is required to connect to HMI Runtime using:
-
-
Yes
Yes
-
-
-
-
-
-
CODESYS iPLC
-
-
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
335
Ports and firewalls l
HMI Client l
ActiveX l
Web access PB4Web
Runtime and project management ports
You use these ports to connect to 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 PB610 Panel Builder 600.
336
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
39 Factory restore
If you’re having problems with the HMI device, try and restore factory default settings from System Mode.
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
for details.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
337
338
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
40 Tips and tricks to improve performance
PB610 Panel Builder 600 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
339
Static Optimization
Static Optimization
Static optimization is a technique used in PB610 Panel Builder 600 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 PB610 Panel Builder 600, 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, PB610 Panel Builder 600 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: PB610 Panel Builder 600 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.
340
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
40 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
341
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
PB610 Panel Builder 600 supports several raster formats like BMP, PNG, JPEG, TIFF and the vector format SVG. Here a list of pros and cons:
342
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
40 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 PB610 Panel Builder 600(not using optimization) and 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
343
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 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.
344
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
40 Tips and tricks to improve performance
When a project is loaded, 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 HMI Runtime starts emptying the cache
(RAM) removing pages and related images until 64 MB of memory space is made available. 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
345
FAQ on precaching
346
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
41 FAQ
Changing fill color property according to tag values
PB610 Panel Builder 600 allows to change the color property of a widget dynamically, based on tag values in two ways: l
Using ColorPalette l
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).
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
347
Changing fill color property according to tag values
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.
348
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
42 Functional specifications and compatibility
Here is an overview of the supported functions and related limitations for both programming software and HMI Runtime system. Limitations indicated here represent a safe limitation, beyond that proper operation and state-of-the-art performance of the system is not guaranteed.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
349
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 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 templates pages
Number of actions programmable per button state
Number of Trend Buffers
Number of curves per trend widget
Number of samples per trend buffer
Number of tags per trend buffer
Number of trend buffer samples for a project
Number of messages in a message field
Number of languages
Number of events per buffer
Number of event buffers
JavaScript file size per page
Size of project on disk
Number of indexed instances
Number of indexed alias
Max limit
1000
2000 x page
10000
50 (max 5 can be opened at the same time)
32
1000
1000
50
32
30
50
50
3
30
500/2000 (depending on HMI model)
5
200000
200
1200000
1024
12
2048
4
16KB
30/60MB (depending on HMI model)
100
100
350
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
42 Functional specifications and compatibility
Function
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
255
5MB
5
Max limit
30
4
32
Compatibility
Starting from the first official release of PB610 Panel Builder 600 V1.00 (00) the following compatibility policy has been adopted: l l l
PB610 Panel Builder 600 version MUST always be aligned with HMI Runtime on the device, the user is responsible for updating HMI Runtime components on the HMI device at any PB610 Panel Builder 600 update, the HMI Runtime update can be done directly from PB610 Panel Builder 600 using the Update Target command available in the Run\Manage Target dialog, l projects created in a PB610 Panel Builder 600 version no older than V1.00 (00) can be opened and handled by any newer version, l projects created with older versions of PB610 Panel Builder 600, opened with later versions and deployed to compatible HMI Runtime, are ensured to maintain the performance and functionality, l compatibility between newer versions of HMI Runtime and projects created and deployed with older versions of
PB610 Panel Builder 600 is not ensured.
Important: Do not edit projects with a version of PB610 Panel Builder 600 older than the one used to create them. It can result in a damage of the project and to HMI Runtime instability.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
351
Compatibility
352
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
This section describes the available protocols.
Note: Changes in controller hardware or protocols may have occurred since this documentation was created.
Always test and verify the functionality of the application. To accommodate developments in the controller hardware and protocols, drivers are continuously updated. Accordingly, always ensure that the latest driver is used in the application.
Different physical media, gateways, routers and hubs can be used in the communication network. Also, other devices can independently make simultaneous use of the network. However, it is important to ensure that the traffic generated by these devices does not degrade the communication speed (round-trip time) to an unacceptable level.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
353
ABB CODESYS Ethernet
ABB CODESYS Ethernet
The ABB CODESYS Ethernet communication driver for Ethernet has been specifically designed to support communication with ABB controllers series AC500 designed for standardized IEC 61131-3 programming, based on the CODESYS V2.3
system.
Note: CODESYS Ethernet Driver is supported with AC500 FW 2.1 or newer and not with AC500 FW 1.xx
Note: To accommodate developments in the controller protocol and hardware, drivers are continuously updated.
Make sure the latest driver is used in the application.
Note: Changes in the controller protocol or hardware may have occurred since this documentation was created.
This may interfere with the functionality of this driver. Therefore, always test and verify the functionality of the application.
Limitations
CODESYS Level 4 is not supported. Maximum block size is 1024.
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.
Add a driver in the Protocol editor and select ABB CODESYS ETH from the list of available protocols.
The following protocols type are supported: l
Tcp/Ip Level 2 Route l l
ABB Tcp/Ip Level 2 Route AC
Tcp/Ip
Select protocol type from the Protocol type combo box in the ABB CODESYS ETH dialog.
354
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Some of the parameters of the dialog are common to the different protocol types, others are specific.
The parameters common to the different protocol types are:
Element
Alias
IP address
Port
BlockSize
Timeout
PLC Model
Description
Name identifying nodes in network configurations. The name will be added as a prefix to each tag name imported for each network node.
Ethernet IP address of the controller
Port number used for the communication. Default value is 1200 for ABB drivers. For AC500 and 3S drivers select port 1201.
The max block size supported by your controller
Time delay in milliseconds between two retries in case of missing response from the server device.
Byte order that will be used by the communication driver when sending communication frames to the PLC; Intel is also commonly referred as “little-endian”, Motorola as “bigendian”
Select “Motorola” for AC500.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
355
ABB CODESYS Ethernet
Element Description
Protocol type
Three different protocol types are available: l
Tcp/Ip
l
Tcp/IP Level2 Route
l
ABB Tcp/Ip Level2 AC
PLC Network
The protocol allows the connection to multiple controllers. To set-up multiple connections, check “PLC network” checkbox and enter theIP Address per each slave you need to access.
Protocol types
The Tcp/Ip protocol type corresponds to the 3S Level 4 driver and does not require additional setup besides the common parameters.
356
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
The Tcp/IP Level2 Route protocol type corresponds to the standard 3S Level 2 Route driver and requires two additional parameters:
Parameter
Source
Address
(SrcAdr),
Destination
Address
Description
Destination is the node of the PLC and allows the protocol to read variables in a subnetwork. The address is used to read variables when multiple PLCs are connected in a sub-network (serial network) but only one of it has the Ethernet interface.
This is currently not applicable for AC500 PLCs.
The ABB Tcp/Ip Level2 AC protocol type implements a specific variation of the standard Level 2 protocol with the additional use of a routing driver. This protocol type is normally used to connect to PLCs via other PLCs acting as gateways.
This protocol type requires the following additional parameters: l l
Routing Levels
Coupler (Level 1) l
Channel (Level 1) l
Address (Level 1) l l
Coupler (Level 2)
Channel (Level 2) l
Address (Level 2)
For detailed information see AC500 and Control Builder documentation, chapter Programming interfaces to the AC500
used by the Control Builder.
Adding an alias name to a protocol
Tag names must be unique at project level, however, the same tag names might need to be used for different controller nodes (for example when the HMI device is connected to two devices running the same application).
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
357
ABB CODESYS Ethernet
When creating a protocol you can add an alias name that will be added to tag names imported for this protocol.
In the example, the connection to a certain controller is assigned the name Node1. When tags are imported for this node, all tag names will have the prefix Node1 making each of them unique at the network/project level.
Note: Aliasing tag names is only available for imported tags. Tags which are added manually in the Tag Editor do not need to have the Alias prefix in the tag name.
The Alias string is attached on the import. If you modify the Alias string after the tag import has been completed, there will be no effect on the names already present in the dictionary. When the Alias string is changed and tags are re-imported, all tags will be re-imported with the new prefix string.
CODESYS Software Settings
When you create the project in CODESYS V2, select Download symbol file (Target Settings > General).
358
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Note: ABB CODESYS Ethernet driver supports the automatic symbol file (SDB) upload from the controller; any change in the tag offset due to new compilation on PLC software side does not require a symbol file re-import.
The Tag file has to be re-imported only in case of tag renaming or addition of new tags.
Standard Data Types
The import module supports variables of standard data types and user defined data types.
The following are considered as standard data types:
Supported data types
l
BOOL l
WORD l
DWORD l l
INT
UINT l
UDINT l
DINT l l
STRING*
REAL l
TIME l
DATE & TIME and 1-dimensional ARRAY of the types above. See "Programming concepts" section in the main manual.
Note *: String length for a STRING variable in PLC should be max 80 characters. Declare a
STRING variable either with a specified size (str: STRING(35) or default size (str: STRING) which is 80 characters.
Tag Conversion
Conversion to be applied to the tag.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
359
Depending on data type selected, the Allowed list shows one or more conversions, listed below.
Value
Inv bits
Description
Invert all the bits of the tag.
Example:
1001 → 0110 (in binary format)
9 → 6 (in decimal format)
Negate
AB -> BA
ABCD -> CDAB
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)
ABCDEFGH -> GHEFCDAB
Swap bytes of a double word.
Example:
32FCFF54 → 54FFFC32 (in hexadecimal format)
855441236 → 1426062386 (in decimal format)
ABB CODESYS Ethernet
360
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Value
ABC...NOP -> OPM...DAB
BCD
Description
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.
Node Override IP
The protocol provides the special data type Node Override IP which allows you to change the IP address of the target controller at runtime.
This memory type is an array of 4 unsigned bytes, one per each byte of the IP address.
The Node Override IP is initialized with the value of the controller IP specified in the project at programming time.
Node Override IP Modbus operation
0.0.0.0
Communication with the controller is stopped, no request frames are generated anymore.
Different from
0.0.0.0
It is interpreted as node IP override and the target IP address is replaced runtime with the new value.
If the HMI device is connected to a network with more than one controller node, each node has its own Node Override IP variable.
Note: Node Override IP values assigned at runtime are retained through power cycles.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
361
ABB CODESYS Ethernet
Exporting tags from the controller
When configuring PLC using the manufacturer’s configuration software, enable Symbol file (file with .sym extension) creation under the CODESYS programming software:
1. In the Project menu, click Options.
2. Select Symbol configuration.
3. Select Dump symbol entries.
4. Click Configure symbol file: the Set object attributes dialog is displayed.
5. Select Export variables of object.
6. Click OK.
362
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Importing tags
You may import tags from a .sym file exported from a controller. See "My first project" section in the main manual.
Communication status
The current communication status can be displayed using system variables.
See "System Variables" section in the main manual.
Codes supported for this communication driver:
Error
Symbols file not present
“tag” not present in Symbols files
Time out on Acknowledge
Time out on last Acknowledge
Time out on data receiving
Connection timeout
Cause and action
Check Symbol file and download again the PLC program
Check if the Tag is present into the PLC project
Controller didn’t send acknowledge
Controller didn’t send last acknowledge
Controller didn’t reply with data
Device not connected
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
363
ABB CODESYS Serial
ABB CODESYS Serial
The ABB CODESYS Serial communication driver has been specifically designed to support communication with Series
500 ABB controllers designed for IEC 61131-3 programming, based on the CODESYS V2.3 system.
Limitations
This protocol does not support AC500 firmware version earlier than V2.0.
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.
Element
Alias
Description
Name identifying nodes in network configurations. The name will be added as a prefix to each tag name imported for each network node.
BlockSize
The max block size supported by your controller (limit is 1024 kB).
Timeout
(ms)
Time delay in milliseconds between two retries in case of missing response from the server device.
Num of repeats
Number of times a certain message will be sent to the controller before reporting the communication error status.
364
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element
Protocol type
PLC
Models
Description
Two different protocol types available: l
Serial_RS232: corresponds to the standard 3S driver.
l
ABB_RS232_AC: implements a specific variation of the standard Level 2 protocol with the additional use of a routing driver. Normally used to connect to PLCs via other PLCs acting as gateways.
The ABB_RS232_AC protocol type requires the proper settings of the following additional parameters: l
Routing Levels l
Coupler (Level 1) l
Channel (Level 1) l l
Address (Level 1)
Coupler (Level 2) l
Channel (Level 2) l
Address (Level 2)
For detailed information see AC500 and Control Builder documentation, chapter
Programming interfaces to the AC500 used by the Control Builder.
The list allows selecting the PLC model you are going to connect to. The selection will influence the data range offset per each data type according to the specific PLC memory resources.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
365
ABB CODESYS Serial
Element
PLC
Network
Description
The protocol allows the connection to multiple controllers. To set-up multiple connections, check “PLC network” checkbox and enter the node ID per each slave you need to access.
Comm...
If clicked displays the communication parameters setup dialog.
366
Element
Port
Parity, Baudrate, Stop bits
Mode
Description
Serial port selection.
l
COM1: device PLC port.
l
COM2: computer/printer port.
Serial line parameters.
Parity must be set to none for AC500.
Serial port mode. Available modes:
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element Description
Element Description
l
RS-232
l
RS-485 (2 wires) l
RS-422 (4 wires)
Adding an alias name to a protocol
Tag names must be unique at project level, however, the same tag names might need to be used for different controller nodes (for example when the HMI device is connected to two devices running the same application).
When creating a protocol you can add an alias name that will be added to tag names imported for this protocol.
In the example, the connection to a certain controller is assigned the name Node1. When tags are imported for this node, all tag names will have the prefix Node1 making each of them unique at the network/project level.
Note: Aliasing tag names is only available for imported tags. Tags which are added manually in the Tag Editor do not need to have the Alias prefix in the tag name.
The Alias string is attached on the import. If you modify the Alias string after the tag import has been completed, there will be no effect on the names already present in the dictionary. When the Alias string is changed and tags are re-imported, all tags will be re-imported with the new prefix string.
CODESYS software settings
When you create the project in CODESYS V2, select Download symbol file (Target Settings > General).
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
367
ABB CODESYS Serial
Note: ABB CODESYS Serial driver supports the automatic symbol file (SDB) upload from the controller; any change in the tag offset due to new compilation on PLC software side does not require a symbol file re-import.
The Tag file has to be re-imported only in case of tag renaming or addition of new tags.
Exporting tags from the controller
When configuring PLC using the manufacturer’s configuration software, enable Symbol file (file with .sym extension) creation under the CODESYS programming software:
1. In the Project menu, click Options.
2. Select Symbol configuration.
3. Select Dump symbol entries.
4. Click Configure symbol file: the Set object attributes dialog is displayed.
5. Select Export variables of object.
6. Click OK.
368
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Importing tags
You may import tags from a .sym file exported from a controller. See "My first project" section in the main manual.
Data types
The import module supports variables of standard data types and user defined data types.
Supported data types
Unsupported data types
l
BOOL l
WORD l
DWORD l l
INT
UINT l
UDINT l
DINT l l
STRING*
REAL l
TIME l
DATE & TIME and 1-dimensional ARRAY of the types above. See "Programming concepts" section in the main manual.
Note *: String length for a STRING variable in PLC should be max 80 characters. Declare a
STRING variable either with a specified size (str: STRING(35) or default size (str: STRING) which is 80 characters.
l l
LWORD
LINT l
LREAL
Communication status
Current communication status can be displayed using system variables. See "System Variables" section in the main manual.
Codes supported for this communication driver:
Error
Symbols file not present
“tag” not present in Symbols files
Time out on Acknowledge
Time out on last Acknowledge
Time out on data receiving
Connection timeout
Cause and action
Check Symbol file and download again the PLC program
Check if the Tag is present into the PLC project
Controller didn’t send acknowledge
Controller didn’t send last acknowledge
Controller didn’t reply with data
Device not connected
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
369
ABB IRC5
ABB IRC5
The ABB IRC5 robot controller communication driver has been designed for communication to the ABB Robotics robot controller family IRC5. This version supports communication towards the IRC5 robot controller I/O system (input and output signals).
The communication driver cannot meet any hard real-time demands for a number of reasons: l
It executes on a non-real-time operating system.
l l
Communication is performed with TCP/IP over a network.
The actual controller might have more high-priority tasks to perform.
A minimal response time in the order of 10-100ms can be expected.
Implementation details
An IRC5 robot controller system uses input and output signals to control the process. Signals can be digital, analog, or group signal. Such signals are accessible using the PanelBuilder tool.
Signal changes in the robot system are often significant. There are many scenarios where end-users need notification of these changes.
In the IRC5 controller manual mode, a signal value can be modified only if the signal Access Level is ALL and the
FlexPendant isn't connected. If not, the controller has to be in auto mode. Use the IRC5 robot controller tools RobotStudio or FlexPendant to change the access level of a signal.
A PanelBuilder application acts as remote client in comparison with FlexPendant which is a local client.
Remote clients do not have all the privileges of a local client, especially in manual mode. For example, in manual mode the
FlexPendant can start and stop IRC5 robot controller programs by using system inputs. This is only available for a remote client in automatic mode.
A remote client has the possibility to monitor and access several robot controllers from another location.
Safety of personnel
WARNING: A robot is heavy and extremely powerful regardless of its speed. A pause or long stop in movement can be followed by a fast hazardous movement. Even if a pattern of movement is predicted, a change in operation can be triggered by an external signal resulting in an unexpected movement.
All safety regulations must be followed when entering safeguarded space. Make sure you are familiar with the safety regulations as described in the IRC5 operating manuals.
ABB IRC5 driver
The IRC5 driver is supported starting from version PB610 V1.90.0.778.
HMI devices can be connected to ABB robot networks as clients using this communication driver.
The ABB IRC5 driver provides easy handling of the connections to the ABB robot controllers providing specific support for tag import facilities.
The minimum requirement is the operating system version (BSP version) on the HMI device. Refer to the software user manual to know the BSP version of your HMI device.
370
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Products
CP650, CP660, CP675
CP620, CP630, CP635
CP651, CP661, CP665, CP676
Change index
B2 or newer
B2 or newer
A0
Date of production
WK10 2013 (1103) or later
WK10 2013 (1103) or later
BSP version
V2.80 or newer
V1.76 or newer
V1.76 or newer
Note: You must set the IP submask of the HMI device to 255.255.255.0. Otherwise the communication to the
IRC5 controller does not work.
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.
Element Description
Alias
Name to be used to identify nodes in network configurations. The name will be added as a prefix to each tag name imported for each network node
IP address
Ethernet IP address of the controller.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
371
Element Description
PLC
Models
Only one model type is currently available.
PLC
Network
IP address for all controllers in multiple connections. PLC Network must be selected to enable multiple connections.
ABB IRC5
Adding an alias name to a protocol
Tag names must be unique at project level, however, the same tag names might need to be used for different controller nodes (for example when the HMI device is connected to two devices running the same application).
When creating a protocol you can add an alias name that will be added to tag names imported for this protocol.
In the example, the connection to a certain controller is assigned the name Node1. When tags are imported for this node, all tag names will have the prefix Node1 making each of them unique at the network/project level.
372
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Note: Aliasing tag names is only available for imported tags. Tags which are added manually in the Tag Editor do not need to have the Alias prefix in the tag name.
The Alias string is attached on the import. If you modify the Alias string after the tag import has been completed, there will be no effect on the names already present in the dictionary. When the Alias string is changed and tags are re-imported, all tags will be re-imported with the new prefix string.
Exporting tags from the controller
ABB Robotics controllers programming tool can generate a .cfg symbol file.
The import module supports variables of the following standard data types.
l boolean l unsignedInt l float
Note: Only I/O signals can be used and only output signals of the robot controller can be modified by the CP600 device. They can only be modified as long as the IRC5 controller is in automatic mode or the FlexPendant is not connected and the signal access level is ALL. Input signals can only be monitored.
Importing tags
You may import tags from a .cfg file exported from a controller. See "My first project" section in the main manual.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
373
ABB IRC5
Communication status
Current communication status can be displayed using system variables. See "System Variables" section in the main manual.
Codes supported by this communication driver:
Error Cause
Can't find the node x.x.x.x "
A request is not replied within the specified timeout period.
I/O signal reading error
I/O signal quality not good
The device did received a response with invalid format or contents from the controller.
The device did receive a response from the controller with poor signal quality.
Error requesting mastership
The device has no permissions to write data into the controller.
Action
Check if the controller is connected and properly configured to get network access.
Check if the data programmed in the project are consistent with the controller resources.
-
-
374
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
ABB Mint Controller HCP
This communication protocol allows the HMI devices to connect to the ABB motion and servo drive devices using the HCP and HCP2 communication protocols.
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.
Element Description
Node ID
Node ID assigned to the controller device.
Protocol
Type
Two protocols are available: l
HCP
l
HCP2
Timeout
(ms)
Time delay in milliseconds between two retries in case of missing response from the server device.
Retry count
PLC
Models
Number of times a certain message will be sent to the controller before reporting the communication error status.
PLC model you are going to connect to.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
375
ABB Mint Controller HCP
Element Description
PLC
Network
The protocol allows the connection of multiple controllers to one HMI device. To set-up multiple connections, check “PLC network” checkbox and enter the node ID per each slave you need to access.
Comm...
If clicked displays the communication parameters setup dialog.
376
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element Description
Element
Port
Baudrate, Parity, Data Bits, Stop bits
Mode
Description
Serial port selection.
l
COM1= device PLC port.
l
COM2= computer/printer port.
Serial line parameters.
Serial port mode. Available modes: l
RS-232.
l
RS-485 (2 wires).
l
RS-422 (4 wires).
Data types
The ABB Mint Controller HCP driver provides the support for two Memory Types which are referring to the same physical memory area in the Mint controller: l l
Comms: should only be used with floating point values. The Mint program on the ABB controller should use
COMMS to access this data.
CommsInteger: allows a variety of integer-based data types to be selected.
If the Mint controller program uses...
COMMS keyword for a tag setup to use the
Commsinteger memory type
COMMSINTEGER keyword for a tag setup to use the
Commsinteger memory type
then...
only the bottom 23 bits will be accurate (due to floating point precision of the COMMS keyword).
the value is precise for the full 32 bits.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
377
ABB Mint Controller HCP
See "Programming concepts" section in the main manual.
Tag Conversion
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
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:
378
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Value
AB -> BA
Description
25.36 → -25.36
Swap nibbles of a byte.
Example:
15D4 → 514D (in hexadecimal format)
5588 → 20813 (in decimal format)
ABCD -> CDAB
ABCDEFGH -> GHEFCDAB
Swap bytes of a double word.
Example:
32FCFF54 → 54FFFC32 (in hexadecimal format)
855441236 → 1426062386 (in decimal format)
ABC...NOP -> OPM...DAB
Swap bytes of a long word.
Example:
142.366 → -893553517.588905 (in decimal format)
0 10000000110 0001110010111011011001000101101000011100101011000001
→
1 10000011100 1010101000010100010110110110110010110110000100111101
(in binary format)
BCD
Swap bytes of a word.
Example:
9ACC → CC9A (in hexadecimal format)
39628 → 52378 (in decimal 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.
Tag Import
Select the driver in Tag Editor and click on the Import Tags button to start the importer.
Locate the .xml file exported from Tag Editor and click Open.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
379
ABB Mint Controller HCP
Tags included in the symbol file are listed in the tag dictionary. The tag dictionary is displayed at the bottom of the screen.
380
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
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.
Check this box to import all sub-elements of a tag.
Example of both checked and unchecked result:
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
381
Toolbar item Description
ABB Mint Controller HCP
Searches tags in the dictionary basing on filter combo-box item selected.
Communication status
Current communication status can be displayed using system variables. See "System Variables" section in the main manual.
Codes supported by this communication driver:
Error
NAK
Cause
The controller replies with a not acknowledge.
Action
-
Timeout
A request is not replied within the specified timeout period.
Check if the controller is connected and properly configured to get network access.
Line
Error
An error on the communication parameter setup is detected (parity, baud rate, data bits, stop bits).
Check if the communication parameter settings of the controller is compatible with the device communication setup.
382
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Error Cause
Invalid response
The device did received a response with invalid format or contents from the controller.
General
Error
Unidentifiable error. Should never be reported.
Action
Ensure the data programmed in the project are consistent with the controller resources.
Contact technical support.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
383
ABB Modbus RTU
ABB Modbus RTU
The HMI devices can be connected to a Modbus network as the network master using this driver.
This specific implementation of the Modbus RTU driver provides easy handling of the connections to ABB controllers providing specific support for PLC models and tag import facilities.
Implementation details
The ABB Modbus RTU implementation supports only a subset of the Modbus standard RTU function codes.
03
04
05
06
16
Code Function
01
Read Coil Status
02
Read Input Status
Read Holding Registers
Read Input Registers
Force Single Coil
Preset Single Register
Preset Multiple Registers
Description
Reads multiple bits in the device Coil area
Read the ON/OFF status of the discrete inputs (1x reference) in the slave
Read multiple Registers
Reads the binary contents of input registers (3x reference) in the slave
Forces a single Coil to either ON or OFF
Presets a value in a Register
Presets value in multiple Registers
Note: Communication speed with controllers is supported up to 115200 baud.
Note: Floating point data format is IEEE standard compliant.
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.
384
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element
Alias
Description
Name identifying nodes in network configurations. The name will be added as a prefix to each tag name imported for each network node.
Modbus node of the slave device.
Node ID
Timeout (ms)
Time delay in milliseconds between two retries in case of missing response from the server device.
delay
Time delay in milliseconds between the end of the last received frame and the starting of a new request. If set to 0, the new request will be issued as soon as the internal system is able to reschedule it.
Num of repeats
Number of times a certain message will be sent to the controller before reporting the communication error status.
Transmission
Mode
l
RTU: use RTU mode l
ASCII: use ASCII mode
Note: When PLC network is active, all nodes will be configured with the same
Transmission Mode.
PLC Models
PLC model you are going to connect to. The selection influences the data range offset per each data type according to the specific PLC memory resources.
Comm...
If clicked displays the communication parameters setup dialog.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
385
ABB Modbus RTU
Element Description
Element
Port
Baudrate, Parity, Data Bits, Stop bits
Mode
Parameter
Serial port selection.
l
COM1: device PLC port.
l
COM2: computer/printer port.
Serial line parameters.
Serial port mode. Available modes: l
RS-232.
l l
RS-485 (2 wires).
RS-422 (4 wires).
When using the controllers: l
ABB NextMove ES / ESB-2 l l
ABB e100 Motion Product
ABB e150 Motion Product make sure that Parity has been set to "None"
PLC Network
The protocol allows the connection of multiple controllers to one operator panel. PLC
Network must be selected to enable multiple connections.
386
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element Description
Note: PLC model Pluto Safety PLC is available for compatibility reasons. If you need to connect to this PLC model, please select ABB Pluto protocol.
Adding an alias name to a protocol
Tag names must be unique at project level, however, the same tag names might need to be used for different controller nodes (for example when the HMI device is connected to two devices running the same application).
When creating a protocol you can add an alias name that will be added to tag names imported for this protocol.
In the example, the connection to a certain controller is assigned the name Node1. When tags are imported for this node, all tag names will have the prefix Node1 making each of them unique at the network/project level.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
387
ABB Modbus RTU
Note: Aliasing tag names is only available for imported tags. Tags which are added manually in the Tag Editor do not need to have the Alias prefix in the tag name.
The Alias string is attached on the import. If you modify the Alias string after the tag import has been completed, there will be no effect on the names already present in the dictionary. When the Alias string is changed and tags are re-imported, all tags will be re-imported with the new prefix string.
Node Override ID (master devices)
The protocol provides the special data type Node Override ID which allows you to change the node ID of the target controller at runtime. This memory type is an unsigned byte.
The node Override ID is initialized with the value of the node ID specified in the project at programming time.
Node
Override ID
0
Modbus operation
1 to 254
255
Communication with the controller is stopped. In case of write operation, the request will be transmitted without waiting for a reply.
It is interpreted as the value of the new node ID and is replaced for runtime operation.
Communication with the controller is stopped; no request messages are generated.
Note: Node Override ID value assigned at runtime is retained through power cycles.
388
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Exporting tags from a controller
The ABB controllers programming supports tag export in .exp format.
To export tags:
Select Project> Export...: an .exp file will be created.
Importing tags
You may import tags from an .exp file exported from a controller. See "My first project" section in the main manual.
Communication status
Current communication status can be displayed using System Variables. See "System Variables" section in the main manual.
Codes supported for this communication driver:
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
389
ABB Modbus RTU
Error Cause
NAK
The controller replies with a not acknowledge.
Timeout
A request is not replied within the specified timeout period.
Line
Error
An error on the communication parameter setup is detected (parity, baud rate, data bits, stop bits).
Invalid response
The device did received a response with invalid format or contents from the controller .
General
Error
Unidentifiable error. Should never be reported.
Action
-
Check if the controller is connected and properly configured to get network access.
Check if the communication parameter settings of the controller is compatible with the device communication setup.
Ensure the data programmed in the project are consistent with the controller resources.
Contact technical support.
390
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
ABB Modbus TCP
ABB Modbus TCP driver provides easy handling of the connection to the ABB controllers providing specific supports for
PLC models and tag import facilities.
Various Modbus TCP-capable devices can be connected to the HMI device. To set-up your Modbus TCP device, please refer to the documentation you have received with the device.
The implementation of the protocol operates as a Modbus TCP client.
Implementation details
The ABB Modbus TCP supports only a subset of the standard Modbus TCP function codes.
04
05
06
16
Code Function
01
02
03
Read Coil Status
Read Input Status
Read Holding Registers
Read Input Registers
Force Single Coil
Preset Single Register*
Preset Multiple Registers*
Description
Reads multiple bits in the device Coil area
Read the ON/OFF status of the discrete inputs (1x reference) in the slave
Read multiple Registers
Reads the binary contents of input registers (3x reference) in the slave
Forces a single Coil to either ON or OFF
Presets a value in a Register
Presets value in multiple Registers
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
391
ABB Modbus TCP
Element Description
Alias
Name identifying nodes in network configurations. The name will be added as a prefix to each tag name imported for each network node.
IP
Address
Ethernet IP address of the controller.
Port
Port number used by the Modbus TCP driver. The default value can be changed when the communication goes through routers or Internet gateways where the default port number is already in use.
Timeout
Time delay in milliseconds between two retries in case of missing response from the server device.
UnitID
Usually used when communicating over Ethernet-to-serial gateways and then interpreted as the
Slave ID. This value is simply copied into the Unit Identifier field of the Modbus TCP communication frame. This is rarely used and in most cases can be left zero.
392
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element Description
PLC
Models
PLC model you are going to connect to. The selection influences the data range offset per each data type according to the specific PLC memory resources.
PLC
Network
IP address for all controllers in multiple connections. PLC Network check box must be selected to enable multiple connections.
Adding an alias name to a protocol
Tag names must be unique at project level, however, the same tag names might need to be used for different controller nodes (for example when the HMI device is connected to two devices running the same application).
When creating a protocol you can add an alias name that will be added to tag names imported for this protocol.
In the example, the connection to a certain controller is assigned the name Node1. When tags are imported for this node, all tag names will have the prefix Node1 making each of them unique at the network/project level.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
393
ABB Modbus TCP
Note: Aliasing tag names is only available for imported tags. Tags which are added manually in the Tag Editor do not need to have the Alias prefix in the tag name.
The Alias string is attached on the import. If you modify the Alias string after the tag import has been completed, there will be no effect on the names already present in the dictionary. When the Alias string is changed and tags are re-imported, all tags will be re-imported with the new prefix string.
Node Override ID (master devices)
The protocol provides the special data type Node Override ID which allows you to change the node ID of the target controller at runtime. This memory type is an unsigned byte.
The node Override ID is initialized with the value of the node ID specified in the project at programming time.
Node
Override ID
0
Modbus operation
1 to 254
255
Communication with the controller is stopped. In case of write operation, the request will be transmitted without waiting for a reply.
It is interpreted as the value of the new node ID and is replaced for runtime operation.
Communication with the controller is stopped; no request messages are generated.
Note: Node Override ID value assigned at runtime is retained through power cycles.
394
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Exporting tags from the controller
The ABB controllers programming supports tag export in .exp format.
To export tags:
Select Project> Export...: an .exp file will be created.
Importing tags
You may import tags from an .exp file exported from a controller. See "My first project" section in the main manual.
Communication status
Current communication status can be displayed using system variables. See "System Variables" section in the main manual.
Codes supported for this communication driver:
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
395
ABB Modbus TCP
Error
General
Error
Cause
NAK
The controller replies with a not acknowledge.
Timeout
A request is not replied within the specified timeout period.
Invalid response
The device did received a response with invalid format or contents from the controller.
Unidentifiable error.
Action
-
Check if the controller is connected and properly configured to get network access.
Check if the data programmed in the project are consistent with the controller resources.
Contact technical support.
396
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
ABB Pluto
The HMI devices can be connected to a Modbus network as the network master using this generic driver.
This specific implementation of the Modbus RTU driver provides easy handling of the connections to the ABB controllers providing specific support for ABB Pluto Safety PLC and tag import facilities.
Implementation details
This Modbus RTU implementation supports only a subset of the standard Modbus function codes.
03
04
05
06
16
Code Function
01
02
Read Coil Status
Read Input Status
Description
Reads multiple bits in the device Coil area
Read the ON/OFF status of the discrete inputs (1x reference) in the slave
Read Holding Registers Read multiple Registers
Read Input Registers Reads the binary contents of input registers (3x reference) in the slave
Force Single Coil Forces a single Coil to either ON or OFF
Preset Single Register
Preset Multiple
Registers
Presets a value in a Register
Presets value in multiple Registers
Note: Communication speed with controllers is supported up to 115200 baud.
Note: Floating point data format is IEEE standard compliant.
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.
The driver configuration dialog is shown in the following figure.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
397
ABB Pluto
Element
Alias
Description
Name identifying nodes in network configurations. The name will be added as a prefix to each tag name imported for each network node.
Modbus node of the slave device.
Node ID
Timeout (ms)
Time delay in milliseconds between two retries in case of missing response from the slave device.
Delay (ms)
Time delay in milliseconds between the end of the last received frame and the starting of a new request. If set to 0, the new request will be issued as soon as the internal system is able to reschedule it.
Num of repeats
Transmission
Mode
Number of times a certain message will be sent to the controller before reporting the communication error status.
When set to 1 the panel will report the communication error if the response to the first request packet is not correct.
l
RTU: use RTU mode l
ASCII: use ASCII mode
398
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element Description
PLC Models
PLC model you are going to connect to. The selection influences the data range offset per each data type according to the specific PLC memory resources.
Comm…
If clicked displays the communication parameters setup dialog.
Element
Port
Description
Serial port selection.
l
COM1: device PLC port.
l
COM2: computer/printer port (if available)
Serial line parameters.
Baudrate, Parity, Data bits, Stop bits
Mode
Serial port mode. Available modes: l
RS-232.
l l
RS-485 (2 wires).
RS-422 (4 wires).
Node Override ID (master devices)
The protocol provides the special data type Node Override ID which allows you to change the node ID of the target controller at runtime. This memory type is an unsigned byte.
The node Override ID is initialized with the value of the node ID specified in the project at programming time.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
399
ABB Pluto
Node
Override ID
0
1 to 254
255
Modbus operation
Communication with the controller is stopped. In case of write operation, the request will be transmitted without waiting for a reply.
It is interpreted as the value of the new node ID and is replaced for runtime operation.
Communication with the controller is stopped; no request messages are generated.
Note: Node Override ID value assigned at runtime is retained through power cycles.
Tag import
ABB Pluto driver supports tag import.
The ABB Pluto Safety PLC programming suite allows to export tags in .csv format.
1. In the Tag Editor select the driver.
2. Click the Import Tags button to start the import.
3. Locate the .csv file and confirm.
400
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
4. To import tags, select one or more tags in the .csv file and click the project.
Import tag button: tags are copied to the
See "My first project" section in the main manual.
Communication status
Current communication status can be displayed using System Variables. See "System Variables" section in the main manual.
Codes supported for this communication driver:
Error
NAK
Cause
The controller replies with a not acknowledge.
Timeout
A request is not replied within the specified timeout period.
Line
Error
An error on the communication parameter setup is detected (parity, baud rate, data bits, stop
Action
-
Check if the controller is connected and properly configured to get network access.
Check if the communication parameter settings of the controller is compatible with the device communication
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
401
ABB Pluto
Error Cause
General
Error
bits).
Invalid response
The device did received a response with invalid format or contents from the controller .
Unidentifiable error. Should never be reported.
Action
setup.
Ensure the data programmed in the project are consistent with the controller resources.
Contact technical support.
402
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
BACnet
The BACnet communication driver has been designed to connect HMI devices to BACnet networks and supports IP and
MS/TP communication.
The HMI device operates as a BACnet device.
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
403
BACnet
Element Description
Panel Device ID
Identifies the HMI device in the network.
Object Name
Description
Media
BACnet Object Name for the HMI device.
HMI device description, for documentation purposes.
Type of communication of the protocol.
404
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element
Timeout (ms)
Description
l
MS/TP: Master-Slave/Token-Passing communication (RS-485).
l
IP: based on standard UDP/IP communication.
Time delay in milliseconds between two retries in case of missing response from the
BACnet device.
Panel Node *
MS/TP address. Physical device address on the link; it is not passed through routers.
COV Lifetime (s)
Desired lifetime of the subscription in seconds before the it shall be automatically cancelled.. A value of zero indicates an indefinite lifetime, without automatic cancellation.
Max Master *
Highest allowable address for master nodes. Must be less than or equal to 127.
Max Info Frames
*
Maximum number of information frames the node may send before it must pass the token. Max Info Frames may have different values on different nodes and may be used to allocate more or less of the available link bandwidth to particular nodes.
Max MS/TP
APDU *
Maximum length of APDU (Application Layer Protocol Data Unit), which means the actual packet length on BACnet network. This value cannot exceed 480 (default value).
Max IP APDU **
Maximum length of APDU (Application Layer Protocol Data Unit), which means the actual packet length on BACnet network. This value cannot exceed 1476 (default value).
IP UDP Port **
Local IP **
Port number for IP communication.
IP Address of the network adapter to use for protocol. Not required if the device has only one Ethernet adapter.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
405
Element
PLC Models
Comm... *
Description
Reserved for future use.
If clicked displays the communication parameters setup dialog.
BACnet
Element Description
Port
Communication port.
Baudrate, Parity, Data bits, Stop bits
Communication parameters.
Mode
Communication mode. Available modes: l
RS-232
l
RS-485
l
RS-422
Note *: Available only if media is set to MS/TP.
Note **: Available only if media is set to IP.
Tag Editor Settings
Path: ProjectView> Config > double-click Tags
1. To add a tag, click +: a new line is added.
2. Select BACnet from the Driver list: the tag definition dialog is displayed.
406
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Elemen t
Description
Object
Type
Type of BACnet object to be referenced. Available object types: l
Device
l
Analog Input
l l
Analog Output
Analog Value
l
Binary Input
l
Binary Output
l l
Binary Value
Multi-state Input
l
Multi-state Output
l
Multi-state Value
l l
Integer Value
Positive Integer Value
l
Large Analog Value
Device
ID
Data
Type
ID of the device containing the object.
Data type for display presentation. Available data types: l
boolean
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
407
Elemen t
Description
l
int
l l
unsignedInt float
l
double
l
string
l l
binary boolean[]
These data types are data types as defined in the software.
The equivalence with BACnet data types is shown in the table:
BACnet data type
Software data type
Boolean
Notes
BOOLEAN -
INTEGER
Int
-
UNSIGNED_INTEGER
unsignedInt
-
REAL
Float
-
BIT_STRING
CHARACTER_
STRING
boolean-x string-x
x = size x = size
OCTET_STRING
DATE
TIME
binary-x int or unsignedInt int or unsignedInt
BACnetObjectIdentifier
int or unsignedInt
x = size
-
-
Use conversions instance and objType for proper display
Arraysi ze
Array size for the variable.
Conver sion
Conversion to be applied to the tag.
BACnet
408
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Elemen t
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
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
409
Elemen t
Description
Value
BCD
Description
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.
Object
Instanc e
BACnet ID of the object to be referenced.
Object
Propert y
Numeric value of the property to be referenced (example: the value 85 means present-value for most standard objects).
The table below specifies all the BACnet Object Properties.
Property
acceptedmodes ackedtransitions ackrequired action
Val ue
175
0
1
2
Property
effectiveperiod elapsedactivetime
33 error-limit 34
Val ue
32 eventenable
35
Property
max-infoframes
63 maxmaster max-presvalue maxsegment
Val ue
64
65
167
Property
Val ue
100 reason-forhalt recipient-list 102 recordssincenotification
140 record-count 141
BACnet
410
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Elemen t
Description
Property
alarmvalues all
Val ue
7
8
Property
feedbackvalue fileaccessmethod file-size
Val ue
action-text active-text
3
4 active-vtsessions
5 active-covsubscriptio ns
152 adjustvalue
176 alarm-value 6 eventstate eventtimestamps
36
130 event-type 37 eventparameter s
83 exceptionschedule
38 faultvalues
39
40
41
42
Property
saccepted memberof minimumoff-time
66 minimumon-time
67 minimumoutput
68 minimumvalue
136 minimumvaluetimestam p
150 min-presvalue
69 mode
Val ue
159
160
Property
reliability relinquishdefault required resolution scale scale-factor 188 scheduledefault segmentatio n-supported
174
107 setpoint
Val ue
103
104
105
106
187
108 all-writessuccessful
9 apdusegmenttimeout apdutimeout
10
11 file-type firmwarerevision
43
44 modelname
70 modificati on-date
71 setpointreference
109
171 applicationsoftwareversion
12 high-limit 45 notificatio n-class
17 notificatio nthreshold
137 slaveaddressbinding setting 162
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
411
BACnet
Elemen t
Description
Property
archive
Val ue
13 attemptedsamples
124
Property
inactivetext in-process 47
Val ue
46 auto-slavediscovery
169 averagevalue
125 backupfailuretimeout bias
153
14 inputreference instanceof integralconstant
181
48
49 buffer-size 126 integralconstantunits
50 last-notifyrecord
173
Property
notifytype numberof-APDUretries
73
Val ue
72 numberof-states objectidentifier
74
75 object-list 76 objectname
77 objectpropertyreference objecttype
78
79 change-ofstate-count change-ofstate-time
15
16 client-covincrement
127 lastrestoretime
157 life-safetyalarmvalues
166 limitenable
52 configurati on-files controlledvariablereference
154
19 limitmonitorin g-interval list-ofgroupmembers
182
53 operationexpected optional out-ofservice outputunits
161
80
81
82
Property
silenced start-time state-text status-flags stop-time stop-whenfull systemstatus time-delay
Val ue
163
142
110
111
143
144
112
113 time-ofactive-timereset time-ofstate-countreset
114
115 timesynchronizat ionrecipients
116 total-recordcount
145
412
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Elemen t
Description
Property
controlledvariableunits
Val ue
20 controlledvariablevalue count
21
177
Property
Val ue
list-ofobjectpropertyreferences
54 list-ofsessionkeys
55 local-date 56
Property
polarity prescale
Val ue
84
185
Property
trackingvalue units
Val ue
164
117 countbeforechange countchangetime
178
179 covincrement
22 cov-period 180 covresubscript ion-interval
128
155 databaserevision date-list 23 daylightsavingsstatus deadband
24
25 local-time location log-buffer logdeviceobjectproperty
132 log-enable 133 loginterval loggingobject loggingrecord low-limit
57
58
131
134
183
184
59 derivativeconstant
26 presentvalue priority
85
86 pulse-rate priorityarray
186
87 priorityfor-writing
88 processidentifier profilename programchange programlocation
89
168
90
91 maintenan ce-
158 programstate
92 proportion al-
93 updateinterval update-time 189 utc-offset validsamples
146 value-beforechange
190 value-set valuechange-time variancevalue vendoridentifier vendor-name vt-classessupported
118
119
191
192
151
120
121
122
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
413
Elemen t
Description
Array
Index
Property
derivativeconstantunits description
Val ue
27
28 descriptionof-halt
29 deviceaddressbinding
30 device-type 31
Property
Val ue
required manipulat edvariablereference
60 manualslaveaddressbinding
170 maximumoutput
61 maximumvalue
135
Property
Val ue
constant proportion alconstantunits
94 protocolobjecttypessupported
96 protocolrevision
139 protocolservicessupported
97 protocolversion
98
Property
weeklyschedule windowinterval windowsamples zonemembers
Val ue
123
147
148
165 directreading
156 maximumvaluetimestamp
149 max-apdulengthaccepted
62 read-only 99
Index for subscribing elements in BACnet arrays.
l l
-1 means read all elements
0 to n means read the specified element
Priority Array example
To read a priority array object it is necessary to set Object Property = 87 and Array Index has to refer to the priority item to be read.
The following figure shows how to read the 16th item of a priority array.
BACnet
414
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Elemen t
Description
Write
Priority
Write requests priority level. The value is in the range 1-16. 0 is interpreted as 16.
COV
Enable the Change Of Value notification.
Clear/Set Priority
The system offers actions for a more flexible handling of Write Priority.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
415
Action
BACnetClearPriority
Description
Clears the priority array at the position associated to the BACnet tag passed as parameter.
This action has immediate effect on the BACnet device.
BACnetClearAllPriorities
Clears all positions in the priority array.
This action has immediate effect on the BACnet device.
BACnetSetPriority
Overrides the Write Priority value configured in the BACnet tag definition.
This action has two parameters: l l
TagName: name of the BACnet tag.
TagPriority: new value of Write Priority for the BACnet tag passed as parameter.
This action only overrides the value of Write Priority in the BACnet tag definition and does not perform any communication with the BACnet device.
Any write command that will be performed to the Present Value property of the
BACnet device identified by the tag, will be performed using the new Write
Priority value.
The priority value will be valid until: l
A new call to the BACnetSetPriority action changes it.
l
The HMI device is restarted. The value of WritePriority defined in the project is valid in this case.
Tag Import
Select the driver in Tag Editor and click on the Import Tags button to start the importer.
The following dialog shows which importer type can be selected.
BACnet
416
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Importer
BACnet EDE v1.0
Linear
BACnet EDE v1.0
Hierarchical
Tag Editor exported xml
Description
Requires a .csv file.
All variables will be displayed at the same level.
Requires a .csv file.
All variables will be displayed according to BACnet EDE Hierarchical view.
Select this importer to read 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
417
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.
BACnet
418
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Toolbar item 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.
DEVICE Object Properties
A BACnet network scanner can detect properties when exploring the network and obtaining data from HMI device.
This are the supported DEVICE object properties:
Property
Object_Identifier
Object_Name
Object_Type
System_Status
Vendor_Name
Vendor_Identifier
Model_Name
Firmware_Revision
Application_Software_Version
Protocol_Version
Description
BACnetObjectIdentifier
CharacterString
BACnetObjectType
BACnetDeviceStatus
CharacterString
Unsigned16
CharacterString
CharacterString
CharacterString
Unsigned
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
419
BACnet
Property
Protocol_Revision
Protocol_Services_Supported
Protocol_Object_Types_Supported
Object_List
Max_APDU_Length_Accepted
Segmentation_Supported
APDU_Timeout
Number_Of_APDU_Retries
Device_Address_Binding
Database_Revision
Description
Unsigned
BACnetServicesSupported
BACnetObjectTypesSupported
BACnetARRAY[N]of BACnetObjectIdentifier
Unsigned
BACnetSegmentation
Unsigned
Unsigned
List of BACnetAddressBinding
Unsigned
Communication status
Current communication status can be displayed using system variables. See "System Variables" section in the main manual.
Codes supported by this communication driver:
Error Cause
Cannot bind to the device_id
Cannot establish communication with the Device ID provided for this tag.
Cannot read the property data type
The type of the property to write cannot be determined.
write conversion error
Cannot write ICOM type ….
BACnet type ….
Timeout on COV subscription
Timeout on waiting COV update
A conversion associated to this tag has failed.
A datatype selected for this tag is not compatible with the BACnet property to set.
A request for COV subscription for this tag has timed out.
A COV notification has not been received for this tag whithin timeout.
Can't get COV for this property datagramItem conversion error
The selected property for COV notification is unsupported.
A conversion associated to a tag that is part of a datagram has failed.
Timeout waiting on response
No response for a request of read or write property within timeout.
datagram element …., no data available
No data available for a tag that is part of datagram.
420
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Error datagram element ….,
Unsupported BACnet data type datagram element …., can't convert BACnet type to ….
No data in response
Datagram element 'element_
URI' error: 'error_class': error_code datagram object does not match datagram property does not match
BACnet abort: reason_of abort
BACnet reject: reason_of_ rejection
BACnet error: error_class: error_code parameter 'parameter_name' out of range
Cause
Read datagram element is of unsupported BACnet type.
A Data Type selected for a tag which is part of a datagram is not compatible with the BACnet property to read.
No data available for a tag.
The reading of indicated datagram element 'element_URI' was reported as error. The error descriptions error_class and error_code are included in the message.
The object of the received datagram item does not match the asked object.
The property of the received datagram item does not match the asked property.
BACnet abort message was received. The reason of abort is given.
BACnet reject message was received. The reason of rejection is given.
BACnet error message was received. The error description is given as combination of error_class and error_code.
The protocol parameter parameter_name value is out of range.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
421
CODESYS V2 Ethernet
CODESYS V2 Ethernet
CODESYS V2 communication driver for Ethernet supports communication with controllers based on the CODESYS V2.3
version.
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.
Element
Alias
Description
Name identifying nodes in network configurations. The name will be added as a prefix to each tag name imported for each network node.
IP address
Ethernet IP address of the controller.
Port
Port number used by the CODESYS V2 Ethernet driver. The default value is set to 1200, which is also the default setting of CODESYS-based controllers.
Block Size
Maximum block size supported by your controller (limit is 1024 KB ).
422
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element
Timeout
(ms)
Description
Time delay in milliseconds between two retries of the same message when communication fails.
Protocol type
PLC
Models
Protocol variant to be used. Please make sure you check which protocol variant is supported by the CODESYS run-time you want to connect.
Source
Address,
Destination
Address
Available only when TCP/IP Level 2 Route is selected in Protocol Type. The Destination is the node of the PLC and allows the protocol to read variables in a sub-network. The address is used to read variables when multiple PLCs are connected in a sub-network (serial network) but only one have the Ethernet interface.
Two PLC models are available.
l
Intel
l
Motorola
PLC
Network
IP address for all controllers in multiple connections. PLC network check box must be selected to enable multiple connections.
CODESYS V2 Ethernet driver supports connection to multiple controllers starting from version V1.60.
Note: CODESYS V2 Ethernet driver is recommended when creating projects for the internal controller iPLC
CODESYS. To use the CODESYS V2 Ethernet driver with iPLC, configure the IP address of the PLC as localhost (127.0.0.1).
iPLC CODESYS supports communication with CODESYS V2 Ethernet driver with symbol based support starting from
V1.55 and above.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
423
CODESYS V2 Ethernet
Adding an alias name to a protocol
Tag names must be unique at project level, however, the same tag names might need to be used for different controller nodes (for example when the HMI device is connected to two devices running the same application).
When creating a protocol you can add an alias name that will be added to tag names imported for this protocol.
In the example, the connection to a certain controller is assigned the name Node1. When tags are imported for this node, all tag names will have the prefix Node1 making each of them unique at the network/project level.
Note: Aliasing tag names is only available for imported tags. Tags which are added manually in the Tag Editor do not need to have the Alias prefix in the tag name.
The Alias string is attached on the import. If you modify the Alias string after the tag import has been completed, there will be no effect on the names already present in the dictionary. When the Alias string is changed and tags are re-imported, all tags will be re-imported with the new prefix string.
CODESYS software settings
When creating the project in CODESYS, select Download symbol file.
424
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Note: CODESYS V2 Ethernet communication driver supports the automatic symbol file (SDB) upload from the
PLC; any change in the tag offset due to new compilation of the PLC program does not require a symbol file reimport. Tag file has to be re-imported only in case of tag rename or definition of new tags.
When the option Download symbol file is not available or cleared, the protocol can work only if the ProjectId tag is imported. If the tag offset changes because of a new compilation of the PLC program, the symbol file must be re-imported.
Data types
The import module supports variables of standard data types and user defined data types.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
425
CODESYS V2 Ethernet
Supported data types
Unsupported data types
l
BOOL l
WORD l l
DWORD
INT l
UINT l
UDINT l l
DINT
STRING * l
REAL l
TIME l
DATE & TIME and 1-dimensional ARRAY of the types above. See "Programming concepts" section in the main manual.
Note *: String length for a STRING variable in PLC should be max 80 characters. Declare a
STRING variable either with a specified size (str: STRING(35) or default size (str: STRING) which is 80 characters.
l
LWORD l
LINT l
LREAL
Tag conversion
Conversion to be applied to the tag.
Depending on data type selected, the Allowed list shows one or more conversions, listed below.
426
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Value
Inv bits
Negate
AB -> BA
ABCD -> CDAB
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)
ABCDEFGH -> GHEFCDAB
Swap bytes of a double word.
Example:
32FCFF54 → 54FFFC32 (in hexadecimal format)
855441236 → 1426062386 (in decimal format)
ABC...NOP -> OPM...DAB
Swap bytes of a long word.
Example:
142.366 → -893553517.588905 (in decimal format)
0 10000000110 0001110010111011011001000101101000011100101011000001
→
1 10000011100 1010101000010100010110110110110010110110000100111101
(in binary format)
BCD
Separate the byte in two nibbles, and reads them as decimal (from 0 to 9)
Example:
23 → 17 (in decimal format)
0001 0111 = 23
0001 = 1 (first nibble)
0111 = 7 (second nibble)
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
427
CODESYS V2 Ethernet
Node Override IP
The protocol provides the special data type Node Override IP which allows you to change the IP address of the target controller at runtime.
This memory type is an array of 4 unsigned bytes, one per each byte of the IP address.
The Node Override IP is initialized with the value of the controller IP specified in the project at programming time.
Node Override IP Modbus operation
0.0.0.0
Different from
0.0.0.0
Communication with the controller is stopped, no request frames are generated anymore.
It is interpreted as node IP override and the target IP address is replaced runtime with the new value.
If the HMI device is connected to a network with more than one controller node, each node has its own Node Override IP variable.
Note: Node Override IP values assigned at runtime are retained through power cycles.
Tag Import
Exporting Tags from PLC
When configuring PLC using the manufacturer’s configuration software, enable Symbol file (.sym extension) creation under the CODESYS programming software:
1. In the Project menu, click Options.
2. Click Symbol configuration.
3. Select Dump symbol entries.
4. Click OK.
428
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Note: Click then Configure symbol file… and select Export variables of object. We recommend to clear the check box and re-select to be sure about the proper settings.
In some cases, duplication of symbols for variables associated to integrated I/O modules in the “.sym” file may be experienced. To remove the duplication selected the “PLC Configuration” voice from the objects list and uncheck the option
“Export variables of object”.
Importing Tags in Tag Editor
Select the driver in Tag Editor and click on the Import Tags button to start the importer.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
429
The following dialog shows which importer type can be selected.
CODESYS V2 Ethernet
Importer
CODESYS2 sym v1.1
Linear
CODESYS2 sym v1.1
Hierarchical
CODESYS2 sym_xml v1.0
Hierarchical
Tag Editor exported xml
Description
Requires a .sym file.
All variables will be displayed at the same level.
Requires a .sym file.
All variables will be displayed according to CODESYS V2 Hierarchical view.
Requires a .sym_xml file.
All variables will be displayed according to CODESYS V2 Hierarchical view.
Select this importer to read 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.
430
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
431
Toolbar item Description
Check this box to import all sub-elements of a tag.
Example of both checked and unchecked result:
CODESYS V2 Ethernet
Searches tags in the dictionary basing on filter combo-box item selected.
Exporting tag arrays
In CODESYS V2 program tag arrays are split into individual elements and one tag for each element is created. In the following example one array with 10 elements.
432
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Note: If Export array entries is selected, a tag for each element will be created and exported into the .sym file.
The entire tag list will be automatically imported into the Tag editor.
By clearing Export array entries only one tag for each one array can be created.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
433
CODESYS V2 Ethernet
Note: When Export array entries has been cleared, only one tag is created and exported into the .sym file. The array is not automatically imported in the Tag editor and tags need to be manually configured in Tag editor.
All tag elements can be referenced in the editor using TagIndex in the Attach to Tag dialog.
434
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Communication status
Current communication status can be displayed using system variables. See "System Variables" section in the main manual.
Codes supported by this communication driver:
Error
Symbols file not present
“tag” not present in Symbols files
Time out on Acknoledge
Time out on last Acknoledge
Time out on data reciving
Connection timeout
Cause and action
Check Symbol file and download again the PLC program.
Check if the Tag is present into the PLC project.
Controller didn’t send acknowledge.
Controller didn’t sent last ack.
Controller does not reply with data.
Device not connected.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
435
Ethernet/IP CIP
Ethernet/IP CIP
The protocol has been implemented according to the published Ethernet/IP specifications (available from www.odva.org).
The Ethernet/IP CIP driver has been designed to provide the best performance with the least amount of impact on the system's overall performance. Although the Ethernet/IP CIP driver is fast, we suggest to use short Tag names. Tags are read from and written to the device by specifying their symbolic name in the communications request, therefore the longer the tag name is, the larger the request will be.
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.
Field
Alias
Description
Name identifying nodes in network configurations. The name will be added as a prefix to each tag name imported for each network node.
IP
Address
Ethernet IP address of the controller.
Slot
CPU slot number for Logix 5000 models (typically 0). Refer to the controller documentation for further details.
436
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Field
PLC
Models
Description
PLC model used to import tags file.
PLC
Network
Enable access to multiple networked controllers. For every controller (slave) set the proper option.
Rockwell Logix 5000
The Ethernet/IP CIP driver allows to connect Allen-Bradley ControlLogix and CompactLogix Ethernet controllers.
Communication with ControlLogix® 5500 controllers can be accomplished through an Ethernet/IP communication module for Ethernet such as the 1756-EN2T or 1756-ENET.
Ethernet communication with CompactLogix™ 5300 controllers requires a processor with a built-in Ethernet/IP port such as the 1769-L32E.
Tag exchange
The internal memory organization of the Logix CPUs is not fixed but configured by the user at development time. Each data item can be identified by a string called “tag”. The RSLogix 5000 software can then export to the application the list of tags created for each controller.
The project loaded on the HMI device must refer to the tag names assigned in the RSLogix 5000 software at development time. The Tag Editor supports direct import of the tag file generated by the RSLogix 5000 software in .csv format.
The implementation of the Ethernet/IP driver also supports access to structured data types which can be imported from .l5x
files.
The driver supports access to both controller and program tags.
Module-Defined and User-Defined data types
RSLogix 5000 allows you to define Tags with several data types.
Data type group
Predefined
Module-Defined
User-Defined
Description
Standard data types such as BOOL, DINT, SINT, INT and other less common data types such as PID, COUNTER, TIMER.
Data type associated with I/O optional modules usually referenced by aliases.
Custom data type defined by user
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
437
Ethernet/IP CIP
In order to import Predefined (with the exception of standard data types which are always imported) and Module-Defined data type you need to edit the ETIPSpecialDataTypes.xml file located under languages\shared\studio\tagimport or
studio\tagimport depending on installed version.
To do this:
1. From the Controller Organizer pane, select Controller Tags.
2. Filter tags to display only Module-Defined tags.
438
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Only tags (alias) with data type belonging to optional I/O Modules will be displayed.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
439
Ethernet/IP CIP
In this example alias HYS_Point_IO_Rack_20:I refers to data type AB:1734_3SLOT:I:0. Expand this tag to see how this data type is structured:
To make sure that HYS_Point_IO_Rack_20:I, and all his sub-tags, will be imported into the project, open the
ETIPSpecialDataTypes.xml file in any text editor and check if the AB:1734_3SLOT:I:0 data type is included. If so you can proceed with the following data type. If not, you need to add it manually.
The structure is as in this example: where: l aaa
= Alias/Tag data type l l bbb
= Sub-tag Name (it's sub-tag name part after dot) ccc
= Sub-tag data type l ddd
= Array dimension (0 if it is not an array) l eee
= Style
In the example above:
3. Repeat step 2 for all Module-Defined data types.
4. Repeat the procedure from step 2, filtering tags to display only Predefined tags.
Allen-Bradley Micro800
The Ethernet/IP CIP driver provides an easy and reliable way to connect to Allen-Bradley Micro800 controllers.
The scope of variables into a Micro800 controller can be local to a program or global:
440
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols l l local variables (program-scoped tags) are assigned to a specific program in the project and available only to that program. These tags are not supported within this driver.
global variables (controller-scoped tags) belong to the controller in the project and are available to any program in the project. These tags are supported within this driver.
Omron Sysmac
Data in NJ and CJ controllers can be accessed via CIP protocol. Each data item can be identified by a string called “tag”.
Use appropriate programming tools for controller to export the list of tags.
NJ series controller are programmed using Sysmac Studio: l l
NJ301-xxxx
NJ501-xxxx
CJ series controller are programmed using CX-One: l
CJ2M CPU-3x l
CJ2H CPU 6x-EIP l
Any CPU with a CJ1W-EIP21 attached.
Tag exchange
The project loaded on the HMI device must refer to the tag names assigned in the programming software at development time. The Tag Editor supports direct import of the tag file generated by the Sysmac Studio software in .njf format or generated by CX-One in the .cjf format.
All tags to be accessed by the HMI device must be declared as global variables.
Export CSV and L5X Files Using RSLogix5000
To export the .csv tag file:
1. From the Controller Organizer pane, right-click on Controller Tags.
2. Select Export Tags: the Export dialog is displayed.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
441
Ethernet/IP CIP
3. Choose All from the Tags list to export all tags.
4. Select the Save as type option to .csv.
5. Click Export: all the tags are exported to an .csv file.
To export the .l5x data type file:
1. Choose File > Save As.
2. Select the Save as type option to .l5x.
3. Click Save: all the tags are exported to an .l5x file.
442
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Export ISAXML File Using Connected Component Workbench
To export .isaxml global variables including I/O tags:
1. From the Connected Components Workbench (CCW), select Device > Export > Export Device: the
Import/Export dialog is displayed.
2. In the Export Exchange File tab click Export.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
443
Ethernet/IP CIP
3. Choose a location where to save the export file and click Save.
4. When the export is completed successfully the output information is displayed:
444
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Note: CCW export file is a 7-zip compressed archive. Use a suitable zip utility to exctract archive content into a local folder.
Export NJF Files Using Sysmac
To export the .njf tag file:
1. In Sysmac Studio declare tags as Global variables.
2. Set the Network Publish attribute to Publish Only.
2. From the Tools menu, choose Export Global Variables > CX-Designer.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
445
Ethernet/IP CIP
3. Click OK to confirm.
4. Cut and paste the content of the clipboard in any text editor.
4. Save the file as .njf.
Note: Make sure you use the Save As function or the file will be named *.njf.txt and will not be visible from the importer.
Export CJF and CJS Files Using CX-One
To export the .cjf tag file:
1. In CX-One open the Symbols file in the project.
2. In the Edit Symbol dialog set the Net. Variables attribute to Publication.
446
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
3. Copy and paste all the tags in any text editor.
4. Save the file as .cjf.
Note: Make sure you use the Save As function or the file will be named *.njf.txt and will not be visible from the importer.
To export the .cjs tag file:
1. In CX-One open the Data Types file in the project.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
447
Ethernet/IP CIP
2. Copy and paste all the tags in any text editor.
3. Save the file as .cjs.
Note: Make sure you use the Save As function or the file will be named *.cjs.txt and will not be visible from the importer.
448
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Adding an alias name to a protocol
Tag names must be unique at project level, however, the same tag names might need to be used for different controller nodes (for example when the HMI device is connected to two devices running the same application).
When creating a protocol you can add an alias name that will be added to tag names imported for this protocol.
In the example, the connection to a certain controller is assigned the name Node1. When tags are imported for this node, all tag names will have the prefix Node1 making each of them unique at the network/project level.
Note: Aliasing tag names is only available for imported tags. Tags which are added manually in the Tag Editor do not need to have the Alias prefix in the tag name.
The Alias string is attached on the import. If you modify the Alias string after the tag import has been completed, there will be no effect on the names already present in the dictionary. When the Alias string is changed and tags are re-imported, all tags will be re-imported with the new prefix string.
Node Override IP
The protocol provides the special data type Node Override IP which allows you to change the IP address of the target controller at runtime.
This memory type is an array of 4 unsigned bytes, one per each byte of the IP address.
The Node Override IP is initialized with the value of the controller IP specified in the project at programming time.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
449
Ethernet/IP CIP
Node Override IP Modbus operation
0.0.0.0
Communication with the controller is stopped, no request frames are generated anymore.
Different from
0.0.0.0
It is interpreted as node IP override and the target IP address is replaced runtime with the new value.
If the HMI device is connected to a network with more than one controller node, each node has its own Node Override IP variable.
Note: Node Override IP values assigned at runtime are retained through power cycles.
Tag Import
Select the driver in Tag Editor and click on the Import Tags button to start the importer.
The following dialog shows which importer type can be selected.
450
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Importer
Allen-Bradley
RSLogix5000 v15
Linear
Allen-Bradley CCW v15
Linear
Omron Sysmac v15
Linear
Omron CX-One v15
Linear
Tag Editor exported xml
Description
Requires a .csvand .l5x (optional) files.
Check Export CSV and L5X Files Using RSLogix5000 for more details.
All variables will be displayed at the same level.
Requires a .isaxml file.
Check Export ISAXML File Using Connected Component Workbench for more details.
All variables will be displayed at the same level.
Requires a .njf file.
Check Export NJF Files Using Sysmac for more details.
All variables will be displayed at the same level.
Requires a .cjfand .cjs (optional) files.
Check Export CJF and CJS Files Using CX-One for more details.
All variables will be displayed at the same level.
Select this importer to read 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
451
Ethernet/IP CIP
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.
452
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Toolbar item 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.
Communication status
Current communication status can be displayed using System Variables. See "System Variables" section in the main manual.
Codes supported for this communication driver:
Error Cause
NAK
The controller replies with a not acknowledge.
Timeout
A request is not replied within the specified timeout period.
Invalid response
The device did received a response with invalid format or contents from the controller .
General
Error
Unidentifiable error. Should never be reported.
Action
-
Check if the controller is connected and properly configured to get network access.
Ensure the data programmed in the project are consistent with the controller resources.
Contact technical support.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
453
Modbus RTU
Modbus RTU
The operator panels can be connected to a Modbus network as the network master using this communication driver.
Implementation details
The Modbus RTU implementation supports only a subset of the Modbus standard RTU function codes.
04
05
06
16
Code Function
01
02
03
Read Coil Status
Read Input Status
Read Holding Registers
Read Input Registers
Force Single Coil
Preset Single Register
Preset Multiple Registers
Description
Reads multiple bits in the device Coil area
Read the ON/OFF status of the discrete inputs (1x reference) in the slave
Read multiple Registers
Reads the binary contents of input registers (3x reference) in the slave
Forces a single Coil to either ON or OFF
Presets a value in a Register
Presets value in multiple Registers
Note: Communication speed with controllers is supported up to 115200 baud.
Note: Floating point data format is IEEE standard compliant.
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.
454
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element
Alias
Description
Name identifying nodes in network configurations. The name will be added as a prefix to each tag name imported for each network node.
Node ID
Modbus node of the slave device.
Timeout (ms)
Time delay in milliseconds between two retries in case of missing response from the server device.
Delay (ms)
Time delay in milliseconds between the end of the last received frame and the starting of a new request. If set to 0, the new request will be issued as soon as the internal system is able to reschedule it.
Num of repeats
Max read block
Max read bit block
Write
Holding
Number of times a certain message will be sent to the controller before reporting the communication error status.
When set to 1 the panel will report the communication error if the response to the first request packet is not correct.
Maximum length in bytes of a data block request. It applies only to read access of Holding
Registers.
Maximum length in bits of a block request. It applies only to read access of Input Bits and
Output Coils.
Modbus function for write operations to Holding Registers. Select between the function 06
(preset single register) and function 16 (preset multiple registers).
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
455
Element
Register
Write Coils
Transmission
Mode
Description
If function 06 is selected, the protocol will always use function 06 for writing to the controller, even when writing to multiple consecutive registers.
If function 16 is selected, the protocol will always use function 16 to write to the controller, even for a single register write request and the Max read block size parameter of the query is set to 2. The use of function 16 may result in higher communication performance.
Modbus function for write operations to Output Coils. Select between the function 05 (write single coil) and function 15 (write multiple coils).
If Modbus function 05 is selected, the protocol will always use function 05 for writing to the controller, even when writing to multiple consecutive coils.
If Modbus function 15 is selected, the protocol will always use function 15 to write to the controller, even for a single coil write request. The use of function 15 may result in higher communication performance.
l
RTU: use RTU mode l
ASCII: use ASCII mode
Note: When PLC network is active, all nodes will be configured with the same
Transmission Mode.
PLC Models
Two PLC models are available: l
Modicon Modbus - addressing space starts from offsets 1 for all the memory types.
l
Generic Modbus - adressing space starts from offset 0 for all the memory types.
Comm...
If clicked displays the communication parameters setup dialog.
Modbus RTU
456
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element Description
Element
Port
Parameter
Serial port selection.
l l
COM1: device PLC port.
COM2: computer/printer port on panels with 2 serial ports or optional Plug-In module plugged on Slot 1/2 for panels with 1 serial port on-board.
l
COM3: optional Plug-In module plugged on Slot 3/4 for panels with 1 serial port on-board.
Baudrate, Parity,
Data Bits, Stop bits
Serial line parameters.
Mode
Serial port mode. Available modes: l
RS-232.
l l
RS-485 (2 wires).
RS-422 (4 wires).
PLC Network
Multiple controllers can be connected to one HMI device. To set-up multiple connections, select PLC networkand click Add to configure each slave
Adding an alias name to a protocol
Tag names must be unique at project level, however, the same tag names might need to be used for different controller nodes (for example when the HMI device is connected to two devices running the same application).
When creating a protocol you can add an alias name that will be added to tag names imported for this protocol.
In the example, the connection to a certain controller is assigned the name Node1. When tags are imported for this node, all tag names will have the prefix Node1 making each of them unique at the network/project level.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
457
Modbus RTU
Note: Aliasing tag names is only available for imported tags. Tags which are added manually in the Tag Editor do not need to have the Alias prefix in the tag name.
The Alias string is attached on the import. If you modify the Alias string after the tag import has been completed, there will be no effect on the names already present in the dictionary. When the Alias string is changed and tags are re-imported, all tags will be re-imported with the new prefix string.
Tag Editor Settings
Path: ProjectView> Config > double-click Tags
1. To add a tag, click +: a new line is added.
2. Select Modbus RTU from the protocol list: tag definition dialog is displayed.
458
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
459
Element Description
Memory
Type
Memory Type
Input bits
Output coils
Holding registers
Input registers
32 bit Long Integer
32 bit Floating Point
Node Override ID
Modicon Mode
Serial Baudrate
Serial Parity
Serial Stop Bits
Serial Mode
Serial Done
Offset
Memory Type
Coils
Input bits
Input registers
Holding registers
32 bit Long Integer
32 bit Floating Point
Node Override ID
Modicon Mode
Serial Baudrate
Serial Parity
Serial Stop Bits
Serial Mode
Serial Done
Description
1 bit data input registers
1 bit data output registers unsigned 16 bit holding registers unsigned 16 bit input registers unsigned 32 bit holding registers
IEEE single precision 32 bit floating point holding registers protocol parameter (see Special Data Types for mode details) protocol parameter (see Special Data Types for mode details) protocol parameter (see Special Data Types for mode details) protocol parameter (see Special Data Types for mode details) protocol parameter (see Special Data Types for mode details) protocol parameter (see Special Data Types for mode details) protocol parameter (see Special Data Types for mode details)
Offset
0 – 65535
100000 – 165535
300000 – 365535
400000 – 465535
0 – 65535
0
0
0
0
0
0 – 65535
0
0
/
/
/
/
/
/
/
Resource Address
0 – 65535
0 – 65535
0 – 65535
0 – 65535
0 – 65535
0 – 65535
Modbus RTU
460
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element Description
Note: Data in the table refer to PLC model “Generic Modbus (0-based)”.
SubInd ex
Data
Type
This allows resource offset selection within the register.
Available data types: l l
boolean byte
l
short
l
int
l l
unsignedByte unsignedShort
l
unsignedInt
l
float
l l
double string
l
binary
See "Programming concepts" section in the main manual.
Note: To define arrays, select one of Data Type format followed by square brackets
(byte[], short[]…).
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
461
Modbus RTU
Element Description
Arraysi ze
Array size for the variable.
Conver sion
Conversion to be applied to the tag.
462
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element Description
Value
BCD
Description
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.
Node Override ID
The protocol provides the special data type Node Override ID which allows you to change the node ID of the slave at runtime. This memory type is an unsigned byte.
The node Override ID is initialized with the value of the node ID specified in the project at programming time.
Node
Override ID
0
Modbus operation
1 to 254
255
Communication with the controller is stopped. In case of write operation, the request will be transmitted without waiting for a reply.
It is interpreted as the value of the new node ID and is replaced for runtime operation.
Communication with the controller is stopped; no request messages are generated.
Note: Node Override ID value assigned at runtime is retained through power cycles.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
463
Modbus RTU
Modicon Mode
The protocol provide a special data type that can be used to override the Modicon Mode parameter at runtime.
Modicon Mode
0
1
Description
Generic Modbus (0-based). Register indexes start from 0.
Modicon Modbus (1-based). Register indexes start from 1.
Note: Modicon Mode parameter value assigned at runtime is retained through power cycles.
464
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Serial Parameters Override
The protocol provide special data types that can be used to override the serial parameters at runtime.
Parameter
Serial Baudrate
Serial Parity
Description
unsigned 32 bit value for baudrate overriding. Possible values are 150, 300, 600, 1200, 2400, 4800,
9600, 19200, 38400, 57600, 115200.
unsigned 8 bit value for parity overriding. Possible values are described in the following list.
1
2
Value
0
Description
none parity even parity odd parity
Serial Stop Bits
unsigned 8 bit value for stop bits overriding. Possible values are 1, 2.
Serial Mode
unsigned 8 bit value for serial mode overriding. Possible values are described in the following list.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
465
Modbus RTU
Parameter
Serial Done
Description
1
2
Value
0
Description
RS-232 mode
RS-485 mode
RS-422 mode
Set to 1 to overwrite the communication line parameters. The parameters are processed all together only when this variable is set to value 1
Tag Import
Select the driver in Tag Editor and click on the Import Tags button to start the importer.
The following dialog shows which importer type can be selected.
466
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Type
Modbus Generic csv v1.0
Linear
Tag Editor exported xml
Description
Requires a .csv file.
All variables will be displayed at the same level.
Select this importer to read 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
467
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.
Modbus RTU
468
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Toolbar item 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.
Modbus Generic csv file structure
This protocol supports the import of tag information when provided in .csv format according to the following format:
NodeID, TagName, MemoryType, Address, DataFormat,...,[Comment]
Note: Fields in brackets are optional as well as fields between Data Format and Comment.
Field
NodeID
TagName
MemoryType
Address
DataFormat
Comment
Description
Node the tag belongs to
Tag description l
OUTP l
INP l
IREG l
HREG
Offset compatible with Modbus notation
Data type in internal notation. See "Programming concepts" section in the main manual.
Optional additional description.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
469
Modbus RTU
Tag file example
Example of .csv line:
2,Holding Register 1, HREG, 400001, unsignedShort,
Note: This line has no comment. When the Comment is missing, the comma as a terminator character is mandatory.
Communication status
Current communication status can be displayed using System Variables. See "System Variables" section in the main manual.
Codes supported for this communication driver:
Error
No response
Cause
No reply within the specified timeout.
The device received a response with an invalid node address from the controller .
-
Action
Check if the controller is connected and properly configured to get network access.
Incorrect node address in response
The received message too short
Incorrect writing data acknowledge
The device received a response with an invalid format from the controller .
-
The controller did not accept a write request.
Check if project data is consistent with the controller resources.
470
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Modbus RTU Server
Modbus RTU Server communication driver allows connecting the HMI device as a slave in a Modbus RTU network.
Standard Modbus messages are used for information exchange.
This approach allows connecting HMI devices to SCADA systems through the universally supported Modbus RTU communication protocol.
Principle of operation
This communication driver implements a Modbus RTU slave unit in the HMI device. A subset of the complete range of
Modbus function codes is supported. The available function codes allow data transfer between the master and the slave.
The following diagram shows the system architecture.
The HMI device is actually simulating the communication interface of a PLC: Coils and Registers are respectively boolean and 16 bit integers.
The device always access data in its internal memory. Data can be transferred to and from the Modbus Master only on initiative of the Master itself.
Implementation details
This Modbus RTU slave implementation supports only a subset of the standard Modbus function codes.
Code Function
01
Read Coil Status
03
Read Holding Registers
Description
Reads multiple bits in the device Coil area.
Read multiple device Registers.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
471
Modbus RTU Server
15
16
17
Code Function
05
06
08
Force Single Coil
Preset Single Register
Loopback Diagnostic Test
Description
Forces a single device Coil to either ON or OFF.
Presets a value in a device Register.
Only sub function 00 (Return Query Data) is supported.
23
Force Multiple Coils
Preset Multiple Registers
Report Slave ID
Read Write Multiple
Registers
Forces multiple device Coils to either ON or OFF.
Presets value in multiple device Registers.
Returns diagnostic information of the controller present at the slave address.
Read & presets values in multiple device Registers
Exception Codes
Code Description
01
Illegal Function. the function code received in the query is not supported
02
03
Illegal Data Address. Data Address received in the query exceeds the predefined data range
(see Tag Definition for detailed ranges of all types).
Illegal Data Value. A sub function other than 00 is specified in Loopback Diagnostic Test (Code
08).
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.
472
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element
Modbus ID
32bit reg Start
32bit reg Size
Description
Modbus node ID. Every Modbus server device in the network must have its own
Modbus ID.
32 bit registries memory area definition.
Start value represents the first register address.
Size value represents the number of registries.
Note: A request to one of the registries inside this area gives a 4 byte answer.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
473
Modbus RTU Server
Element
PLC Models
Comm...
Description
Allows you to select between two models of Modbus RTU Server.
l
Modicon Modbus (1-based): implements a Holding Register range between
400001 and 465536 and an Output Coils range between 1 and 65536.
l
Generic Modbus (0-based): implements a Holding Register range between
400000 and 465535 and an Output Coils range between 0 and 65535.
Note: The address range used in the Modbus frames is always between 0 and 65535 for the Holding Registers and between 0 and 65535 for Coils.
If clicked displays the communication parameters setup dialog.
You have to set parameters according to the values programmed in Modbus Master.
474
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element Description
Element
Uart
Description
Serial port selection.
On UN20 devices: l
com1 = device port labeled PLC l
com2 = device port labeled
PC/Printer
On UN30 and UN31 devices: l l
com1 = integrated serial port
com2 = add-on module plugged in
Slot#1 or into Slot#2 l
com3 = add-on module plugged in
Slot#3 or into Slot#4
Serial line parameters.
Baudrate, Parity, Data bits,
Stop bits
Mode
Serial port mode. Available options: l
RS-232
l
RS-485 (2 wires) l
RS-422 (4 wires)
Tag Editor Settings
Path: ProjectView> Config > double-click Tags
1. To add a tag, click +: a new line is added.
2. Select Modbus RTU Server from the protocol list: tag definition dialog is displayed.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
475
Modbus RTU Server
476
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element Description
Memory
Type
Memory Type
Coil status
Input status
Input registers
Holding registers
32 bit Long Integer
32 bit Floating point
Node Override ID
Modicon Mode
Serial Baudrate
Serial Parity
Serial Stop Bits
Serial Mode
Serial Done
Offset
Memory Type
Coils
Input bits
Input registers
Holding registers
32 bit Long Integer
32 bit Floating point
Node Override ID
Modicon Mode
Serial Baudrate
Serial Parity
Serial Stop Bits
Serial Mode
Serial Done
Description
1 bit data output registers
1 bit data input registers unsigned 16 bit input registers unsigned 16 bit holding registers unsigned 32 bit holding registers
IEEE single precision 32 bit floating point holding registers protocol parameter (see Special Data Types for mode details) protocol parameter (see Special Data Types for mode details) protocol parameter (see Special Data Types for mode details) protocol parameter (see Special Data Types for mode details) protocol parameter (see Special Data Types for mode details) protocol parameter (see Special Data Types for mode details) protocol parameter (see Special Data Types for mode details)
Offset
0 – 65535
100000 – 165535
300000 – 365535
400000 – 465535
0 – 65535
0
0
0
0
0
0 – 65535
0
0
/
/
/
/
/
/
/
Resource Address
0 – 65535
0 – 65535
0 – 65535
0 – 65535
0 – 65535
0 – 65535
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
477
Modbus RTU Server
Element Description
Note: Data in the table refer to PLC model “Generic Modbus (0-based)”.
SubInd ex
Data
Type
This allows resource offset selection within the register.
Available data types: l
boolean
l
byte
l
short
l
int
l
unsignedByte
l
unsignedShort
l
unsignedInt
l
float
l
double
l
string
l
binary
See "Programming concepts" section in the main manual.
Note: To define arrays, select one of Data Type format followed by square brackets
(byte[], short[]…).
478
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element Description
Arraysi ze
Array size for the variable.
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
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
479
Modbus RTU Server
Element Description
Value
BCD
Description
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.
Node Override ID
The protocol provides the special data type Node Override ID which allows you to change the node ID of the slave at runtime. This memory type is an unsigned byte.
The node Override ID is initialized with the value of the node ID specified in the project at programming time.
Node Override
ID
0
Modbus operation
Communication with the slave is stopped. In case of write operation, the device will not respond to request frames.
1 to 255
It is interpreted as the value of the new node ID and is replaced for runtime operation.
Note: Node Override ID value assigned at runtime is retained through power cycles.
480
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Modicon Mode
The protocol provide a special data type that can be used to override the Modicon Mode parameter at runtime.
Modicon Mode
0
1
Description
Generic Modbus (0-based). Register indexes start from 0.
Modicon Modbus (1-based). Register indexes start from 1.
Note: Modicon Mode parameter value assigned at runtime is retained through power cycles.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
481
Modbus RTU Server
Serial Parameters Override
The protocol provide special data types that can be used to override the serial parameters at runtime.
Parameter
Serial Baudrate
Serial Parity
Description
unsigned 32 bit value for baudrate overriding. Possible values are 150, 300, 600, 1200, 2400, 4800,
9600, 19200, 38400, 57600, 115200.
unsigned 8 bit value for parity overriding. Possible values are described in the following list.
1
2
Value
0
Description
none parity even parity odd parity
Serial Stop Bits
unsigned 8 bit value for stop bits overriding. Possible values are 1, 2.
Serial Mode
unsigned 8 bit value for serial mode overriding. Possible values are described in the following list.
482
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Parameter
Serial Done
Description
1
2
Value
0
Description
RS-232 mode
RS-485 mode
RS-422 mode
Set to 1 to overwrite the communication line parameters. The parameters are processed all together only when this variable is set to value 1
Tag Import
Select the driver in Tag Editor and click on the Import Tags button to start the importer.
The following dialog shows which importer type can be selected.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
483
Modbus RTU Server
Type
Modbus Generic csv v1.0
Linear
Tag Editor exported xml
Description
Requires a .csv file.
All variables will be displayed at the same level.
Select this importer to read 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.
484
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
485
Toolbar item Description
Check this box to import all sub-elements of a tag.
Example of both checked and unchecked result:
Modbus RTU Server
Searches tags in the dictionary basing on filter combo-box item selected.
Modbus Generic csv file structure
This protocol supports the import of tag information when provided in .csv format according to the following format:
NodeID, TagName, MemoryType, Address, DataFormat,...,[Comment]
Note: Fields in brackets are optional as well as fields between Data Format and Comment.
Field
NodeID
TagName
MemoryType
Address
DataFormat
Comment
Description
Node the tag belongs to
Tag description l
OUTP l
INP l
IREG l
HREG
Offset compatible with Modbus notation
Data type in internal notation. See "Programming concepts" section in the main manual.
Optional additional description.
486
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Tag file example
Example of .csv line:
2,Holding Register 1, HREG, 400001, unsignedShort,
Note: This line has no comment. When the Comment is missing, the comma as a terminator character is mandatory.
Communication status
Current communication status can be displayed using system variables. This communication protocol acts as server and doesn't return any specific Protocol Error Message.
See "System Variables" section in the main manual.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
487
Modbus TCP
Modbus TCP
Various Modbus TCP-capable devices can be connected to HMI devices. To set-up your Modbus TCP device, please refer to the documentation you have received with the device.
The implementation of the protocol operates as a Modbus TCP client only.
Implementation details
This Modbus TCP implementation supports only a subset of the Modbus TCP standard function codes.
06
15
16
03
04
05
Code Function
01
02
Read Coil Status
Read Input Status
Description
Reads multiple bits in the HMI device Coil area.
Reads the ON/OFF status of the discrete inputs (1x reference) in the slave.
Read Holding Registers Reads multiple registers.
Read Input Registers Reads the binary contents of input registers (3x reference) in the slave.
Force Single Coil Forces a single coil to either ON or OFF.
Preset Single Register
Write Multiple Coils
Preset Multiple
Registers
Writes a value to one register.
Writes each coil in a sequence of coils to either ON or OFF.
Writes values to a block of registers in sequence.
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.
488
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element
Alias
IP address
Port
Description
Name identifying nodes in network configurations. The name will be added as a prefix to each tag name imported for each network node.
Address of the controller.
Port number used by the Modbus TCP driver. The default value is 502 and can be changed when the communication goes through routers or Internet gateways where the default port number is already in use.
use UDP/IP
If selected, the protocol will use connectionless UDP datagrams.
Encapsulated
RTU
If selected, the protocol will use serial RTU protocol over Ethernet instead of Modbus TCP protocol, independently from TCP or UDP usage.
Timeout (ms)
Time delay in milliseconds between two retries in case of missing response from the server device.
Modbus ID
Max read block
Usually used when communicating over Ethernet-to-serial gateways and then interpreted as the Slave ID. This value is simply copied into the Unit Identifier field of the Modbus TCP communication frame. This is rarely used and in most cases can be left zero.
Maximum length in bytes of a data block request. It applies only to read access of Holding
Registers.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
489
Element
Max read bit block
Write
Holding
Register
Write Coils
Description
Maximum length in bits of a block request. It applies only to read access of Input Bits and
Output Coils.
Modbus function for write operations to Holding Registers. Select between the function 06
(preset single register) and function 16 (preset multiple registers).
If function 06 is selected, the protocol will always use function 06 for writing to the controller, even when writing to multiple consecutive registers.
If function 16 is selected, the protocol will always use function 16 to write to the controller, even for a single register write request and the Max read block size parameter of the query is set to 2. The use of function 16 may result in higher communication performance.
Modbus function for write operations to Output Coils. Select between the function 05 (write single coil) and function 15 (write multiple coils).
If Modbus function 05 is selected, the protocol will always use function 05 for writing to the controller, even when writing to multiple consecutive coils.
If Modbus function 15 is selected, the protocol will always use function 15 to write to the controller, even for a single coil write request. The use of function 15 may result in higher communication performance.
Modbus TCP
490
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element Description
PLC Models
Two PLC models are available.
l
Modicon Modbus (1-based): has an addressing space that starts from offsets 1 for all memory types.
l
Generic Modbus (0-based): has an addressing space that starts from offset 0 for all memory types.
PLC Network
IP address for all controllers in multiple connections. PLC Network must be selected to enable multiple connections.
Tag Editor Settings
Path: ProjectView> Config > double-click Tags
1. To add a tag, click +: a new line is added.
2. Select Modbus TCP from the Driver list: tag definition dialog is displayed.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
491
Modbus TCP
Element Description
Memory
Type
Memory Type
Input bits
Output coils
Holding registers
Input registers
32 bit Long Integer
32 bit Floating point
Node Override IP
Node Override Port
Node Override ID
Modicon Mode
Offset
Memory Type
Input bits
Output coils
Holding registers
Input registers
Description
1 bit data input registers
1 bit data output registers unsigned 16 bit holding registers unsigned 16 bit input registers unsigned 32 bit holding registers
IEEE single precision 32 bit floating point holding registers protocol parameter (see Special Data Types for mode details) protocol parameter (see Special Data Types for mode details) protocol parameter (see Special Data Types for mode details) protocol parameter (see Special Data Types for mode details)
Offset
100000 – 165535
0 – 65535
400000 – 465535
300000 – 365535
Resource Address
Discrete Inputs
Coils
Holding Registers
Input Registers
492
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element Description
Memory Type
32 bit Long Integer
32 bit Floating point
Node Override IP
Node Override Port
Node Override ID
Modicon Mode
0
0
Offset
0 – 65535
0 – 65535
0 – 4
0
/
/
/
Resource Address
Holding Registers
/
Holding Registers
SubInde x
Data
Type
This allows resource offset selection within the register.
Available data types: l
boolean
l l
byteshort unsignedByte
l
unsignedShort
l
unsignedInt
l l
float double
l
string
l
binary
See "Programming concepts" section in the main manual.
Note: To define arrays, select one of Data Type format followed by square brackets.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
493
Modbus TCP
Element Description
Arraysiz e
The amount of array elements or characters of the string.
Conversi on
Conversion to be applied to the tag.
494
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element Description
Value
BCD
Description
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.
Adding an alias name to a protocol
Tag names must be unique at project level, however, the same tag names might need to be used for different controller nodes (for example when the HMI device is connected to two devices running the same application).
When creating a protocol you can add an alias name that will be added to tag names imported for this protocol.
In the example, the connection to a certain controller is assigned the name Node1. When tags are imported for this node, all tag names will have the prefix Node1 making each of them unique at the network/project level.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
495
Modbus TCP
Note: Aliasing tag names is only available for imported tags. Tags which are added manually in the Tag Editor do not need to have the Alias prefix in the tag name.
The Alias string is attached on the import. If you modify the Alias string after the tag import has been completed, there will be no effect on the names already present in the dictionary. When the Alias string is changed and tags are re-imported, all tags will be re-imported with the new prefix string.
Node Override IP
The protocol provides the special data type Node Override IP which allows you to change the IP address of the target controller at runtime.
This memory type is an array of 4 unsigned bytes, one per each byte of the IP address.
The Node Override IP is initialized with the value of the controller IP specified in the project at programming time.
Node Override IP Modbus operation
0.0.0.0
Communication with the controller is stopped, no request frames are generated anymore.
Different from
0.0.0.0
It is interpreted as node IP override and the target IP address is replaced runtime with the new value.
If the HMI device is connected to a network with more than one controller node, each node has its own Node Override IP variable.
Note: Node Override IP values assigned at runtime are retained through power cycles.
496
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Node Override Port
The protocol provides the special data type Node Override Port which allows you to change the network Port of the target controller at runtime.
This memory type is an unsigned short.
The Node Override Port is initialized with the value of the controller Port specified in the project at programming time.
Node Override Port Modbus operation
0
Different from 0
Communication with the controller is stopped, no request frames are generated anymore.
It is interpreted as the value of the new port and is replaced for runtime operation.
If the HMI device is connected to a network with more than one controller node, each node has its own Node Override Port variable.
Note: Node Override Port values assigned at runtime are retained through power cycles.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
497
Modbus TCP
Node Override ID
The protocol provides the special data type Node Override ID which allows you to change the node ID of the slave at runtime. This memory type is an unsigned byte.
The node Override ID is initialized with the value of the node ID specified in the project at programming time.
Node
Override ID
0
Modbus operation
1 to 254
255
Communication with the controller is stopped. In case of write operation, the request will be transmitted without waiting for a reply.
It is interpreted as the value of the new node ID and is replaced for runtime operation.
Communication with the controller is stopped; no request messages are generated.
Note: Node Override ID value assigned at runtime is retained through power cycles.
498
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Modicon Mode
The protocol provide a special data type that can be used to override the Modicon Mode parameter at runtime.
Modicon Mode
0
1
Description
Generic Modbus (0-based). Register indexes start from 0.
Modicon Modbus (1-based). Register indexes start from 1.
Note: Modicon Mode parameter value assigned at runtime is retained through power cycles.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
499
Modbus TCP
Tag Import
Select the driver in Tag Editor and click on the Import Tags button to start the importer.
The following dialog shows which importer type can be selected.
500
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Type
Modbus Generic csv v1.0
Linear
Description
Requires a .csv file.
All variables will be displayed at the same level.
CODESYS2 sym v1.0
Linear
Requires a .sym file.
All variables will be displayed at the same level.
After selecting the .sym file, the following dialog will appear for PLC model selection.
Kollmorgen txt v1.0
Linear
Tag Editor exported xml
Requires a .txt file.
All variables will be displayed at the same level.
Select this importer to read a generic XML file exported from Tag Editor by appropriate button.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
501
Modbus TCP
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.
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.
Check this box to import all sub-elements of a tag.
Example of both checked and unchecked result:
502
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Toolbar item Description
Searches tags in the dictionary basing on filter combo-box item selected.
Modbus Generic csv file structure
This protocol supports the import of tag information when provided in .csv format according to the following format:
NodeID, TagName, MemoryType, Address, DataFormat,...,[Comment]
Note: Fields in brackets are optional as well as fields between Data Format and Comment.
Field
NodeID
TagName
MemoryType
Address
DataFormat
Comment
Description
Node the tag belongs to
Tag description l l
OUTP
INP l
IREG l
HREG
Offset compatible with Modbus notation
Data type in internal notation. See "Programming concepts" section in the main manual.
Optional additional description.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
503
Modbus TCP
Tag file example
Example of .csv line:
2,Holding Register 1, HREG, 400001, unsignedShort,
Note: This line has no comment. When the Comment is missing, the comma as a terminator character is mandatory.
Communication status
Current communication status can be displayed using system variables. See "System Variables" section in the main manual.
Codes supported for this communication driver:
Error
No response
Cause
No reply within the specified timeout.
Action
Check if the controller is connected and properly configured to get network access.
-
Incorrect node address in response
The received message too short
The device received a response with an invalid node address from the controller .
The device received a response with an invalid format from the controller .
Incorrect writing data acknowledge
The controller did not accept a write request.
-
Check if project data is consistent with the controller resources.
504
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Modbus TCP Server
Modbus TCP Server communication driver allows connecting the HMI device as a server in a Modbus TCP network. It is possible for Modbus TCP clients to connect then to multiple HMI panels acting as servers. Standard Modbus TCP messages are used for information exchange.
This approach allows connecting HMI devices to SCADA systems through the universally supported Modbus TCP communication protocol.
Principle of operation
This communication driver implements a Modbus TCP Server unit in HMI device. A subset of the complete range of
Modbus function codes is supported. The available function codes allow data transfer between clients on the TCP network and the server. The HMI device acts as a server in the network. It can exchange data with up to 32 clients. This means that up to 32 clients can be connected to the HMI device at the same time. If all the 32 available connections are in use, any further attempt to connect by a client will be refused by the system.
The following diagram shows the system architecture.
The device simulates the communication interface of a PLC: Coils and Registers data types are respectively boolean and
16 bit integers.
The device always access data in its internal memory. Data can be transferred to and from the Modbus Client only on the initiative of the client itself.
Implementation details
This Modbus TCP Server implementation supports only a subset of the Modbus standard function codes.
Code Function
01
Read Coil Status
02
03
Read Input Status
Read Holding Registers
Description
Reads multiple bits in the device Coil area.
Reads multiple bits in the device Coil area.
Read multiple device Registers.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
505
Modbus TCP Server
15
16
23
Code Function
04
05
06
Read Input Registers
Force Single Coil
Preset Single Register
Force Multiple Coils
Preset Multiple Registers
Read Write Multiple Registers
Description
Read multiple device Registers.
Forces a single device Coil to either ON or OFF.
Presets a value in a device Register.
Forces multiple device Coils to either ON or OFF.
Presets value in multiple device Registers.
Read & presets values in multiple device Registers
Note: For both PLC models the Read Coil Status and Read Input Status function codes both access the same
Coil memory area in the HMI device memory. The Read Holding Registers and Read Input Registers function codes both access the same Register area in the HMI device memory.
Exception Codes
Code
01
02
Description
Illegal Function. the function code received in the query is not supported
Illegal Data Address. Data Address received in the query exceeds the predefined data range (see Tag Definition for detailed ranges of all types).
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.
506
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element
Modbus ID
32bit reg
Start
32bit reg
Size
Description
Modbus node ID of the HMI device. Every Modbus server device in the network must have its own
Modbus ID.
Port
Port number used by the Modbus TCP protocol. Default value is 502. Set the value accordingly to the port number used by your Modbus TCP Network.
If selected, the protocol will use connectionless UDP datagrams.
use UDP/IP
Encapsulated
RTU
If selected, the protocol will use serial RTU protocol over Ethernet instead of Modbus TCP protocol, independently from TCP or UDP usage.
32 bit registries memory area definition.
Start value represents the first register address.
Size value represents the number of registries.
Note: A request to one of the registries inside this area gives a 4 byte answer.
PLC Models
Allows you to select between two models of Modbus TCP Server.
l
Modicon Modbus (1-based): implements a Holding Register range between 400001 and
465536 and an Output Coils range between 1 and 65536.
l
Generic Modbus (0-based): implements a Holding Register range between 400000 and 465535 and an Output Coils range between 0 and 65535.
Note: The address range used in the Modbus frames is always between 0 and 65535 for the
Holding Registers and between 0 and 65535 for Coils.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
507
Tag Editor Settings
Path: ProjectView> Config > double-click Tags
1. To add a tag, click +: a new line is added.
2. Select Modbus TCP Server from the protocol list: tag definition dialog is displayed.
Modbus TCP Server
Element Description
Memory
Type
Memory Type
Coil status
Input status
Input registers
Holding registers
32 bit Long Integer
32 bit Floating point
Modicon Mode
Offset
Memory Type
Coils
Input bits
Input registers
Holding registers
Description
1 bit data output registers
1 bit data input registers unsigned 16 bit input registers unsigned 16 bit holding registers unsigned 32 bit holding registers
IEEE single precision 32 bit floating point holding registers protocol parameter (see Special Data Types for mode details)
Offset
0 – 65535
100000 – 165535
300000 – 365535
400000 – 465535
Resource Address
0 – 65535
0 – 65535
0 – 65535
0 – 65535
508
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element Description
Memory Type
32 bit Long Integer
32 bit Floating point
Modicon Mode
Offset
0 – 65535
0 – 65535
0 /
Resource Address
0 – 65535
0 – 65535
Note: Data in the table refer to PLC model “Generic Modbus (0-based)”.
SubInd ex
Data
Type
This allows resource offset selection within the register.
Available data types: l
boolean
l
byte
l
short
l l
int unsignedByte
l
unsignedShort
l
unsignedInt
l l
float double
l
string
l
binary
See "Programming concepts" section in the main manual.
Note: To define arrays, select one of Data Type format followed by square brackets
(byte[], short[]…).
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
509
Modbus TCP Server
Element Description
Arraysi ze
Array size for the variable.
Conver sion
Conversion to be applied to the tag.
510
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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element Description
Value
BCD
Description
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.
Modicon Mode
The protocol provide a special data type that can be used to override the Modicon Mode parameter at runtime.
Modicon Mode
0
1
Description
Generic Modbus (0-based). Register indexes start from 0.
Modicon Modbus (1-based). Register indexes start from 1.
Note: Modicon Mode parameter value assigned at runtime is retained through power cycles.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
511
Tag Import
Select the driver in Tag Editor and click on the Import Tags button to start the importer.
The following dialog shows which importer type can be selected.
Modbus TCP Server
512
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Importer
Modbus Generic csv v1.0
Linear
Description
Requires a .csv file.
All variables will be displayed at the same level.
CODESYS2 sym v1.0
Linear
Requires a .sym file.
All variables will be displayed at the same level.
After selecting the .sym file, the following dialog will appear for PLC model selection.
Tag Editor exported xml
Select this importer to read 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.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
513
Toolbar item
Modbus TCP Server
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.
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.
Modbus Generic csv file structure
This protocol supports the import of tag information when provided in .csv format according to the following format:
NodeID, TagName, MemoryType, Address, DataFormat,...,[Comment]
Note: Fields in brackets are optional as well as fields between Data Format and Comment.
Field
NodeID
TagName
Description
Node the tag belongs to
Tag description
514
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Field
MemoryType
Description
l
OUTP l l
INP
IREG l
HREG
Address
DataFormat
Comment
Offset compatible with Modbus notation
Data type in internal notation. See "Programming concepts" section in the main manual.
Optional additional description.
Tag file example
Example of .csv line:
2,Holding Register 1, HREG, 400001, unsignedShort,
Note: This line has no comment. When the Comment is missing, the comma as a terminator character is mandatory.
Communication status
The HMI device is a server station in the Modbus TCP network. The current implementation of the protocol doesn't report any communication error code apart from standard communication error codes related to the proper driver loading.
See "System Variables" section in the main manual.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
515
Simatic S7 Ethernet
Simatic S7 Ethernet
The Simatic controller must either have an on-board Ethernet port or be equipped with an appropriate Ethernet interface
(either built-in or with a module).
Communication is based on the PG/OP (ISO on TCP) communication functions.
This documents describes the driver settings to be applied in programming IDE software and in S7 PLC programming software.
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.
Element Description
Alias
IP address
Name identifying nodes in network configurations. The name will be added as a prefix to each tag name imported for each network node.
Ethernet IP address of the controller.
Slot
Number of the slot where the CPU is mounted. 2 for S7-300, may take a higher value for S7-400 systems.
516
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element Description
PLC
Models
Several Siemens controllers are supported. Check the programming IDE software for a complete list.
PLC
Network
Enable access to multiple networked controllers. For every controller (slave) set the proper option.
S7-1200 and S7-1500 PLC configuration
S7-1200 (starting from firmware version 4.0) and S7-1500 PLC Series from Siemens have a built-in firewall; by default the maximum protection level is enabled. To establish communication with these PLC models it is necessary to enable S7 communication with 3 rd party devices; this setting is available in TIA Portal programming software.
1. Open the PLC project in TIA Portal.
2. Select the PLC from the project tree and open PLC Properties.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
517
3. In General > Protection make sure that "Full access (no protection)" has been selected.
Simatic S7 Ethernet
4. Scroll down the page and check "Permit access with PUT/GET communication from remote partner".
Note: If variables are defined in "Program blocks", DB must configured as "Not optimized".
To check or change DB optimization, open DB Properties:
518
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
In General > Attributes uncheck "Optimized block access":
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
519
Simatic S7 Ethernet
If check box "Optimized block access" is not available (grayed-out) it could be because DB is an "instance DB" linked to an
"optimized access FB".
After compiling the project, tag offsets will be shown close to variable name.
These settings can be applied to TIA Portal programming software, S7-1200 PLC family starting from PLC firmware version 4.0 and S7-1500 PLC family.
Logo! PLC configuration
To configure communication with Logo! PLC:
1. Open the Logo!Soft Comfort project.
2. Select Tools > Ethernet Connections: the Configure Ethernet Connections dialog is displayed.
520
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
3. Right-click on Ethernet Connections and add a server connection.
4. Double-click on the newly created connection: the connection properties dialog is displayed.
5. Select the Connect with an operator panel (OP) and Accept all connection requests options.
6. In the Remote Properties (Client) section, set TSAP to 02.00.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
521
Simatic S7 Ethernet
Export ASC File Using Simatic STEP7
The Simatic S7 Ethernet tag import filter accepts symbol files (ASCII format .asc) and source files (.awl extension) created by the Simatic Step7. The symbol file can be previously exported using the Step7 symbol table utility.
Symbol files (.asc) can be exported from the symbol table utility.
1. From the Symbol Table menu in the Symbol Editor choose Export.
2. Assign a name and save the symbol table as ASCII file.
522
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Exporting sources
These files are created exporting source code.
1. Open any program block in the editor, "OB1" in this example.
2. From the File menu choose Generate Source: the following dialog is displayed:
1. Assign a name, "Sources" in the example, and click OK: the Generate source Sources dialog is displayed.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
523
Simatic S7 Ethernet
2. Click All > to generate source for all blocks.
3. Select the following options: l
Include reference blocks
l l
Sort according to program structure
Symbolic address
4. Click OK to confirm: the "Sources" object is generated in the Step7 project as in the example.
524
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
5. Right click on the object and select Export Sources.
The generated .awl file can be imported in the Tag Editor.
Note: The .awl file contains additional information not included in the .asc file exported from the symbol table.
Make sure that reference to all data blocks is inserted in the symbol table. The tags from a data block are imported only if the symbol table contains a line with the data block name and related comment.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
525
Each entry enables the import filter to import the tags related to the specified data block.
Export TIA, XLSX, SCL, UDT Files Using TIA Portal
Exporting .tia files
These files refer to DB tags defined in Program blocks.
1. Configure the Data Block as Not optimized.
2. Right-click on the Data Block and choose Properties:
Simatic S7 Ethernet
526
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
3. In the General tab select Attributes and unselect Optimized block access.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
527
Simatic S7 Ethernet
Note: If the options Optimized block access is not enabled (checkbox grayed out) this might mean that the
Data Block is an "instance DB" linked to an "optimized access FB".
4. Build the project to make sure TIA Portal calculates the tags offset.
528
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
5. Double-click on a DB name.
6. Expand the view of program block selected.
7. Select all rows.
8. Copy and paste into any text editor.
9. Save the file as DBxxx.tia, where xxx=number of DB.
Note: Make sure you use the Save As function or the file will be named DB2.tia.txt and will not be visible from the importer.
10. Repeat from step 5 for all program blocks.
Exporting .xlsx files
An Excel file refers to PLC tags.
1. Double-click Show all tags: the tag table is displayed.
2. Click the Export button and browse for path file.
3. Define file name.
4. Click Save to confirm.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
529
Simatic S7 Ethernet
5. Click OK to export.
Exporting .scl or udt files
To create the file, expand PLC Data Type item from TIA Portal project tree and right click on the user defined structure.
Then click on Generate source from blocks.
530
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Tag Editor Settings
In the Tag Editor select “Simatic S7 ETH” from the list of defined protocols and click + to add a tag.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
531
Simatic S7 Ethernet
Element Description
Memory
Type
Area of PLC where tag is located.
Data Type
Internal Memory
Data Block
Input
Output
Timer value
Counter value
Offset
SubInd ex
Data
Block
Data
Type
Offset address where tag is located.
Resource offset within the register.
Data block number for Data Block Memory Type.
Available data types: l
boolean
l
byte
l
short
l
int
l
unsignedByte
l
unsignedShort
Simatic Type
M
DB
I (E)
O (A)
T
C
532
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Element Description
l
unsignedInt
l l
float string
See "Programming concepts" section in the main manual.
Note: To define arrays, select one of Data Type format followed by square brackets.
Arraysi ze
Conver sion
The amount of array elements or characters of the string.
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
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:
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
533
Simatic S7 Ethernet
Element Description
Value
ABCDEFGH ->
GHEFCDAB
ABC...NOP ->
OPM...DAB
BCD
S5timer(BCD)
Description
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)
Used to support S5timer. Check Simatic S5timer special data type for more details.
Legacy transformation for S5timer in binary format.
S5timer(BIN)
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.
Adding an alias name to a protocol
Tag names must be unique at project level, however, the same tag names might need to be used for different controller nodes (for example when the HMI device is connected to two devices running the same application).
When creating a protocol you can add an alias name that will be added to tag names imported for this protocol.
In the example, the connection to a certain controller is assigned the name Node1. When tags are imported for this node, all tag names will have the prefix Node1 making each of them unique at the network/project level.
534
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Note: Aliasing tag names is only available for imported tags. Tags which are added manually in the Tag Editor do not need to have the Alias prefix in the tag name.
The Alias string is attached on the import. If you modify the Alias string after the tag import has been completed, there will be no effect on the names already present in the dictionary. When the Alias string is changed and tags are re-imported, all tags will be re-imported with the new prefix string.
String data type
In Simatic S7 PLC two different types of tags manage string variables: l as Array [1..xx] of characters, l as String[xx].
Step7 string declaration is shown in this example:
TIA Portal string declaration is shown in this example:
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
535
Simatic S7 Ethernet
Note: When using String[xx] data type specific a conversion must be applied to the tag. If the tag dictionary is imported from TIA Portal or Step7 using the import tool, however, conversion of the string tags is performed automatically and no further action is required.
To add a string as an array of characters:
1. Press the + in the Tag Editor.
2. Select string as Data Type.
3. Enter string length in Arraysize.
4. Click OK to confirm.
To add a string data type:
1. Press the + in the Tag Editor.
536
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
2. Select string as Data Type.
3. Enter string length in Arraysize.
4. Click +/- to open the Conversion dialog.
5. In the conversion dialog select the S7 String conversion type.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
537
Simatic S7 Ethernet
6. Click + to add the conversion: the conversion will be listed into the Configured list on the right.
7. Click OK to confirm.
Simatic S5Timer data type
Simatic drivers support a special data type, the S5Timer data type.
The tag must be configured with a specific data type and a conversion must be applied to the tag to correctly read/write a
Simatic S5Timer Variable.
1. In the Tag Editor click + to add a tag.
2. Select unsignedInt as Data Type.
538
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
3. Click +/- to open the Conversion dialog.
4. In the conversion dialog select the S5timer(BCD) conversion type.
5. Click + to add the conversion: the conversion will be listed into the Configured list on the right.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
539
Simatic S7 Ethernet
6. Click OK to confirm.
Node Override IP
The protocol provides the special data type Node Override IP which allows you to change the IP address of the target controller at runtime.
This memory type is an array of 4 unsigned bytes, one per each byte of the IP address.
The Node Override IP is initialized with the value of the controller IP specified in the project at programming time.
Node Override IP Modbus operation
0.0.0.0
Different from
0.0.0.0
Communication with the controller is stopped, no request frames are generated anymore.
It is interpreted as node IP override and the target IP address is replaced runtime with the new value.
If the HMI device is connected to a network with more than one controller node, each node has its own Node Override IP variable.
Note: Node Override IP values assigned at runtime are retained through power cycles.
540
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
Tag Import
Select the driver in Tag Editor and click on the Import Tags button to start the importer.
The following dialog shows which importer type can be selected.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
541
Simatic S7 Ethernet
Importer
Step7 v1.0
Linear
TIA Portal v1.0
Linear
Description
Requires an .ascfile.
Check Export ASC File Using Simatic STEP7 for more details.
All variables will be displayed at the same level.
Requires .tia, .xlsx, .scl (optional), .udt (optional) files.
Check Export TIA, XLSX, SCL, UDT Files Using TIA Portal for more details.
All variables will be displayed at the same level.
Tag Editor exported xml
Select this importer to read 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.
542
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
43 Communication protocols
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.
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.
Communication status
Current communication status can be displayed using system variables. See "System Variables" section in the main manual.
Codes supported by this communication driver:
Error
NAK
Cause
The controller replies with a not acknowledge.
Timeout
A request is not replied within the specified timeout period.
Invalid response
The device did received a response with invalid format or contents from the controller .
General
Error
Unidentifiable error. Should never be reported.
Action
-
Check if the controller is connected and properly configured to get network access.
Ensure the data programmed in the project are consistent with the controller resources.
Contact technical support.
Copyright © 2011-2016 ABB. All rights reserved. Documentation Revision 2.00 - Date of issue: 2016-07-19
543
Contact us
ABB Automation Products GmbH
Wallstadter Str. 59
68526 Ladenburg, Germany
Phone: +49 62 21 701 1444
Fax: +49 62 21 701 1382
E-Mail: [email protected]
www.abb.com/plc
Note:
We reserve the right to make technical changes or modify the contents of this document without prior notice. With regard to purchase orders, the agreed particulars shall prevail. ABB does not accept any responsibility whatsoever for potential errors or possible lack of information in this document.
We reserve all rights in this document and in the subject matter and illustrations contained therein. Any reproduction, disclosure to third parties or utilization of its contents – in whole or in parts – is forbidden without prior written consent of ABB AG.
Copyright© 2011-2015 ABB.
All rights reserved.
ডাউনলোড
বিজ্ঞাপন