ABB Panel Builder 600 PB610 programming software, CP600 control panel Operating Instructions
જાહેરાત
જાહેરાત
Operating Instructions
PB610 Panel Builder 600
Programming Software for
CP600 Control Panels
Content
Installing multiple Versions of Panel Builder 600 on the same Computer ......................... 18
Operating Instructions 1 PB610 Panel Builder 600
Operating Instructions 2 PB610 Panel Builder 600
Operating Instructions 3 PB610 Panel Builder 600
Operating Instructions 4 PB610 Panel Builder 600
Operating Instructions 5 PB610 Panel Builder 600
Operating Instructions 6 PB610 Panel Builder 600
Operating Instructions 7 PB610 Panel Builder 600
Operating Instructions 8 PB610 Panel Builder 600
Recipe Download or Upload Through Recipe Transfer Macro in Runtime .......................... 243
Operating Instructions 9 PB610 Panel Builder 600
Operating Instructions 10 PB610 Panel Builder 600
Operating Instructions 11 PB610 Panel Builder 600
Operating Instructions 12 PB610 Panel Builder 600
PB610 Panel Builder 600 Functional Specifications and Compatibility .................... 372
Operating Instructions 13 PB610 Panel Builder 600
Operating Instructions 14 PB610 Panel Builder 600
Before You Start
Safety Notices
Indicates an imminent risk. It will lead to death or serious injury if not avoided.
DANGER!
Indicates a possible risk. It may lead to death or serious injury if not avoided.
WARNING!
CAUTION!
Indicates a possible risk. It may lead to light or slight injury or material damage if not avoided.
Markups
Enumeration.
Precondition for an operation instruction or a description.
Operation instruction with one step.
1. Operation instruction with several steps.
Result of an operation.
Helpful information with background information or an emphasized notice.
NOTE
Application tips or other useful information and suggestions.
TIP
Operating Instructions 15 PB610 Panel Builder 600
Getting Started
PB610 Panel Builder 600 is a software application that allows you to create graphical HMI pages. PB610
Panel Builder 600 uses a drag-and-drop system that makes it easy to create displays. The same features found in many popular Windows applications are also available in PB610 Panel Builder 600.
This document describes how to use the PB610 Panel Builder 600 application, and is divided into chapter that represent the key operations of PB610 Panel Builder 600. Each chapter is presented in a standalone manner, allowing you to jump from chapter to chapter, depending on the task you wish to perform.
Assumptions
We assume that those reading this manual are using PB610 Panel Builder 600 software to design Control
Panel applications that run on ABB Control Panels and on a PC.
We also assume that you have a basic understanding of PCs, Microsoft Windows, and the type of network environment in which you will run the application.
Installing the Software
The Panel Builder 600 contains the following as part of the installation:
Panel Builder 600
Panel Builder 600 is an application for designing custom HMI projects in a user-friendly manner, along with a variety of options in its built-in library, the Widget Gallery.
Windows Client
Windows Client is a light-weight application that can be used on Windows computers to remotely view and manage an application running on an HMI Runtime.
HMIce Runtime
The HMIce Runtime is a standalone application that runs on the CP600 HMI panels. The HMI Runtime can be installed via Panel Builder 600 and is designed for working with WCE 6.0 OS.
System Requirements
PB610 Panel Builder 600 has the following system requirements:
Windows XP (Service Pack 2 or 3), Windows Vista (Service Pack 1 or 2), Windows 7, Windows 8
500 MB of disk space
Minimum of 512 MB RAM
One Ethernet interface
Operating Instructions 16 PB610 Panel Builder 600
Installation
When running Windows 7 operating system, the installation must be done from users with administration privileges.
NOTE
Insert the USB ROM drive into the USB port. If your system has autorun enabled, the PB610 Panel
Builder 600 installation will start automatically, otherwise run the PB610 Panel Builder 600 setup application.
1. Click on the Start button and select Run from the menu.
2. Type D:\setup in the box if you are running the installation from the USB drive (if your USB drive is not drive D, replace with the appropriate letter).
3. Click Next.
4. Read the PB610 Panel Builder 600 software license and accept the agreement.
5. Follow the instructions on the screen. The default location for the PB610 Panel Builder 600 software is C:\Program Files\ABB\Panel Builder 600 Suite. Default installation path can be changed depending on need.
Operating Instructions 17 PB610 Panel Builder 600
6. If the Select Components step is available, select the components you want to install.
The installation procedure will create a program group called Panel Builder 600 Suite in the start menu. A PB610 Panel Builder 600 icon can be added on the desktop.
After installing the PB610 Panel Builder 600, you can run the PB610 Panel Builder 600 application by using the desktop icon or from Start > All programs > Panel Builder 600 Suite.
Installing multiple Versions of Panel Builder 600 on the same
Computer
You may install different instances of Panel Builder 600 on the same computer. Each installation has its own settings and can be uninstalled individually.
During the installation process you may encounter three scenarios:
First installation of Panel Builder 600 in the system
Operating Instructions 18 PB610 Panel Builder 600
The installation procedure asks for the destination folder and installs that software in the specified folder.
System with only one instance of Panel Builder 600 already installed
The installer detects that one version is already available and it will ask if you want to replace the current version with the new one or if you want to install another instance.
System with multiple instances of Panel Builder 600 already installed
The installer detects that one or more installations of Panel Builder 600 are present and it will ask if you want to replace the last installed instance with the new one or if you want to install another instance.
When the user tries to install a second instance of the same version of Panel Builder 600, the setup procedure will detect it and will show a warning message that the same version is already available in the computer. Setup will also provide the user with the reinstall option.
Each installation goes to a sub-folder which has the version number as part of its name; for instance:
C:\Program Files\ABB\Panel Builder 600 1.90.
Each installed version provides its ID in the Control Panel. Add/remove program facility is provided in order to remove it individually from the computer.
Each installation identifies itself in the Start Menu with a program group name.
Multiple Studio installations provide a common workspace folder for all instances of the
Panel Builder 600 that have been installed.
NOTE
Operating Instructions 19 PB610 Panel Builder 600
Opening Projects created with older Version of Panel Builder 600
When a Panel Builder 600 project (file with .jpr extension) is opened, Panel Builder 600 checks for the match between the version ID stored in the jpr file and its version ID; if they match, the project will be opened normally; if they do not match, Panel Builder 600 shows a warning message to inform that the project has been created with a different version of Panel Builder 600 and report this version ID if it is available in jpr.
In this case Panel Builder 600 will offer two options to convert the project.
1. Convert and open the project from current path. The project will be converted without a backup copy of the original version.
2. Convert and save the project to a new location and Open. The older version is maintained as a backup copy.
WARNING!
Do not edit projects with a version of Panel Builder 600 older than the one used to create them. It can result in a damage of the project and to runtime instability.
Operating Instructions 20 PB610 Panel Builder 600
The HMI Runtime
The HMI Runtime is designed to support different platforms and different operating systems.
All the panels are running today on the base of the Windows CE operating system (Version 6 R3).
The operating system and all its options are built around the minimum set of requirements of the HMI
Runtime; there is no option to get direct access to the Operating system settings as all the needed components are managed via the runtime itself or via PB610 Panel Builder 600.
Later in this document you will find more information on how to install the HMI runtime and how to manage the update of other system components (firmware) on the units, but always with a dedicated interface which prevents a direct access to the operating system, often a source of complexity.
Runtime Modes
The HMI Runtime is composed of two logic units: the server and the client. The client unit is the part which is responsible for the visualization process: using the data collected at the server side to render it on the display as graphical information.
The server unit is responsible for handling the HMI services such as running the communication protocols, performing data acquisition, driving trend buffer sampling activities, monitoring alarms, and so on. The server unit of the HMI runtime can be in one of two operating modes.
Configuration mode: The server is idle; activity has not started: for example no project is loaded on the panel or system files are missing.
Operation mode: the server is active; it is operating according to the settings defined by the system files and by the application project.
The server operating mode is independent of the client side operating mode; you may have a visualization running but server activity stopped.
Operating Instructions 21 PB610 Panel Builder 600
Basic Unit Settings
The settings of the device are available from the show system settings menu, which is accessible from the context menu , if the panel has the runtime already installed or by using the dedicated button on the
1. Press and hold your finger on the screen for a few seconds, until the context menu appears as shown in the figure below.
2. Select Show system settings to access the system settings tools.
3. The system settings tool is a rotating menu through which you can scroll using the Next and Back buttons.
The system settings tool includes the following entries:
Calibrate Touch: To calibrate the touch screen if needed
Display Settings: Backlight and brightness control
Time: Internal Real Time Clock (RTC) settings
Operating Instructions 22 PB610 Panel Builder 600
BSP Settings: Operating system version, unit operation timers: power up and activated backlight timers, Buzzer control, Battery LED control
Network: IP address settings
Plugin List: Provides a list of the plug-in modules installed and recognized by the system; this option may not be supported by all platforms and all versions.
Operating Instructions 23 PB610 Panel Builder 600
Other Context Menu Options
The context menu has several other options:
Zoom In/Out/100%: Select the view at runtime
Pan Mode: Enables/disables the pan mode; works only when you have previously activated a zoom in
Settings: Following runtime settings are available:
Setting
Context Menu
Delay (sec)
Explanation
The context menu activation delay. Range is 1-60 seconds.
Show Busy
Cursor
When enabled, shows an hourglass when the system is busy
Use keypads When enabled, shows touch keypads when users touch/click on fields for data entry.
When disabled, does not show any keypad on screen (useful when an external USB keyboard is connected to device).
Password Change the password protecting operations such as:
- Download Project/Runtime
- Upload project
- Board management (BSP Update)
Refer to Remote access protection to HMI Panels for more information related to access protection.
Project Manager: When activated, a dialog box will appear (see figure below) providing options to unload (de-activate) the current project, load (activate) another project present on the panel memory, or delete a project. Please note that projects can be deleted only after they are unloaded. If you click on a project name other than the active one, the option "Load project" will first unload the running application and then automatically activate the new one.
Operating Instructions 24 PB610 Panel Builder 600
Update: When activated, the panel verifies first the presence of an external USB memory stick inserted in the panel USB port, and later for the presence on its root folder of the update package.
See the “ Updating Runtime from USB Memory Stick “ chapter in this document for further information.
Backup: Creates a backup copy of runtime and project.
Logging: Enables you to display a trace of the system operation log; it may be very useful in case there is a need to debug a problem of any nature. The following figure shows a case in which the system reports a communication error; the decoding of the reported information may not be immediate, but you can always use the option “Log to file” to save the dialog context to a file that can be later provided to Technical Support for investigation. The log file is called “logger.txt” and it saved to the folder “..\var\log” on the panel flashdisk. The file can be retrieved from the panel using an FTP client.
The “Log To File” Option is saved and retained after power cycles; when not needed any more it must be manually deactivated
NOTE
Show log at boot: Enables the logger at startup; if the “Log to file” option has been enabled, the files are saved, in this case, from the startup phase.
Developer tools: It is a collection of utility functions useful for debugging problems at runtime.
About: Shows information about the runtime version.
Built-in SNTP Service
The Control Panels operating system features an integrated SNTP ( Simple Network Time Protocol) that synchronizes the internal RTC panel whenever the predefined server is available.
The server addresses are hard-coded and cannot be changed by the user. The system searches for the following servers:
time.windows.com
tock.usno.navy.mil
SNTP servers are checked at power up, or once per week if the panel is not powered off.
Operating Instructions 25 PB610 Panel Builder 600
My first Project
This section describes the steps to create a simple PB610 Panel Builder 600 project.
Creating a New Project
1. To create a new project click on the File > New Project menu item.
The Project Wizard dialog will appear, asking for a project name and a path where the corresponding project folder will be stored.
2. PB610 Panel Builder 600 projects are stored in a folder that has the same name as the project. This folder contains all the files of the project. To move, copy or backup a project, simply move or copy the project folder and all its contents to the desired location.
NOTE
Do NOT rename the PB610 Panel Builder 600 Project folders manually. If you need to rename a project, use the File > Save Project As
function. Depending on the size of the project, this could take some time. Please wait until the newly named project opens and all pages are visible in the project tree before closing or taking any actions.
3. Click Next to go the Control Panel selection dialog.
Operating Instructions 26 PB610 Panel Builder 600
4. Scroll through a list of available units to select the control panel model you are working with.
Per each model two radio buttons are available to select the orientation: landscape (default) or portrait. In portrait mode the panel is rotated 90° clockwise.
Some software features are not rotated when portrait mode has been selected These features are listed below.
NOTE
WCE dialogs
System Dialogs all dialogs related to “System Settings” ex. System Mode
Context Menu and related dialogs Project Manager, About, Settings, Logging, Backup
Video Analog Video Input, IP Camera, Media Player
Java Script Alert and Print function
Dialog pages
Scheduler
Macro
External applications
5. Click Finish to complete the wizard.
“Title” of dialog pages
Dialogs for data entry do not support portrait
ShowMessage, LaunchApplication, LaunchBrowser
PDF reader, VNC
6. Once the panel is chosen, you can convert the project to any other model, using the project properties portion of the screen, as shown below. This will not resize all widgets in the project to the correct size to fit a smaller or larger screen; it will simply change the model type and give a warning if some objects will be lost during the conversion.
Operating Instructions 27 PB610 Panel Builder 600
The Workspace
The PB610 Panel Builder 600 workspace is divided into following main areas:
Main area
Working Area
Explanation
Project View Presents the elements of the project in the form of a hierarchical Project Tree.
Object View Lists the Widgets with the corresponding ID’s used in the page.
Main working space where editors create the HMI pages. The current page or pages opened in the Editor View are indicated by a tab at the top of the center area. You can quickly switch between the different pages in the Editor View by clicking on the desired tab.
Properties Properties for the selected object/widgets.
Widget Gallery Large library of symbols and graphic objects.
Operating Instructions 28 PB610 Panel Builder 600
NOTE
The workspace layout can be freely changed at any time; any change is saved and maintained among Studio activations. In case you need to reset the workspace to the original default layout, use the command called “Reset and Restart” from the “File” menu.
Operating Instructions 29 PB610 Panel Builder 600
Communication Protocols
Device communication drivers are configured in the protocol editor, which is accessible from the project tree.
1. Double click on the Protocols icon in the project tree to open the protocol editor.
2. To add a driver, click on the + icon and select the driver from the list in the controller field.
The combo box shows the list of available drivers.
3. Once a driver is selected, configure the driver by clicking on the Browse button in the column
Configuration. A configuration dialog will be displayed, allowing you to set the parameters of the driver.
Refer to CP600 operating instructions manual in case you need information about serial communication cables.
NOTE
The combo box shows the list of available communication drivers. Once a driver is selected, configure the driver by clicking on the browse button in the Configuration field. A configuration dialog will be displayed, allowing you to set the parameters of the driver (as shown in the figure below).
4. To create a project for Modbus TCP, select the Modbus TCP driver.
5. Configure the communication parameters by selecting the browse button in the Configuration column.
Operating Instructions 30 PB610 Panel Builder 600
PB610 Panel Builder 600 supports configurations that include more than one communication protocol. By repeating the steps shown above, you can add up to four protocols in the protocol editor.
NOTE
While it is possible to run different Ethernet protocols over the same physical Ethernet port, you cannot run different serial protocols over a single serial port. Some serial protocols support access to multiple PLCs, but this is an option that has to be configured within the protocol that still counts one.
Other parameters in the protocol editor are:
Enable Offline Algorithm / Offline Retry Timeout: Refer to chapter OFFline Node Management for
more details.
Version: Version of the protocol available in Panel Builder 600 for selected target. Version of the protocol is not read from hmi directly but from studio internal DLLs.
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. To assign tags, double click on the
Tags icon in the Project View and the tag editor will be displayed.
Operating Instructions 31 PB610 Panel Builder 600
1. To add a new tag, click on the + icon, and select the address from the communication protocol
address dialog.
When tags are initially added, these tags are named Tag1, Tag2 etc. by default.
2. To rename the tag click once on the tag name.
The tag editor provides a tag import feature, which is available based on the protocol selected.
Not all protocols support tag import.
3. If the protocol does support this feature (see specific protocol documentation), first select the protocol from the filter button.
4. Click on the Import button.
You will see the dialog that corresponds to the selected protocol.
5. Browse for the symbol file. The symbol file is exported by the controller programming software.
Operating Instructions 32 PB610 Panel Builder 600
Tag Editor
The tool in PB610 Panel Builder 600 designed to handle tags' creation and managing is called tag editor.
Per each tag the tag editor allows you to specify several properties.
Name
This is the unique name at project level of the tag. This is the primary key used to identify the information in the internal runtime tag database.
You cannot use the same tag name even if you are referring to different communication protocols.
NOTE
Group
After the tags have been defined in the tag editor, they are used in the project screens by attaching them to the widgets' properties. See chapter “ Attach To ” for a complete explanation.
Per each screen the system is able to identify which tags are used in the specific page and identifies them as part of the “page group”. This allows an easy handling at runtime of the requests made by the communication protocol to the connected controller(s): Only the tags included in the displayed page are queued for retrieval from the controller memory.
This mechanism is fully automatic and there is no intervention required by the user.
The tag editor allows you to define groups of tags not belonging to a specific page but for instance grouped according to their logical meaning. These groups are called “users' group”. Users' groups have no meaning for the local visualization, but they are very useful when external software communicate with the Runtime requesting sets of data that must be independent from the currently displayed screen.
The Runtime web server publishes a set of communication interfaces that can be used from a 3 rd
party application to interface with the local tag database and read the tags according to their grouping.
The group column allows to define the users' groups and assign tags to them.
Driver
Specifies the communication protocol for which the tag is going to be defined.
Address
Shows the PLC controller memory address.
To edit the address, click on the right side of the column to get the dialog box where you can enter the address information.
Encoding
This is the encoding type for string data type (UTF-8, Latin1, UTF-2 and UTF-16)
Comment
Allows to add a description of the tag.
Rate (ms)
Define the refresh time for tag. Default is 500ms that means tag is update every 500ms.
R/W (Read/Write)
This option determines if the tag must be managed as Read only (R), Write only (W) or Read/Write
(R/W). If a Tag is Write Only (W), the system never reads the tag value (& status) just writes it. When communication is not active, content of Write Only tags may not be available in widgets.
Active
Operating Instructions 33 PB610 Panel Builder 600
As explained above tags are grouped per page and if needed in users' groups. By default tags are not active. This means they are automatically activated by the runtime when the visualization requires them.
You can force the system to continuously read a certain tag even if not present in current page by setting its active property to true.
We recommend that you leave this parameter to false to avoid unexpected results in terms of overall device performances.
TIP
Simulator
PB610 Panel Builder 600 provides on-line and off-line simulation. The behavior of each tag during off-line simulation mode can be specified by choosing between several profiles.
Operating Instructions 34 PB610 Panel Builder 600
Scaling
Tags' values are normally transferred “as they are” from the protocol to the real time tag database. You can specifically apply scaling to the tag values before they are stored in the database. Scaling can be specified in terms of linear relationship as a formula or as range conversion.
Available scaling options.
The tag name must be always unique at the project level; often it may happen that the same tags, from the same symbol file have to be used for two different controllers. Since having tags with the same name is not supported, you can use the “Alias” feature to automatically add a prefix to the imported tag to make them unique at the project level.
When importing tags for a protocol, the tag names may be prefixed by the name given in the “Alias” item of the protocol configuration dialog box. Please note that not all protocols support the “Alias” feature. See protocol documentation for specific information.
PLC Tag Name
This is the original name of the tag when imported from PLC. This field is managed automatically by Tag
Importer and is available as R/W in advanced view just to allow users to change it if any problem during tag import operation. For tags not imported from external files usually this field is empty and can be ignored. PLC Tag Name are used so as link between tags used by HMI application (Tag Name) and tags exported from PLC.
Operating Instructions 35 PB610 Panel Builder 600
Data Types
When creating a tag, PB610 Panel Builder 600 shows a dialog in which you need to specify the tag properties. The tag’s memory types are specific for the selected protocol.
The tag’s data type must be selected from the list of available PB610 Panel Builder 600 data type, according to the PB610 Panel Builder 600 internal representation you need for the selected controller address. PB610 Panel Builder 600 data types are summarized in the following table.
Data Type
string boolean float double binary int short byte unsignedInt unsignedShort unsignedByte time boolean [ ] byte [ ] short [ ]
Description
Character strings. The characters are coded in UTF-8 format.
Boolean is one bit data
Float corresponds to the IEEE single-precision 32-bit floating point type
Double corresponds to IEEE double-precision 64-bit floating point type
Binary represents arbitrary binary data
Int is signed 32 bit data
Short is signed 16 bits data
Byte is signed 8 bits data
UnsignedInt is unsigned 32 bit data
UnsignedShort is unsigned 16 bit data
UnsignedByte is unsigned 8 bit data
Time data
Array of boolean
Array of byte
Array of short
Operating Instructions 36 PB610 Panel Builder 600
Data Type
int [ ] unsignedbyte [ ] unsignedshort [ ] unsignedint [ ] float [ ] double [ ] time [ ]
Description
Array of int
Array of unsignedbyte
Array of unsignedshort
Array of unsignedint
Array of float
Array of double
Array of time
Dictionaries
A dictionary is a list of tags imported in the tag editor for a specific protocol. Usually these files are generated by 3d party tools and are in .csv, .xml or other formats. Refer to Tag Import section of each protocol for details related to supported formats.
Dictionaries folder in ProjectView list all files imported in the tag editor for each protocol. Selecting a particular protocol, it is possible to delete or look at the imported dictionary files for the related protocol.
To import a new Dictionary proceed as follow in Tag Editor:
1. From top toolbar, select interested protocol
2. Click on
>] button to call importer
3. Verify controller type and select format of file to import (.csv, .txt, .sym – protocol dependent)
4. Click OK
5. Select file to import
As result, a new dictionary file is added to the Dictionaries folder and a list of tags imported are available in the tag editor and shown at the bottom of the tag editor page. Tags shown in dictionary can be imported into the project using following:
Import Tags (to add new tags to the project)
Update Tags (to update tags already imported previously)
Operating Instructions 37 PB610 Panel Builder 600
NOTE
When importing tags, the "." period is replaced with a "/" forward slash character. This is normal and the protocol will use the correct syntax when communicating to the PLC. The "." is a reserved character and cannot be used in a tag name.
The “&” ampersand character cannot be used in a tag name, as it can cause communication issues.
NOTE
Designing a Page
When a project is created, a page is automatically added to the project and shown in the page editor.
1. To add objects to a page, simply drag and drop the objects from the widget gallery to the page.
2. To add a new page, right click on the page node from the project tree and select “Insert new page”.
A dialog box will appear asking for the name of the new page.
Operating Instructions 38 PB610 Panel Builder 600
Importing a Page
1. A page can also be imported from one project to another. By right clicking on the page folder in the project view, there is an option named “Import Page”.
2. After selecting a page to be imported from the desired project, when you click OK, you get a warning message in the editor as shown below.
Page import can support only import of page and the widgets in it, but not the macro actions and datalinks attached to the widget. By selecting “Yes” all the datalinks and the macro actions attached to the widgets will be removed. Only the widgets will remain. By selecting “No” the macro actions and the datalinks will remain attached to the widgets, but may not function properly during runtime unless the tags associated to the macros and datalinks are present or created in the new project.
NOTE
The import page can be done between projects made in the same version of the software. If the versions are different then a warning message will pop up to save the project in the new version, then again try to import the page.
Dialog Pages
Dialog pages are windows opened at runtime on top of the current page when requested by the application.
Dialogs are used to inform user about something happening (ex. alarms/notifications/status errors) or to allow user to answer a question.
Dialog type can be defined in the property window of each dialog and can be:
Modals: user cannot return to main project window/page until dialog is closed.
Non-Modal: user can continue to use main project window (or other dialogs non- modal) while a dialog is shown on top of it.
Operating Instructions 39 PB610 Panel Builder 600
Max number of dialogs allowed is reported in Table of functions and limits. When max number of open dialog has been reached, the runtime will close automatically the oldest dialog open to open the new one.
A dialog can have a Title Bar on top of it. When Title Bar is enabled (Title Bar = true), a Title Name may be shown.
Runtime Position can be used to specify a fixed position for the dialog window.
Operating Instructions 40 PB610 Panel Builder 600
The Widget Gallery
The gallery is next to the Property View panel and can be opened by clicking on the tab
Widget Gallery
tab.
1. Select the desired object from the widget gallery and drag and drop it on to the page.
2. To change the appearance of the object, select the desired property from the property pane and change the property settings.
All the HMI objects required to make an application are available in the widget gallery. The widget gallery is accessible as a slide in pane from the right side of the workspace (as explained in the previous chapter).
The gallery is divided into several categories, each with collections of different types of objects.
3. Click on a category to display its sub-categories.
For each sub-category, the gallery offers the option of applying different styles to the objects within that category (when possible).
Operating Instructions 41 PB610 Panel Builder 600
4. Click on the style button to display the available styles for the current object.
5. Select one of the available styles to apply it to the gallery objects.
The object was inserted on the page, with the new applied style.
Once on the page, the object can still be subject to additional style changes using the page toolbar.
Operating Instructions 42 PB610 Panel Builder 600
Style change may not be available for all the widgets.
NOTE
Once on the page, the object can still be subject to additional style changes.
This is done using the Page Toolbar shown in the figure below.
Depending on the object selected, you can have options for the style, frame, fill color…along with the font type and size and other standard object properties
NOTE
Some widgets are composed of many sub widgets. For example a button is a complex widget composed by two Image widgets, a button widget and label. This is clearly visible in the ObjectView when the widget is selected. To select a sub widget like the label in a button, use ObjectView or
Shift + leftClick of mouse. In this way sub widget can be changed without ungroup all widget.
“Attach To” and Dynamic Properties
Panel Builder 600 allows for simple binding between Tags and Widget Properties. Many different Widget
Properties can be attached to a Tag, which allows you to control the device and animate objects based on live data.
To attach a Tag to a property, click on the property in Property view. A [ +] button will be displayed on the right side of the property. Click on this button and select the item Attach To… from the menu (as shown in the figure below).
For example, when working with a gauge object, the most common action taken by the programmer is to attach a Tag to the needle, so that the value of the Tag referenced in the controller memory is represented by the needle movement.
Operating Instructions 43 PB610 Panel Builder 600
To attach the Tag to the needle, single click on the object to display its properties in the Property view.
Locate the Value property and click on the [+] button on the right part of the field as shown in above figure. Select the Attach To… menu item and a dialog will be displayed as shown in the figure below.
When attaching a Tag, you can attach four types of data sources:
Tags: tag defined in the Tag editor
System: predefined system tags (example date/time)
Widget: connect to a widget property (example: value of a slider widget)
Recipe: recipe data from recipe manager
Select the Tag from the Tag list and Click OK to confirm.
Operating Instructions 44 PB610 Panel Builder 600
Tags can be attached to many different properties of the object. You can attach a Tag to a property by selecting the property in the Property view and clicking on the Attach To or you can right-click on the object and select the Attach To… menu item.
The HMI Simulator
The HMISimulator provides the facility to test the project functionality before downloading it to the panel.
This feature is useful to test the project when no PLC or HMI hardware is available and to speed up the development and debugging projects
The HMI simulator supports online simulation in communication with real devices (PLC based on Ethernet or RS-232 based protocols) and offline simulation (where using Tag Editor -> Simulator field allows the configuration behavior of each tag in simulation mode).
Launching the Simulator
The Simulator can be launched from Panel Builder 600 using Run > Start Simulator menu item to start it.
At this point, the simulator is running locally in the computer, similar to the way the server runs on a panel.
Stopping the Simulator
To stop the Simulator, select the Run >Stop Simulator menu item. You can also exit the simulator using close button of the Simulator or by using the Exit option from the contextual menu.
Operating Instructions 45 PB610 Panel Builder 600
Simulator Settings
The Simulator can be used with real protocols and PLCs (Ethernet or RS-232 based protocols) or with simulated protocols.
When we invoke the Simulator Settings button, a dialog showing the protocols used in the project will pop up. Users can select to use actual or simulated protocols by using the Use Simulation checkbox.
By default the Simulator uses simulated protocols defined in the Tag Editor Simulator column for each tag. Unchecking flag Mode, the simulator will communicate using real protocols with devices.
NOTE
Some protocols, for example the Variables protocol, don't support communication with devices (Win32). For these protocols this option remains disabled. Usually all protocols based on Ethernet or RS-232 can be simulated in Win32 platform or in general all protocols that do not require special hardware.
Operating Instructions 46 PB610 Panel Builder 600
When defining Tag values, the Tag Editor also includes a field to select a method for simulating the data as shown in the figure below. Tag values can be simulated in the following ways:
Variables
The data is stored in a variable in the simulator. This variable holds the value of the Tag so the client can read and write to the Tag value.
Counters
A count value is incremented from 1 to 1000. When the counter reaches 1000, the value is reset to 0 and the counter restarts.
Sine Waves
A sine wave value is generated and written to the Tag value. The Min, Max and Period values of the Sine wave can be defined for each Tag.
Triangle Waves
A triangle wave value is generated and written to the Tag value. The Min, Max and Period values of the wave can be defined for each Tag.
Square Waves
A square wave value is generated and written to the Tag value. The Min, Max and Period values of the
Sine wave can be defined for each Tag.
Transferring the Project to Target
The PB610 project can be transferred to the control panel in two ways:
1. Using the Download to Target item in the run menu
2. Using an Update Package via USB
Download to Target
Run Download to Target can be used to transfer project and runtime via Ethernet from the Panel
Builder 600 to the control panel.
Operating Instructions 47 PB610 Panel Builder 600
The panel must have assigned a valid IP address. Please see the chapter “ Basic Unit
Settings ” for further information about how to assign an IP address to the panel.
NOTE
Once the panel has a valid IP assigned, it will become discoverable on the local network. Click on the
“discovery” button and select the HMI from the list of IP addresses.
1. Click on the Download button to start the process.
The system will switch the target to configuration mode and transfer the files.
When the download operation is completed, the target is automatically switched to operation mode and the downloaded project is started.
Any time a project is changed, the modified files need to be transferred to the target device. When updating a target, PB610 Panel Builder 600 provides the option Download only changes to transfer only the modified files to the device.
The figure below shows this:
Expanded Advanced options
The other option is
Delete Dynamic Files. There are files that can be modified in the control panel at runtime, for example you can create new users at runtime or you can upload new value in the recipes. If the option to delete the files is selected, the edited configuration of the recipes, or users, or the schedulers will be deleted and overwritten by the project configuration.
Operating Instructions 48 PB610 Panel Builder 600
Dynamic files are not deleted using Delete Dynamic Files if storage type is external
(example USB / SD Cards).
NOTE
CAUTION!
Please make sure to check carefully before selecting this option as some data can be lost.
Data cannot be restored after being deleted.
When transferring a project, Studio is using a combination of an HTTP and FTP connection. The HTTP connection is used to issue commands to the target device like “turn in transfer mode” or “unload running project”; the FTP session is instead used to transfer the files to the panel´s flash memory.
The default port for HTTP connections on the target is set as 80. However, the user can change the port number to a different value.
2. Click on the Run > Manage Target to set the port number from PB610 Panel Builder 600
3. Click on Target Setup on the dialog: the HTTP, FTP port or HTTPS, FTPS port can be set for the target.
The host name can be defined by the user, in the appropriate box in the target port pop-up. This will allow each panel to be easily identified on a network with multiple panels. The drop down box will no longer show [email protected], but will show, for example, [email protected].
After renaming the host, it is necessary to download the system files to the target.
NOTE
Transferring a project after the above settings will result in a change of the default configuration. At the next download the new ports will be used on target and the new ports will have to be specified in Studio to match the new selection.
Operating Instructions 49 PB610 Panel Builder 600
4. Click on Advanced Menu in the download dialog and set the port.
5. Set the HTTP/HTTPS port and FTP/FTPS port of the target.
They represent the port numbers Studio uses to connect to the FTP(S) and the HTTP(S) servers on target. This is useful whenever default ports are, for some reason, in use by other applications or services, or if the local network requires using different port settings.
When Target Flash Memory is Low
While trying to download a project to the target if the project size is almost near or greater than the free space available in the flash memory, then it’s not possible to download the project directly. The difference of project size and available free memory should be at least 2MB.
While clicking
Download, a warning message will pop up mentioning that the target memory is low and whether you need to delete some projects as in the figure given above.
1. Click Manage Target.
Manage Target window will open showing all the available projects in the target.
2. Delete the unwanted projects from the target to create more memory space
Hence it is possible to download the current project.
By pressing Cancel, the dialog will close, and the download operation is aborted.
Operating Instructions 50 PB610 Panel Builder 600
The automatic check for available space for project download is a feature present from
Studio and runtime version 1.80.
NOTE
Update Package
Both Runtime and project can be updated using a USB key package. To create an update package proceed as follows:
1. From the Run menu, select Manage Target -> Update package
2. Select the target and components you need to update
3. Specify the output directory - for update package (example. USB flash drive).
4. Click Create to generate package.
An optional flag is available to encrypt package. An encrypted package is a zip package; it cannot be read by any user and can be unzipped only by the HMI runtime.
Assuming you have stored the package in the root folder of a USB drive, remove the drive from the PC, plug it into the HMI, activate the context menu by holding your finger for a few seconds on the screen
(see also “ Basic Unit Settings “)and select “Update…” as shown in the figure below.
Operating Instructions 51 PB610 Panel Builder 600
The system will automatically check for the presence of the update package in the root of the USB drive and ask confirmation to proceed with the update according to the figure below.
Mark the “Auto select best match” check box and click the “Next” button.
The rest is automatically done by the system.
NOTE
It’s always recommended to create update packages with both flags Project and HMI
Runtime checked to keep both aligned. Use latest runtime with old projects not converted with Panel Builder 600 could create stability problems in existing projects.
Operating Instructions 52 PB610 Panel Builder 600
Menu entry
Target
Project
HMI Runtime
& Plug-In
Set Target
Password
Encrypted
Location
Explanation
Target type. When a project is open the target type is selected automatically otherwise it is responsibility of the user to select the correct target type.
Project opened in Panel Builder 600 is added to the update package.
HMI runtime is added to the update package. If a project is open in Panel Builder 600, also required plugins will be added to update package.
Can be used to set password used by HMI runtime to protect operations like upload of projects, board management, download of projects, etc.
Ref. to Remote access protection to HMI Panels for more information on to access protection.
Enable Encryption of update package; it cannot be read by any user and can be unzipped only by the HMI runtime.
Path for saving the update package.
Operating Instructions 53 PB610 Panel Builder 600
The Runtime Loader
The explanations provided in the previous chapters are valid when using a panel with runtime system already installed.
The HMI devices are delivered from the factory without the runtime. When you power up the unit for the first time, it starts with the Runtime Loader screen.
NOTE
The Runtime Loader is a feature depending on the device operating system and may not be available on all the units. The description provided in this chapter assumes you are using
Studio V1.80 or later. On MIPS based units (CP650 – CP675) the Runtime Loader is available from version V2.65; on ARM based units (CP620 – CP635) the Runtime Loader is supported from BSP version V1.52.
1. Click on
System settings and activate the System menu in User Mode, where you can set the IP
Once the IP address is assigned and the panel is connected to a valid network, the easiest way to install
for additional information.
The normal download procedure in Studio is able to recognize the needs of transferring the runtime and the process is automatically started.
As soon as the panel IP is selected from the list of available units in the network, Studio will in fact recognize the need for transferring the runtime, providing the information as shown in the following figure.
2. Click on Install Runtime button to proceed.
The process will automatically go through the required steps, ending with the project download.
On an off-the-shelf unit the runtime can be installed also using an USB memory stick.
Operating Instructions 54 PB610 Panel Builder 600
3. Prepare the Update Package according to the instructions provided in the chapter “Transferring the
Project to Target“ and make sure to mark all the check boxes for the HMI Runtime as shown in the following figure.
4. Plug the USB memory stick into the panel and click on the Transfer from disk button.
5. Follow the instructions on the screen.
NOTE
The Runtime Loader on the panel does not support the automatic installation of the runtime with versions prior to 1.80; in case an older version of the runtime has to be used on a unit with the Runtime loader, please contact technical support for additional information.
Upload Projects
You can retrieve a project from a target device using the command “Upload Project”. A copy of the project is transferred from runtime to the computer running Panel Builder 600.
To upload a project proceed as follows:
1. Run -> Manage Target.
2. In tab “Runtime”, Select IP of the device from “Target” menu.
Operating Instructions 55 PB610 Panel Builder 600
3. Click on “Retrieve Projects” to list all projects available in the target device.
4. Select project to upload.
5. Click on “Upload Project”.
6. Enter password.
7. Upload process starts.
Once upload has completed, a copy of project is available in: C:\Users\username\Documents\Panel
Builder 600\workspace\Uploaded\RuntimeIPAddress\workspace\ProjectName
Starting from Panel Builder 600 v1.90 upload is no longer based on User Management for access protection but is protected by a dedicated password scheme. Please refer to Remote access protection to
HMI Panels for more information related to access protection.
Operating Instructions 56 PB610 Panel Builder 600
My First AC500-CP600 Project
Pre-Conditions
The following pre-conditions have to be fulfilled for the communication between an AC500 PLC and a
CP600 Control Panel via CoDeSys drivers:
Hardware
CP600 series (not CP6xx-WEB)
ABB PM5xx-ETH as of firmware V2.x
Software
PB610 Panel Builder 600 as of version V1.5
ABB Configurator PS501 as of version V2.0.0
AC500 Control Builder Plus as of version V2.x
Step 1: Basic Settings in the ABB Control Builder Plus
1. Start a new project.
2. Select the AC500 type you want to use, e.g. PM573-ETH V2.1.
3. Click OK to confirm your selection.
4. Start the ABB IP configuration tool.
Operating Instructions 57 PB610 Panel Builder 600
5. Click Scan to start the scanning for the PLCs that are connected.
Your PLCs will be displayed in the list. Click on the PLC you want to configure.
6. Set the IP address, the subnet mask and the IP address of your gateway.
7. Click the button Send Configuration to put the settings into your PLC.
The PLC will restart automatically.
8. Double click on the menu item, marked by the red ellipse, to create the basic structure and the configuration files for the ABB Control Builder Plus
The CoDeSys programming pool starts automatically.
Operating Instructions 58 PB610 Panel Builder 600
Step 2: CoDeSys Settings and a Small Test Project
The following example shows you some variables and a small test project. Also define some variables. A test project is not necessary for the communication start-up, but it demonstrates better changes of variables.
1. Open the menu Project/Options.
Operating Instructions 59 PB610 Panel Builder 600
2. Click on Symbol configuration.
3. Activate the checkbox Dump symbol entries.
4. Click the button Configure symbol file to open the menu for setting the object attributes.
5. Select the program or variable list that should be accessible in the CP600 Control Panel.
6. The checkbox
Export variables of object has a grey background. Double left click on the checkbox unit it is black on white background.
7. Click on OK to confirm your selection and leave the options.
8. Click on the tab Resources in the project manager.
9. Open the
Target settings.
Operating Instructions 60 PB610 Panel Builder 600
10. Open the tab General.
11. Activate the checkbox Download symbol file.
12. Click
OK to confirm your selection.
13. Open the menu Online/Communication Parameters.
Set the communication parameters of the programming device to the PLC as follows.
14. Click New.
15. Change the name of the communication and select the driver for the communication. Click OK.
16. To change the settings double click on the contents of the fields and change the value.
Settings for serial communications.
Operating Instructions 61 PB610 Panel Builder 600
Settings for networks.
17. Compile your project:
18. Log in your PLC with the last communication parameters you have selected.
19. Upload your program to the PLC and confirm the following question with Yes.
20. Start the project in your PLC.
Operating Instructions 62 PB610 Panel Builder 600
21. Create a boot project to permanently save the program in the PLC.
Step 3: PB610 Panel Builder 600
Start a new Project from Control Builder Plus
1. Start your Panel Builder 600 project in the Control Builder Plus.
2. Select the top level of your project.
Operating Instructions 63 PB610 Panel Builder 600
3. Add device with a right click or select Project/Add Device.
4. Select Miscellaneous/CP600 Control Panel and adapt the name.
5. Click
Add Device to insert the new CP600 and close the dialog by clicking Close.
Operating Instructions 64 PB610 Panel Builder 600
6. Double click on the Panel Builder 600 icon to start the Panel Builder 600 Suite.
The PB610 Panel Builder 600 opens.
Select your Control Panel type by the following steps.
7. Double click on the Panel Builder 600 icon on the left side
The Property View of the Panel Builder 600 opens on the right side.
Operating Instructions 65 PB610 Panel Builder 600
8. Select Behaviour and open the + of the Project type property.
9. Click Convert Project to open the project wizard dialog and select your Control Panel type.
Protocol Configuration
1. Via the Project View open the configuration of the protocols.
2. Click the + icon to insert a new protocol.
3. Select the protocol type in the pull down menu.
Operating Instructions 66 PB610 Panel Builder 600
4. Adapt the protocol as shown in the picture below.
5. Adapt the IP-Address of your target PLC.
6. Set the port to 1201.
7. Set the protocol type to Tcp/Ip_Level2_Route.
8. Select Motorola as PLC model.
9. To change the protocol properties later use the button on the right side in the column Configuration.
10. For detailed description refer to chapter “ Communication Protocols ”.
Operating Instructions 67 PB610 Panel Builder 600
Tag Import – Work with Tags
1. Double click on the Tags icon in the Project View to open the tag configuration.
2. Press the marked button in the configuration page to import the tags and click
OK.
3. The symbol file is placed in the subfolder for the AC500 CoDeSys files in the project folder of the
Control Builder Plus project. This folder will be packed into the project file when the project is closed.
Operating Instructions 68 PB610 Panel Builder 600
4. Select the symbol file and open it.
5. The accessible tags are shown in the lower part of the tag editor.
6. Mark the tags which you want to import to the Panel Builder project.
7. Click the marked symbol to import the tags.
Operating Instructions 69 PB610 Panel Builder 600
View of tag editor after selection and import of tags
Attach the Tags to Widgets
1. Double click on the page symbol to open a page of your project.
2. Open the widget gallery.
3. Drag and drop a widget to your page. In this example take a numeric field.
Operating Instructions 70 PB610 Panel Builder 600
4. Use the property Value to attach a tag to the widget. Click in the field, press the + button and select
Attach To.
5. Or right click on the tag and use the context menu.
Operating Instructions 71 PB610 Panel Builder 600
6. Select the desired tag from the dialog box and select the authorization for read or read/write access of the tag.
7. Continue in that way for all other tags you want to use.
Download the Project to the Control Panel
1. Select Run/Download or use the marked symbol to start the download dialog.
2. Select your CP600 Control Panel from the pull down list and download the project.
Operating Instructions 72 PB610 Panel Builder 600
Further Help
Select Help/Help Contents.
Operating Instructions 73 PB610 Panel Builder 600
Communication Protocols
ABB Modbus TCP Driver
Various Modbus TCP-capable devices can be connected to the operator panel. To set-up your Modbus
TCP device, please refer to the documentation you have received with the device.
This specific implementation of the Modbus TCP driver provides easy handling of the connection to the
ABB controllers providing specific supports for PLC models and tag import facilities.
The implementation of the protocol operates as a Modbus TCP client only.
Protocol Editor Settings
Add with the button + a driver in the protocol editor and select the protocol called ABB Modbus TCP from the list of available protocols.
The driver configuration dialog is showed in the following figure.
Operating Instructions 74 PB610 Panel Builder 600
Parameter
Alias
Description
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
Ethernet IP address of the controller IP address
Port Allows to change the default port number used by the Modbus TCP driver; it could be useful whenever the communication passes through Routers or Internet gateways where the default port number is already in use
Timeout (ms) Defines the time inserted by the protocol between two retries of the same message in case of missing response from the server device. It is expressed in milliseconds.
Unit ID The Unit ID is rarely used and in most cases can be left zero. The value of the Modbus ID is simply copied into the Unit Identifier field of the Modbus TCP communication frame.
Usually it is used when communicating over Ethernet-to-Serial bridges and is then representing the Slave ID.
PLC Models 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.
PLC Network The protocol allows the connection of multiple controllers to one operator panel. To set-up multiple connections, check PLC network checkbox and enter IP address for all controllers.
Tag Import
This special Modbus driver supports tag import.
The ABB controllers are programmable with a programming tool called Control Builder Plus which is based on the CoDeSys V2.3 soft PLC.
The tag importer supports the CoDeSys export file in “.exp” format.
Operating Instructions 75 PB610 Panel Builder 600
In the CoDeSys programming software the export command is available under the Project menu as shown in the following figure.
1. Select the driver in the PB610 Panel Builder 600 Studio tag editor and click on the Import tag button to start the importer.
2. Locate the “exp” file and confirm with
OK.
The tags present in the exported document are listed in the tag dictionary from where they can be directly added to the project using the add tags button as shown in the following figure.
Operating Instructions 76 PB610 Panel Builder 600
Aliasing Tag Names in Network Configurations
Tag names must be unique at project level; it often happens that the same tag names are to be used for different controller nodes (for example when the HMI is connected to two devices that are running the same application). Since tags include also the identification of the node and tag editor does not support duplicate tag names, the import facility in tag editor has an aliasing feature that can automatically add a prefix to imported tags. With this feature tag names can be done unique at project level.
The feature works when importing tags for a specific protocol. Each tag name will be prefixed with the string specified by the “Alias”. As shown in the figure below, 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 when tags can be imported. 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 to the tag name only at the moment the tags are imported using tag editor. 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 imported again, all tags will be imported again with the new prefix string.
Operating Instructions 77 PB610 Panel Builder 600
Special Data Types
The ABB Modbus TCP driver provides one special data type called "IP Override".
The IP Override allows changing at runtime the IP address of the target controller you want to connect.
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.
If the IP Override is set to 0.0.0.0, all the communication with the node is stopped, no request frames are generated anymore.
If the IP Override has a value 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.
In case the panel has been configured to access to a network of controllers, each node has its own override variable.
The IP Override values assigned at runtime are not retained among power cycles.
NOTE
Operating Instructions 78 PB610 Panel Builder 600
Communication Status
The current communication status can be displayed using the dedicated system variables. Please refer to the chapter “system variables” about available types and their use.
The codes supported for this communication driver are:
Error
NAK
Notes
Returned in case the controller replies with a not acknowledge.
Timeout
General Error
Returned when a request is not replied within the specified timeout period; ensure the controller is connected and properly configured to get network access.
Invalid response The panel did receive from the controller a response, but its format or its contents is not as expected; ensure the data programmed in the project are consistent with the controller resources.
Error cannot be identified; should never be reported; contact technical support.
Implementation Details
This Modbus TCP implementation supports only a subset of the standard Modbus TCP function codes.
The supported function codes are listed in the table below.
03
04
05
06
16
Code Function
01
02
Read Coil Status
Read Input Status
Read Holding Registers
Read Input Registers
Description
Read multiple bits in the CP600 coil area.
Read the ON/OFF status of the discrete inputs (1x reference) in the slave.
Read multiple registers.
Read the binary contents of input registers (3x reference) in the slave.
Force Single Coil
Preset Single Register
Force a single coil to either ON or OFF.
Preset a value in a register.
Preset Multiple Registers Preset value in multiple registers.
Operating Instructions 79 PB610 Panel Builder 600
ABB Modbus RTU Driver
The operator panels 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 PLC models and tag import facilities.
Protocol Editor Settings
Add with the button + a driver in the protocol editor and select the protocol called ABB Modbus RTU from the list of available protocols.
The driver configuration dialog is shown in the following figure.
Driver configuration dialog.
Operating Instructions 80 PB610 Panel Builder 600
Parameter
Alias
Description
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.
Node ID
Delay (ms)
Modbus node of the slave device.
Timeout (ms) Defines the time inserted by the protocol between two retries of the same message in case of missing response from the server device. It is expressed in milliseconds.
This parameter defines a fixed time delay in the communication between the end of the last received frame and the starting of a new request; when set to 0, the new request will be issued as soon as the internal system is able to reschedule it.
Num of repeats This parameter defines the number of times a certain message will be sent to the controller before reporting the communication error status.
A value of 1 for the parameter “No of repeats” means that the Control Panel will eventually report the communication error status if the response to the first request packet is not correct.
Transmission
Mode
RTU is standard transmission mode for most PLC models. Some PLC models, e.g. Pluto
Safety PLC, require the transmission mode ASCII.
PLC Models The list allows to select 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.
PLC Network The protocol allows the connection of multiple controllers to one operator panel. To setup multiple connections, check PLC network checkbox and enter the node ID per each slave you need to access.
Operating Instructions 81 PB610 Panel Builder 600
The Comm... button displays the communication parameters setup dialog.
Parameter
Port
Baud rate, Parity,
Data bits, Stop bits
Mode
Description
Serial port selection. COM1 is the CP600 PLC port, COM2 is the PC/printer port.
Communication parameters for the serial line.
Serial port mode. Can be selected between: RS-232, RS-485 (2 wires), RS-422
(4 wires).
Tag Import
This special Modbus driver supports tag import.
The ABB controllers are programmable with a programming tool called Control Builder Plus which is based on the CoDeSys V2.3 soft PLC.
The tag importer supports the CoDeSys export file in “exp” format.
In the CoDeSys programming software the Export command is available under the Project menu as shown in the following figure.
Operating Instructions 82 PB610 Panel Builder 600
1. In the tag editor select the driver and click on the Import tag button to start the importer.
2. Locate the “exp” file and confirm with OK.
The tags present in the exported document are listed in the tag dictionary from where they can be directly added to the project using the
add tags button as shown in the following figure.
Aliasing Tag Names in Network Configurations
Tag names must be unique at project level; it often happens that the same tag names are to be used for different controller nodes (for example when the HMI is connected to two devices that are running the same application). Since tags include also the identification of the node and tag editor does not support duplicate tag names, the import facility in tag editor has an aliasing feature that can automatically add a prefix to imported tags. With this feature tag names can be done unique at project level.
The feature works when importing tags for a specific protocol. Each tag name will be prefixed with the string specified by the “Alias”. As shown in the figure below, 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.
Operating Instructions 83 PB610 Panel Builder 600
NOTE
Aliasing tag names is only available when tags can be imported. 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 to the tag name only at the moment the tags are imported using tag editor. 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 imported again, all tags will be imported again with the new prefix string.
Special Data Types
The ABB Modbus RTU driver provides one special data type called "Node Override ID".
The Node Override allows changing at runtime the target controller ID. This memory type is an unsigned byte.
The Node Override ID is initialized with the value of the controller ID specified in the project at programming time.
If the Node Override is set to 0, all the communication with the slave is stopped, no request frames are generated anymore.
If the Node Override has a value different from 0, it is interpreted as Node ID Override and the target ID address is replaced runtime with the new value.
In case the panel has been configured to access to a network of controllers, each node has its own override variable.
Operating Instructions 84 PB610 Panel Builder 600
NOTE
The Node Override values assigned at runtime are not retained among power cycles.
Communication Status
The current communication status can be displayed using the dedicated system variables. Please refer to
the chapter System Variables about available types and their use.
The codes supported for this communication driver are:
Error
NAK
Timeout
Line Error
Notes
Returned in case the controller replies with a not acknowledge.
Returned when a request is not replied within the specified timeout period; ensure the controller is connected and properly configured to get network access.
Returned when an error on the communication parameter setup is detected (parity, baud rate, data bits, stop bits). Ensure the communication parameter settings of the controller is compatible with panel communication setup.
Invalid response The Control Panel did receive from the controller a response, but its format or its contents is not as expected; ensure the data programmed in the project are consistent with the controller resources.
General Error Error cannot be identified. Should never be reported. Contact technical support.
Implementation Details
This Modbus RTU implementation supports only a subset of the standard Modbus function codes.
The supported function codes are listed in the table below.
Operating Instructions 85 PB610 Panel Builder 600
Code Function
01
02
03
04
Read Coil Status
Read Input Status
Description
Read multiple bits.
Read the ON/OFF status of the discrete inputs (1 x reference) in the slave.
Read Holding Registers Read multiple registers.
Read Input Registers Read the binary contents of input registers (3 x reference) in the slave.
05
06
Force Single Coil
Preset Single Register
Force a single coil to either ON or OFF.
Preset a value in a register.
16 Preset Multiple Registers Preset value in multiple registers.
Communication speed with controllers is supported up to 57600 baud.
Floating point data format is compliant to the IEEE standard.
ABB CoDeSys Ethernet Driver
The ABB CoDeSys ETH 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
Note that changes in the controller protocol or hardware, which may interfere with the functionality of this driver, may have occurred since this documentation was created.
Therefore, always test and verify the functionality of the application. To accommodate developments in the controller protocol and hardware, drivers are continuously updated.
Accordingly, always ensure that the latest driver is used in the application.
Protocol Editor Settings
Add with the button + a driver in the protocol editor and select the protocol called ABB CoDeSys ETH from the list of available protocols.
The ABB CoDeSys ETH driver supports three different protocol types:
Tcp/Ip Level2 Route
ABB Tcp/Ip Level2 Route AC
Tcp/Ip
Operating Instructions 86 PB610 Panel Builder 600
Select the protocol type from the dedicated combo box in the dialog.
Some of the parameters of the dialog are common to the different protocol types, some others are specific.
The common parameters are the following:
Parameter
Alias
IP address
Port
Block Size
Timeout
PLC Model
Description
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.
Ethernet IP address of the controller.
This parameter allows changing the port number used for the communication. Default value for this parameter is set to 1200 for ABB drivers. For AC500 and 3S drivers select port 1201.
Enter the max. block size supported by your controller.
The number of milliseconds between retries when communication fails.
Defines the 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 “big-endian”.
Protocol type Shows a list with the available protocol variants. Please make sure you check what protocol variant is supported by the CoDeSys runtime you want to connect.
PLC Network The protocol allows the connection of multiple controllers to one operator panel. To set-up multiple connections, check Access Multiple PLC’s checkbox and enter IP address for all controllers.
Operating Instructions 87 PB610 Panel Builder 600
The Tcp/Ip protocol type corresponds to the 3S Level 4 driver. It does require additional setup except for the common parameters.
The Tcp/IP Level2 Route protocol type corresponds to the standard 3S Level 2 route driver. For this protocol type two additional parameters are requested:
Operating Instructions 88 PB610 Panel Builder 600
Parameter
Source address (SrcAdr)
& Destination address
Description
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 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 proper settings of the following additional parameters:
Routing Levels
Coupler (Level 1)
Channel (Level 1)
Address (Level 1)
Coupler (Level 2)
Channel (Level 2)
Address (Level 2)
For detailed information refer to the AC500 and Control Builder Plus documentation, chapter
“Programming Interfaces to the AC500 used by the Control Builder Plus”.
CoDeSys Software Settings
When creating the project in CoDeSys, the checkbox
Download symbol file (Target/Settings/General) must be activated.
Operating Instructions 89 PB610 Panel Builder 600
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.
Tag Import
When configuring the PLC using the manufacturer’s configuration software, make sure to enable symbol
file creation (file with .SYM extension). It can be done under the CoDeSys programming software as follows:
1. Select Project/Option/Symbol configuration and activate the check box Dump symbol entries.
Operating Instructions 90 PB610 Panel Builder 600
2. Click on the button Configure symbol file.
3. Make sure the Export variables of object check box is marked. We recommend to un-check the check box and mark it again to be sure about the proper settings.
4. Select the driver in the PB610 Panel Builder 600 Studio tag editor and click on the Import tag button to start the importer.
5. Locate the “sym” file and confirm with OK button.
The tags present in the exported document are listed in the tag dictionary from where they can be directly added to the project using the add tags button as shown in the following figure.
Aliasing Tag Names in Network Configurations
Tag names must be unique at project level; it often happens that the same tag names are to be used for different controller nodes (for example when the HMI is connected to two devices that are running the same application). Since tags include also the identification of the node and tag editor does not support duplicate tag names, the import facility in tag editor has an aliasing feature that can automatically add a prefix to imported tags. With this feature tag names can be done unique at project level.
The feature works when importing tags for a specific protocol. Each tag name will be prefixed with the string specified by the “Alias”. As shown in the figure below, 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.
Operating Instructions 91 PB610 Panel Builder 600
NOTE
Aliasing tag names is only available when tags can be imported. 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 to the tag name only at the moment the tags are imported using tag editor. 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 imported again, all tags will be imported again with the new prefix string.
Operating Instructions 92 PB610 Panel Builder 600
Data Types
The import module supports variables of standard data types and user defined data types.
Standard Data Types
The following data types in the CoDeSys programming tool are considered as standard data types by the import module:
BOOL
WORD
DWORD
INT
UINT
UDINT
DINT
STRING
REAL
TIME
DATE & TIME and a
1-dimensional ARRAY of the types above.
The 64-bit data types LWORD, LINT and LREAL are not supported.
The string length of a STRING variable in the 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.
Special Data Types
The ABB CoDeSys Ethernet driver provides one special data type called "Node Override IP".
The Node Override IP allows changing at runtime the IP address of the target controller you want to connect. 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.
If the Node Override is set to 0.0.0.0, the communication with the slave is stopped, no request frames are generated anymore.
If the Node Override has a value 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.
In case the panel has been configured to access to a network of controllers, each node has its own override variable.
The Node Override values assigned at runtime are not retained through power cycles
NOTE
Operating Instructions 93 PB610 Panel Builder 600
Limitations
CoDeSys Level 4 is not supported. The max. block size is 1024.
Communication Status
The current communication status can be displayed using the dedicated system variables. Please refer to
the chapter System Variables about available types and their use.
The codes supported for this communication driver are:
Error
Symbol file not present
“tag” not present in symbol file
Time out on Acknowledge
Time out on last Acknowledge
Time out on data receiving
Connection timeout
Notes
Check symbol file and download again the PLC program.
Check if the tag is present in the PLC project.
Controller didn’t send acknowledge.
Controller didn’t send last acknowledge.
Controlled does not reply with data.
Device not connected.
Operating Instructions 94 PB610 Panel Builder 600
ABB CoDeSys Serial Driver
The ABB CoDeSys Serial communication driver 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
Note that changes in the controller protocol or hardware, which may interfere with the functionality of this driver, may have occurred since this documentation was created.
Therefore, always test and verify the functionality of the application. To accommodate developments in the controller protocol and hardware, drivers are continuously updated.
Accordingly, always ensure that the latest driver is used in the application.
Protocol Editor Settings
Add with the button + a driver in the protocol editor and select the protocol called ABB CoDeSys
Serial from the list of available protocols.
The ABB CoDeSys Serial driver supports two different protocol types:
Serial_RS232
ABB_RS232_AC
Operating Instructions 95 PB610 Panel Builder 600
Driver configuration dialog
Parameter
Alias
Description
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.
Block Size Modbus node of the slave device.
Timeout (ms) Defines the time inserted by the protocol between two retries of the same message in case of missing response from the server device. It is expressed in milliseconds.
Delay (ms) This parameter defines a fixed time delay in the communication between the end of the last received frame and the starting of a new request; when set to 0, the new request will be issued as soon as the internal system is able to reschedule it.
Num of repeats This parameter defines the number of times a certain message will be sent to the controller before reporting the communication error status.
A value of 1 for the parameter “No of repeats” means that the Control Panel will eventually report the communication error status if the response to the first request packet is not correct.
PLC Models The list allows to select 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.
Comm… Gives access to the serial port configuration parameters as shown in the figure below where you can see the Comm Parameter Dialog.
PLC Network The protocol allows the connection of multiple controllers to one operator panel. To setup multiple connections, check PLC network checkbox and enter the node ID per each slave you need to access.
Operating Instructions 96 PB610 Panel Builder 600
The Comm... button displays the communication parameters setup dialog.
Parameter
Port
Baud rate, Parity,
Data bits, Stop bits
Mode
Description
Serial port selection. COM1 is the CP600 PLC port, COM2 is the PC/printer port.
Communication parameters for the serial line.
Serial port mode. Can be selected between: RS-232, RS-485 (2 wires), RS-422
(4 wires).
The parameter Parity has to be set to “none” for AC500!
NOTE
The Serial_RS232 protocol type corresponds to the standard 3S driver.
Operating Instructions 97 PB610 Panel Builder 600
The ABB_RS232_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 proper settings of the following additional parameters:
Routing Levels
Coupler (Level 1)
Channel (Level 1)
Address (Level 1)
Coupler (Level 2)
Channel (Level 2)
Address (Level 2)
For detailed information we refer to the AC500 and Control Builder Plus documentation, chapter
“Programming Interfaces to the AC500 used by the Control Builder Plus”.
CoDeSys Software Settings
When creating the project in CoDeSys, the option
Download symbol file (under
Target/Settings/General) must be checked.
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.
Operating Instructions 98 PB610 Panel Builder 600
Tag Import
When configuring the PLC using the manufacturer’s configuration software, make sure to enable symbol
file creation (file with .SYM extension). It can be done under the CoDeSys programming software as follows:
1. Select Project/Option/Symbol configuration and activate the check box Dump symbol entries.
2. Click on button
Configure symbol file.
3. Make sure the Export variables of object check box is marked. We recommend to un-check the check box and mark it again to be sure about the proper settings.
4. Select the driver in the PB610 Panel Builder 600 Studio tag editor and click on the Import tag button to start the importer.
5. Locate the “sym” file and confirm with OK button.
The tags present in the exported document are listed in the tag dictionary from where they can be directly added to the project using the add tags button as shown in the following figure.
Operating Instructions 99 PB610 Panel Builder 600
Aliasing Tag Names in Network Configurations
Tag names must be unique at project level; it often happens that the same tag names are to be used for different controller nodes (for example when the HMI is connected to two devices that are running the same application). Since tags include also the identification of the node and tag editor does not support duplicate tag names, the import facility in tag editor has an aliasing feature that can automatically add a prefix to imported tags. With this feature tag names can be done unique at project level.
The feature works when importing tags for a specific protocol. Each tag name will be prefixed with the string specified by the “Alias”. As shown in the figure below, 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.
Operating Instructions 100 PB610 Panel Builder 600
NOTE
Aliasing tag names is only available when tags can be imported. 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 to the tag name only at the moment the tags are imported using tag editor. 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 imported again, all tags will be imported again with the new prefix string.
Operating Instructions 101 PB610 Panel Builder 600
Data Types
The import module supports variables of standard data types and user defined data types.
Standard Data Types
The following data types in the CoDeSys programming tool are considered as standard data types by the import module:
BOOL
WORD
DWORD
INT
UINT
UDINT
DINT
STRING
REAL
TIME
DATE & TIME and a
1-dimensional ARRAY of the types above.
The 64-bit data types LWORD, LINT and LREAL are not supported.
The string length of a STRING variable in the 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.
Limitations
This protocol does not support AC500 FW version earlier than V2.0.
NOTE
Communication Status
The current communication status can be displayed using the dedicated system variables. Please refer to
the chapter System Variables about available types and their use.
The codes supported for this communication driver are:
Error
Symbol file not present
“tag” not present in symbol file
Time out on Acknowledge
Time out on last Acknowledge
Time out on data receiving
Connection timeout
Notes
Check symbol file and download again the PLC program.
Check if the tag is present in the PLC project.
Controller didn’t send acknowledge.
Controller didn’t send last acknowledge.
Controlled does not reply with data.
Device not connected.
Operating Instructions 102 PB610 Panel Builder 600
ABB Mint Controller HCP Driver
This communication protocol allows the panels to connect to the ABB motion and servo drive devices using the HCP and HCP2 communication protocols.
Settings
Parameter
Node ID
Description
Node ID assigned to the controller device.
Protocol Type Protocol selection; two protocols are available: HCP and HCP2; select the one requested by the specific device
Timeout (ms) Defines the time inserted by the protocol between two retries of the same message in case of missing response from the server device. It is expressed in milliseconds.
Retry count This parameter defines the number of times a certain message will be sent to the controller before reporting the communication error status.
A value of 1 for the parameter “No of repeats” means that the Control Panel will eventually report the communication error status if the response to the first request packet is not correct.
PLC Models Controller model list.
PLC Network The protocol allows the connection of multiple controllers to one operator panel. To setup multiple connections, check PLC network checkbox and enter the node ID per each slave you need to access.
Operating Instructions 103 PB610 Panel Builder 600
Parameter
Port
Baud rate, Parity,
Data bits, Stop bits
Mode
Description
Serial port selection. COM1 is the CP600 PLC port, COM2 is the PC/printer port
Communication parameters for the serial line.
Serial port mode. Can be selected between: RS-232, RS-485 (2 wires), RS-422
(4 wires).
Operating Instructions 104 PB610 Panel Builder 600
Data Types
The ABB Mint Controller HCP driver provides the support for two memory types: Comms and
CommsInteger.
The two memory types are actually referring to the same physical memory area in the Mint Controller.
The Comms memory type should only be used with floating point values (and the Mint program on the
ABB Controller should use COMMS to access this data).
The CommsInteger memory type accesses the same locations on the Mint controller but allows a variety of integer-based data types to be selected as shown in figure below.
If the Mint controller program uses the Mint COMMS 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).
If the Mint controller program uses COMMSINTEGER for a tag setup to use the CommsInteger memory type then the value is precise for the full 32 bits.
Operating Instructions 105 PB610 Panel Builder 600
Communication Status
The current communication status can be displayed using the dedicated system variables. Please refer to the User Manual for further information about available system variables and their use.
The codes supported for this communication driver are:
Error
NAK
Timeout
Line Error
Notes
Returned in case the controller replies with a not acknowledge.
Returned when a request is not replied within the specified timeout period; ensure the controller is connected and properly configured to get network access.
Returned when an error on the communication parameter setup is detected (parity, baud rate, data bits, stop bits). Ensure the communication parameter settings of the controller is compatible with panel communication setup.
Invalid response The Control Panel did receive from the controller a response, but its format or its contents is not as expected; ensure the data programmed in the project are consistent with the controller resources.
General Error Error cannot be identified. Should never be reported. Contact technical support.
Operating Instructions 106 PB610 Panel Builder 600
ABB Robot Controller IRC5 driver
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).
Communication with the IRC5 robot controller is over a network, so the IRC5 robot controller must be
•
• available via TCP/IP.
The Communication driver cannot meet any hard real-time demands for a number of reasons:
It executes on a non-real-time operating system.
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.
Please note that changes in the controller protocol or hardware, which may interfere with the functionality of this driver, may have occurred since this documentation was created. Therefore, always test and verify the functionality of the application. To accommodate developments in the controller protocol and hardware, drivers are continuously updated.
Accordingly, always ensure that the latest driver is used in the application.
Safety of personnel
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. Therefore, it is important that all safety regulations are followed when entering safeguarded space.
Before beginning work with the robot, make sure you are familiar with the safety regulations as described in the IRC5 operating manuals.
ABB IRC5 Communication Driver
HMI devices can be connected to ABB robot networks as clients using this communication driver.
This implementation of the IRC5 driver provides easy handling of the connections to the ABB robot controllers providing specific support for tag import facilities.
The IRC5 driver is supported starting from version PB610 V1.90.0.778
There is a minimum requirement also for the version of operating system running in the HMI (this is normally referenced as BSP version). See in the software user manual to read the BSP version with the System
Settings menu. The minimum requirements are shown in the table.
Products
CP650, CP660, CP675
CP620 … CP635
Change index
B2 or newer
B2 or newer
Date of production
WK10 2013 (1103) or later
WK10 2013 (1103) or later
BSP version
V2.80 or newer
V1.76 or newer
The IP submask of the control panel has to be set to 255.255.255.0. Otherwise the communication to the IRC5 controller does not work.
note
Operating Instructions 107 PB610 Panel Builder 600
Protocol Editor Settings
Add (+) a driver in the Protocol editor and select the protocol called “ABB IRC5” from the list of available protocols.
The driver configuration dialog is shown in next figure.
Alias
IP address
PLC Models
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
Ethernet IP address of the controller
Only one model type is currently available
PLC Network
The protocol allows the connection of one HMI to multiple controllers.
To set-up multiple connections, check “PLC network” checkbox.
In case the HMI needs to be configured to access a network of controllers, check the "PLC Network" check box and configure the network adding the controllers as shown in figure. For each controller you add to the network you will have to specify a unique IP address.
Operating Instructions 108 PB610 Panel Builder 600
Tag Import
This driver supports tag import.
The ABB Robotics controllers programming tool can generate a symbol file with extension “.CFG”. The tag importer expects files in this format.
In Tag Editor select the communication driver and click on the “Import tag” button to start the importer.
Locate the “.CFG” file and confirm.
Operating Instructions 109 PB610 Panel Builder 600
The tags present in the imported file are listed in the tag dictionary from where they can be directly added to the project using the add tags button as shown in next figure.
Aliasing Tag Names in Network Configurations
Tag names must be unique at project level; it often happens that the same tag names are to be used for different controller nodes (for example when the HMI is connected to two devices that are running the same application). Since tags include also the identification of the node and Tag Editor does not support duplicate tag names, the import facility in Tag Editor has an aliasing feature that can automatically add a prefix to imported tags. With this feature tag names can be done unique at project level.
The feature works when importing tags for a specific protocol. Each tag name will be prefixed with the string specified by the “Alias”. As shown in the figure below, 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.
Operating Instructions 110 PB610 Panel Builder 600
note
Aliasing tag names is only available when tags can be imported. 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 to the tag name only at the moment the tags are imported using
Tag Editor. 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 imported again, all tags will be imported again with the new prefix string.
Operating Instructions 111 PB610 Panel Builder 600
Data Types
•
•
•
The import module supports variables of the following standard data types. boolean unsignedInt float
note
In this first version of the IRC5 robot controller driver only IO signals can be used and only output signals of the robot controller can be modified by the CP600 panel. 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.
Implementation Details
An IRC5 robot controller system uses input and output signals to control the process. Signals can be of digital, analog, or group signal type. Such IO signals are accessible using the PanelBuilder tool.
Signal changes in the robot system are often significant, and there are many scenarios where end-users of the system need notification of signal changes.
In manual mode of the IRC5 controller, a signal value can be modified only if the Access Level of the signal is ALL and the FlexPendant is not connected. If not, the controller has to be in auto mode. To change the access level of a signal, the IRC5 robot controller tools RobotStudio or FlexPendant must be used.
A PanelBuilder application will act as a remote client as comparison with the 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 but this is only available for a remote client in automatic mode.
An advantage of a remote client, on the other hand, is the possibility to monitor and access several robot controllers from one location.
Communication Status
The current communication status can be displayed using the dedicated system variables. Please refer to the chapter “system variables” about available types and their use.
The codes supported for this communication driver are:
Error
Can't find the node x.x.x.x "
I/O signal reading error The panel did receive from the controller a response, but its format or its contents is not as expected; ensure the data programmed in the project are consistent with the controller resources
The panel did receive from the controller a response, but its quality is not I/O signal quality not good
Error requesting mastership
Notes
Returned when a request is not replied within the specified timeout period; ensure the controller is connected and properly configured to get network access good.
The panel didn’t receive from the controller the correct right to write data into the controller
Operating Instructions 112 PB610 Panel Builder 600
CoDeSys V2.3 Ethernet Driver
The CoDeSys communication driver for Ethernet supports communication switch controllers based on the
V2.3 CoDeSys version.
NOTE
Note that changes in the controller protocol or hardware, which may interfere with the functionality of this driver, may have occurred since this documentation was created.
Therefore, always test and verify the functionality of the application. To accommodate developments in the controller protocol and hardware, drivers are continuously updated.
Accordingly, always ensure that the latest driver is used in the application.
Protocol Editor Settings
Add with the button + a driver in the protocol editor and select the protocol called CoDeSys ETH from the list of available protocols.
The CoDeSys ETH driver supports three different protocol types:
Level2
Level2 Route
Level4
Operating Instructions 113 PB610 Panel Builder 600
Select the protocol type from the dedicated combo box in the dialog.
Parameter
Alias
IP address
Port
PLC Model
Block Size
Description
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.
Ethernet IP address of the controller.
This parameter allows changing the port number used for the communication. Default value for this parameter is set to 1200 and it corresponds to the default setting of
CoDeSys-based controllers.
Defines the byte order that will be used by the communication driver when sending communication frames to the PLC.
Enter the max. block size supported by your controller (limit is 1024 KB )
Protocol type Shows a list with the available protocol variants. Please make sure you check what protocol variant is supported by the CoDeSys runtime you want to connect.
Timeout The number of milliseconds between retries when communication fails.
Source
Address &
Destination
Address
Source and Destination address are available only when TCP/IP Level 2 route is selected in Controller Setup. The destination is the node of the PLC and allows the protocol to reads variable 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 of it have the
Ethernet interface.
PLC Network The protocol allows the connection of multiple controllers to one operator panel. To setup multiple connections, check Access Multiple PLC’s checkbox and enter IP address for all controllers.
Operating Instructions 114 PB610 Panel Builder 600
NOTE
The CoDeSys Ethernet driver supports the connections to multiple controllers starting from version V1.60.
NOTE
The CoDeSys ETH driver is the best choice also when creating projects for the internal controller iPLC CoDeSys. To use the CoDeSys ETH driver for communication with iPLC it is enough to configure the IP address of the PLC as localhost (127.0.0.1). The iPLC CoDeSys supports communication with CoDeSys ETH driver with symbol based support (see next chapter) starting from V1.55 and above.
Operating Instructions 115 PB610 Panel Builder 600
CoDeSys Software Settings
When creating the project in CoDeSys, the checkbox Download symbol file (under
Target/Settings/General) must be checked.
NOTE
CoDeSys Ethernet driver supports the automatic symbol file (SDB) upload from controller; any change in the tag offset due to new compilation on PLC software side does not require a symbol file re-import. Tag file has to be re-imported only in case of tag rename or addition of new tags.
Tag Import
When configuring PLC using the manufacturer’s configuration software, make sure to enable symbol file
creation (file with .SYM extension). It can be done under the CoDeSys programming software as follows:
1. Select Project/Option/Symbol configuration and activate the check box Dump symbol.
Operating Instructions 116 PB610 Panel Builder 600
2. Click on the button Configure symbol file.
3. Make sure the Export variables of object check box is marked. We recommend to un-check the check box and mark it again to be sure about the proper settings.
4. Select the driver in the Studio tag editor and click on the Import tag button to start the importer.
5. Locate the “sym” file and confirm with OK button.
The tags present in the exported document are listed in the tag dictionary from where they can be directly added to the project using the add tags button as shown in the following figure.
Operating Instructions 117 PB610 Panel Builder 600
Aliasing Tag Names in Network Configurations
Tag names must be unique at project level; it often happens that the same tag names are to be used for different controller nodes (for example when the HMI is connected to two devices that are running the same application). Since tags include also the identification of the node and tag editor does not support duplicate tag names, the import facility in tag editor has an aliasing feature that can automatically add a prefix to imported tags. With this feature tag names can be done unique at project level.
The feature works when importing tags for a specific protocol. Each tag name will be prefixed with the string specified by the “Alias”. As shown in the figure below, 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 when tags can be imported. 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 to the tag name only at the moment the tags are imported using tag editor. 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 imported again, all tags will be imported again with the new prefix string.
Operating Instructions 118 PB610 Panel Builder 600
Tag Array
Tag arrays are split into individual elements and one tag for each element is created. The figure below shows an example of one array with 10 elements.
NOTE
When Export array entries is set, a tag for each element is created and exported into the
SYM file. The entire tag list is automatically imported into tag editor.
Operating Instructions 119 PB610 Panel Builder 600
The amount of tags can be reduced and only one tag for each one array can be created by removing the checkbox Export array entries, see figure below.
NOTE
When Export array entries is not set, only one tag is created and exported into the SYM file. The array will not be automatically imported in tag editor and tags need to be manually configured in tag editor.
Operating Instructions 120 PB610 Panel Builder 600
All tag elements can be referenced in the editor using TagIndex in the Attach to Tag dialog.
Data Types
The import module supports variables of standard data types and user defined data types.
Standard Data Types
The following data types in the CoDeSys programming tool are considered standard data types by the import module:
BOOL
WORD
DWORD
INT
UINT
UDINT
DINT
STRING
REAL
TIME
DATE & TIME and a
1-dimensional ARRAY of the types above.
Operating Instructions 121 PB610 Panel Builder 600
The 64-bit data types LWORD, LINT and LREAL are not supported.
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.
Special Data Types
The CoDeSys ETH driver provides one special data type called "IP Override".
The IP Override IP allows changing at runtime the IP address of the target controller you want to connect.
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.
If the IP Override is set to 0.0.0.0, all the communication with the node is stopped, no request frames are generated anymore.
If the IP Override has a value 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.
In case the panel has been configured to access to a network of controllers, each node has its own override variable.
The IP Override values assigned at runtime are not retained through power cycles.
NOTE
Limitations
Max. block size is 1024 byte.
Communication Status
The current communication status can be displayed using the dedicated system variables. Please refer to the User Manual for further information about available system variables and their use.
Operating Instructions 122 PB610 Panel Builder 600
The codes supported for this communication driver are:
Error
Symbol file not present
“tag” not present in symbol files
Time out on Acknowledge
Time out on last Acknowledge
Time out on data receiving
Connection timeout
Notes
Check symbol file and download again the PLC program.
Check if the tag is present in the PLC project.
Controller didn’t send acknowledge.
Controller didn’t send last acknowledge.
Controlled does not reply with data.
Device not connected.
Modbus TCP Server Driver
The Modbus TCP server communication driver lets you connect the panel as a server in a Modbus TCP network. It is possible for Modbus TCP clients to connect them to multiple HMI panels acting as servers.
The information exchange will use standard Modbus messages over TCP/IP.
This approach will also offer an interesting way to connect the HMI panels to SCADA systems through the universally supported Modbus TCP communication protocol.
Principle of Operation
This communication driver will implement a Modbus TCP server unit in HMI device. A subset of the complete range of Modbus function codes will be supported. The available function codes will allow the transfer of data between clients on the TCP network and the server.
The diagram in the following figure shows the system architecture.
The panel is actually simulating the communication interface of a PLC: it has two data types
(coils and registers) that are respectively Boolean and 16 bit integers.
NOTE
The panel will 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.
Modbus/TCP Host
Modbus
Client
Modbus/TCP Network
Modbus
Server
Modbus
Server
Modbus
Server
Registers
Coils
System Architecture
Operating Instructions
Registers
Coils
123
Registers
Coils
PB610 Panel Builder 600
Protocol Editor Settings
Parameter
Port
Description
By default, the Modbus TCP protocol uses port 502 for communication with the nodes in the network. Unless your network uses a different port you should leave the port setting to the default value of 502 otherwise set it to the value expected by your Modbus TCP network.
PLC Models The controller setup dialog box allows you to select between two different flavours of
Modbus TCP. You can select the flavour most appropriate for your needs. The standard
modbus model type implements a holding register range of between 400001 and 401098 and an output coils range of between 1 and 9998. The zero based modbus model type, on the other hand, implements a holding register range of between 400000 and 401097 and an output coils range of between 0 and 9997. Please note that the address range used in the Modbus frames will always be respectively between 0 and 1097 for the holding registers and between 0 and 9997 for coils.
Communication Status
The panel is a server station in the Modbus TCP network. The current implementation of the protocol will not report any communication error code, unless the standard communication error codes related to the proper driver loading.
Operating Instructions 124 PB610 Panel Builder 600
Implementation Details
This Modbus TCP server implementation supports only a subset of the standard Modbus function codes.
Only the function codes necessary for the data exchange between the HMI and a Modbus TCP client have been implemented.
The supported function codes are listed in the table below.
Code Function
01 Read Coil Status
02
03
04
05
Read Input Status
Read Input Registers
Force Single Coil
Description
Reads multiple bits in the panel coil area.
Reads multiple bits in the panel coil area.
Read Holding Registers Read multiple panel registers.
Read multiple panel registers..
Force a single panel coil to either ON or OFF.
06
15
Preset Single Register
Force Multiple Coils
Preset a value in a panel register.
Force multiple panel coils to either ON or OFF
16 Preset Multiple Registers Preset value in multiple panel registers.
The panel will return the exception code 01 (illegal function) if the function code received in the query is not supported.
The amount of memory available in the panel is as follows:
Data Type
Coils
Type
Bit
Range
0 – 9997
Registers Word 0 – 1097
The panel protocol will return the exception code 02 (illegal data address) if the data address received in the query exceeds the predefined data ranges.
NOTE
Both PLC models available the Read Coil Status and Read Input Status function codes both access the same coil memory area in the panel memory. Also, the Read Holding Registers and Read Input Registers function codes both access the same register area in the panel memory.
NOTE
A single panel Modbus TCP server can only support a maximum of 3 concurrent connections. This means that up to 3 Clients could be connected to a panel Modbus TCP server at the same time. However, a 4th client, should it attempt to connect while the other 3 clients are connected, will be unable to do so.
Modbus RTU Server Driver
The Modbus RTU server communication driver lets you connect the panel as a slave in a Modbus RTU network. It is possible to connect multiple HMI panels to one Modbus master controller. The information exchange will use standard Modbus messages.
This approach will also offer an interesting way to connect the HMI panels to SCADA systems through the universally supported Modbus RTU communication protocol.
Operating Instructions 125 PB610 Panel Builder 600
Principle of Operation
This communication driver will implement a Modbus RTU slave unit in the HMI device. A subset of the complete range of Modbus function codes will be supported. The available function codes will allow the transfer of data between the master and the slave.
The diagram in the figure shows the system architecture.
The HMI is actually simulating the communication interface of a PLC: it has two data types
(coils and registers) that are respectively Boolean and 16 bit integers.
NOTE
The panel will always access data in its internal memory. Data can be transferred to and from the Modbus master only on initiative of the master itself.
Modbus Master
CP600
Registers
Coils
Modbus Network
CP600
Registers
Coils
Operating Instructions 126 PB610 Panel Builder 600
Protocol Editor Settings
Parameter
Modbus ID
PLC Models
Description
The HMI device is a slave in the network and will exchange data with a single master controller. Every panel in the network must be assigned its own slave ID.
PLC communication parameters must be set according to the values programmed in the master controller.
The controller setup dialog box allows you to select between two different flavours of
Modbus addressing. You can select the flavour most appropriate for your needs.
The standard modbus model type implements a holding register range of between
400001 and 402048 and an output coils range of between 1 and 2048. The zero
based modbus model type, on the other hand, implements a holding register range of between 400000 and 402047 and an output coils range of between 0 and 2047.
Please note that the address range used in the Modbus frames will always be respectively between 0 and 1097 for the holding registers and between 0 and 9997 for coils.
Operating Instructions 127 PB610 Panel Builder 600
Parameter
Uart
Baud rate, Parity,
Data bits, Stop bits
Mode
Description
Serial port selection. COM1 is the HMI PLC port, COM2 is the PC/printer port.
Communication parameters for the serial line.
Serial port mode. Can be selected between: RS-232, RS-485 (2 wires), RS-422
(4 wires).
Communication Status
The actual communication status can be displayed using the dedicated system variables. Please refer to the manual for further information about available system variables and their use.
This communication protocol acts as server and does not return any specific protocol error message.
Implementation Details
This Modbus RTU slave implementation supports only a subset of the standard Modbus function codes.
Only the function codes necessary for the data exchange between the panel and the Modbus master have been implemented.
The supported function codes are listed in the table below.
15
16
17
Code Function
01 Read Coil Status
03
05
Read Holding Registers
Force Single Coil
06
08
Description
Read multiple bits in the panel coil area.
Read multiple panel registers.
Force a single panel coil to either ON or OFF.
Preset Single Register Preset a value in a panel register.
Loopback Diagnostic Test Only sub function 00 (return query data) is supported.
Force Multiple Coils
Preset Multiple Registers
Report Slave ID
Force multiple panel coils to either ON or OFF.
Preset value in multiple panel registers.
Returns some diagnostic information of the controller present at the slave address.
The HMI protocol will return the exception code 01 (illegal function) if the function code received in the query is not supported.
The HMI protocol will return the exception code 03 (illegal data value) if a sub function other than 00 is specified for function 08.
The amount of memory available in the HMI device is as follows:
Data Type
Coils
Type
Bit
Range
0 – 2047
Registers Word 0 – 2047
The HMI protocol will return the exception code 02 (illegal data address) if the data address received in the query exceeds the predefined data ranges.
Operating Instructions 128 PB610 Panel Builder 600
Modbus TCP Driver
Various Modbus TCP-capable devices can be connected to the operator panel. To set-up your Modbus
TCP device, please refer to the documentation you have received with the device.
The HMI protocol identifies the Modbus TCP devices using their IP addresses. You should take note of these addresses as you assign them because you will need them later in the set-up phase of the user interface 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. Too slow communication between the panel and the Modbus TCP device may result in low display update rate.
The implementation of the protocol operates as a Modbus TCP client only.
The HMI Modbus TCP protocol uses the standard port number 502 as the destination port.
The HMI Modbus TCP protocol supports the standard commonly referred as “Ethernet II”.
Protocol Editor Settings
Add with the button + a driver in the protocol editor and select the protocol called Modbus TCP from the list of available protocols.
The driver configuration dialog is shown in the following figure.
Operating Instructions 129 PB610 Panel Builder 600
Parameter
Alias
IP address
Port
Timeout (ms)
Modbus ID
Max read block
Preset Function
PLC Models
PLC Network
Description
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.
Ethernet IP address of the controller.
Allows to change the default port number used by the Modbus TCP driver; it could be useful whenever the communication passes through routers or
Internet gateways where the default port number is already in use.
Defines the time inserted by the protocol between two retries of the same message in case of missing response from the server device. It is expressed in milliseconds.
The Modbus ID is rarely used and in most cases can be left zero. The value of the Modbus ID is simply copied into the unit identifier field of the Modbus TCP communication frame. Usually it is used when communicating over Ethernetto-Serial bridges and is then representing the slave ID.
Maximum length in bytes of a data block request.
Specifies what Modbus function will be used for write operations to the holding registers data type. The user can select between the function 06
(preset single register) and function 16 (preset multiple registers).
If the Modbus function 06 is selected, the protocol will always use function 06 to write to the controller, even to write multiple consecutive registers.
If the Modbus 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 Byte
Count parameter of the query is set to two. Using function 16 may result in higher communication performance.
Two PLC models are available. The Modicon modbus model has an addressing space that starts from offsets 1 for all the memory types. The
Generic modbus model has an addressing space that starts from offset 0 for all the memory types.
The protocol allows the connection of multiple controllers to one operator panel. To set-up multiple connections, check PLC network checkbox and enter IP Address for all controllers.
Operating Instructions 130 PB610 Panel Builder 600
Tag Import
The Modbus TCP driver supports the generic import of tags when provided in CSV format according to the following format:
NodeID, TagName, MemoryType, Address, DataFormat,...,[Comment]
The fields in brackets are optional as well as the fields between Data Format and Comment.
The meaning of each field is described below.
Field
NodeID
TagName
Description
Identifies the node which the tag belongs to.
A string that describes the tag itself.
MemoryType Should be one of the following:
a. OUTP
b.
c.
d.
INP
IREG
HREG
Address
DataFormat
Comment
Offset compatible with Modbus notation.
Data type in internal ICOM notation:
a. boolean
b.
c. byte short
d.
e.
f.
g. int unsignedByte unsignedShort unsignedInt
h.
i.
j.
k.
l.
m.
n.
o. float double string binary
Time boolean [] byte [] short []
p.
q.
r.
s.
t. unsignedShort [] unsignedInt [] float [] double []
Time []
A string for additional description; optional.
Operating Instructions 131 PB610 Panel Builder 600
Example of CSV line:
2,Holding Register 1, HREG, 400001, unsignedShort,
Here we have a line without comment. Notice the comma at the end of line. In fact, though comment is missing, the comma is mandatory.
NOTE
1. Select the driver in the tag editor and click on the Import tag button to start the importer.
2. Locate the “.csv” file and confirm with OK button.
The tags present in the exported document are listed in the tag dictionary from where they can be directly added to the project using the add tags button as shown in the following figure.
Aliasing Tag Names in Network Configurations
Tag names must be unique at project level; it often happens that the same tag names are to be used for different controller nodes (for example when the HMI is connected to two devices that are running the same application). Since tags include also the identification of the node and tag editor does not support duplicate tag names, the import facility in tag editor has an aliasing feature that can automatically add a prefix to imported tags. With this feature tag names can be done unique at project level.
The feature works when importing tags for a specific protocol. Each tag name will be prefixed with the string specified by the “Alias”. As shown in the figure below, 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.
Operating Instructions 132 PB610 Panel Builder 600
NOTE
Aliasing tag names is only available when tags can be imported. 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 to the tag name only at the moment the tags are imported using tag editor. 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 imported again, all tags will be imported again with the new prefix string.
Special Data Types
The Modbus TCP driver provides one special data type called "Node Override IP".
The Node Override IP permits to change at runtime the IP address of the target controller. 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.
If the Node Override is set to 0.0.0.0, all the communication with the slave is stopped, no request frames are generated anymore.
If the Node Override has a value 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.
In case the panel has been configured to access to a network of controllers, each node has its own override variable.
Operating Instructions 133 PB610 Panel Builder 600
NOTE
The Node Override values assigned at runtime are not retained through power cycles.
Communication Status
The current communication status can be displayed using the dedicated system variables. Please refer to the user manual for further information about available system variables and their use.
The codes supported for this communication driver are:
Error
NAK
Timeout
Notes
Returned in case the controller replies with a not acknowledge.
Returned when a request is not replied within the specified timeout period; ensure the controller is connected and properly configured to get network access.
Invalid response
The panel did receive from the controller a response, but its format or its contents is not as expected; ensure the data programmed in the project are consistent with the controller resources.
General Error Error cannot be identified; should never be reported; contact technical support.
Implementation Details
This Modbus TCP implementation supports only a subset of the standard Modbus TCP Function Codes.
The supported Function Codes are listed in the table below.
Operating Instructions 134 PB610 Panel Builder 600
Code Function
01 Read Coil Status
02 Read Input Status
03
04
Read Holding Registers
Read Input Registers
Description
Read multiple bits in the panel coil area.
Read the ON/OFF status of the discrete inputs (1x reference) in the slave.
Read multiple registers.
Read the binary contents of input registers (3x reference) in the slave.
Force a single soil to either ON or OFF.
Preset a value in a register.
Preset value in multiple registers.
05
06
16
Force Single Coil
Preset Single Register
Preset Multiple Registers
Modbus RTU Driver
The operator panels can be connected to a Modbus network as the network master using this generic driver.
Protocol Editor Settings
Add with the button + a driver in the protocol editor and select the protocol called Modbus RTU from the list of available protocols.
Operating Instructions 135 PB610 Panel Builder 600
The driver configuration dialog is shown in the following figure.
Operating Instructions 136 PB610 Panel Builder 600
Parameter
Alias
Node ID
Timeout (ms)
Delay (ms)
Num of repeats
Description
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.
Modbus node of the slave device.
Defines the time inserted by the protocol between two retries of the same message in case of missing response from the server device. It is expressed in milliseconds.
This parameter defines a fixed time delay in the communication between the end of the last received frame and the starting of a new request; when set to 0, the new request will be issued as soon as the internal system is able to reschedule it.
This parameter defines the number of times a certain message will be sent to the controller before reporting the communication error status.
A value of 1 for the parameter “No of repeats” means that the panel will eventually report the communication error status if the response to the first request packet is not correct.
Max read block Maximum length in bytes of a data block request. It applies only to read access of
Holding Registers
Max read bit block Maximum length in bits of a block request. It applies only to read access of Input Bits and Output Coils.
Write Holding
Register
Write Coils
Transmission
Mode
Specifies what Modbus Function will be used for write operations to the Holding
Registers data type. The user can select between the function 06 (preset single register) and function 16 (preset multiple registers).
If Modbus function 06 is selected, the protocol will always use function 06 to write to the controller, even to write multiple consecutive registers.
If Modbus 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 “Byte Count” parameter of the query is set to two. Using function 16 may result in higher communication performance.
Specifies what Modbus Function will be used for write operations to the Output Coils data type. The user can select between the function 05 (force single coil) and function
15 (write multiple coils).
If Modbus function 05 is selected, the protocol will always use function 05 to write to the controller, even to write 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. Using function 15 may result in higher communication performance.
RTU: use RTU mode
ASCII: use ASCII mode
Note: when PLC network is active, all nodes will be configured with the same
Transmission Mode.
PLC Models
PLC Network
Two PLC models are available. The Modicon modbus model has an addressing space that starts from offsets 1 for all the memory types. The Generic Modbus model has an addressing space that starts from offset 0 for all the memory types.
The protocol allows the connection of multiple controllers to one operator panel. To set-up multiple connections, check PLC network checkbox and create your network using the command “Add” per each slave device you need to include in the network.
Operating Instructions 137 PB610 Panel Builder 600
Parameter
Port
Baud rate, Parity,
Data bits, Stop bits
Mode
Description
Serial port selection. COM1 is the panel PLC port, COM2 is the PC/printer port.
Communication parameters for the serial line.
Serial port mode. Can be selected between: RS-232, RS-485 (2 wires), RS-422
(4 wires).
Operating Instructions 138 PB610 Panel Builder 600
Tag Import
The Modbus RTU driver supports the generic import of tags when provided in CSV format according to the following format:
NodeID, TagName, MemoryType, Address, DataFormat,...,[Comment]
The fields in brackets are optional as well as the fields between Data Format and Comment.
The meaning of each field is described below.
Field
NodeID
TagName
MemoryType
Description
Identifies the node which the tag belongs to.
A string that describes the tag itself.
Should be one of the following:
a. OUTP
b. INP
c. IREG
d. HREG
Address
DataFormat
Offset compatible with Modbus notation.
Data type in internal ICOM notation:
boolean
byte
short
int
unsignedByte
unsignedShort
unsignedInt
float
double
string
binary
Time
boolean []
byte []
short []
unsignedShort []
unsignedInt []
float []
double []
Time []
Comment A string for additional description; optional.
Example of CSV line:
2,Holding Register 1, HREG, 400001, unsignedShort,
Operating Instructions 139 PB610 Panel Builder 600
Here we have a line without comment. Notice the comma at the end of line. In fact, though comment is absent, the comma is mandatory.
NOTE
1. Select the driver in the tag editor and click on the Import tag button to start the importer.
2. Locate the “.csv” file and confirm with OK.
The tags present in the exported document are listed in the tag dictionary from where they can be directly added to the project using the
add tags button as shown in the following figure.
Aliasing Tag Names in Network Configurations
Tag names must be unique at project level; it often happens that the same tag names are to be used for different controller nodes (for example when the HMI is connected to two devices that are running the same application). Since tags include also the identification of the node and tag editor does not support duplicate tag names, the import facility in tag editor has an aliasing feature that can automatically add a prefix to imported tags. With this feature tag names can be done unique at project level.
The feature works when importing tags for a specific protocol. Each tag name will be prefixed with the string specified by the “Alias”. As shown in the figure below, 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.
Operating Instructions 140 PB610 Panel Builder 600
NOTE
Aliasing tag names is only available when tags can be imported. 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 to the tag name only at the moment the tags are imported using tag editor. 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 imported again, all tags will be imported again with the new prefix string.
Special Data Types
The Modbus RTU driver provides one special data type called "Node Override ID".
The Node Override ID allows changing at runtime the address of the target controller. This memory type is an unsigned byte.
The Node Override ID is initialized with the value of the controller ID specified in the project at programming time.
If the Node Override is set to 0, all the communication with the slave is stopped, no request frames are generated anymore.
If the Node Override has a value different from 0, it is interpreted as Node ID Override and the target ID address is replaced runtime with the new value.
In case the panel has been configured to access to a network of controllers, each node has its own override variable.
Operating Instructions 141 PB610 Panel Builder 600
NOTE
The Node Override values assigned at runtime are not retained through power cycles.
Communication Status
The current communication status can be displayed using the dedicated system variables. Please refer to the User Manual for further information about available system variables and their use.
The codes supported for this communication driver are:
Error
NAK
Timeout
Notes
Returned in case the controller replies with a not acknowledge.
Returned when a request is not replied within the specified timeout period; ensure the controller is connected and properly configured to get network access.
Line Error
Invalid response
Returned when an error on the communication parameter setup is detected (parity, baud rate, data bits, stop bits); ensure the communication parameter settings of the controller is compatible with panel communication setup.
The panel did receive a response from the controller, but its format or its content is not as expected; ensure the data programmed in the project are consistent with the controller resources.
General Error Error cannot be identified; should never be reported; contact technical support.
Operating Instructions 142 PB610 Panel Builder 600
Implementation Details
This Modbus RTU implementation supports only a subset of the standard Modbus function codes.
The supported function codes are listed in the table below.
Code
01
02
Function
Read Coil Status
Read Input Status
Description
Read multiple bits.
Read the ON/OFF status of the discrete inputs
(1x reference) in the slave.
03
04
Read Holding Registers
Read Input Registers
Force Single Coil
Preset Single Register
Read multiple registers.
Read the binary contents of input registers
(3x reference) in the slave.
Force a single coil to either ON or OFF. 05
06 Preset a value in a register.
16 Preset Multiple Registers Preset value in multiple registers.
Communication speed with controllers is supported up to 57600 baud.
Floating point data format is compliant to the IEEE standard.
Variables
Selecting Variables in the protocols menu gives the user the possibility, to define variables independant of any PLC and any defined protocol.
This option is helpful for creating applications e.g. for demonstration purposes. By means of this popup window the variables become specified.
Operating Instructions 143 PB610 Panel Builder 600
Programming Concepts
The programming guidelines for PB610 Panel Builder 600 are based on a few basic concepts, which are recurrent in many parts of the system.
Attach To
In PB610 Panel Builder 600 the basic programming techniques are used in configuring the properties for an object in page. Objects' properties can be changed at programming time or configured to be dynamic.
To change a property use the page toolbar or the property pane which shows the properties available for the selected object.
The page toolbar permits a quick change at programming time of the most commonly used object's properties. When you need a complete view of all the properties of a certain object you need to use the property pane. The property pane allows you to change a property at programming time and to attach the property to a dynamic element.
From the property pane, when you click on the right side of a property cell, you get the possibility to
“attach” the property to a second element. This operation is done using the “Attach To” dialog.
Tab “Tag”
Operating Instructions 144 PB610 Panel Builder 600
The tab “Tag” allows to attach the property to an element. The Source can be selected using the radio buttons. The elements to which the property can be attached are:
Tags
System variables (see chapter “ System Variables ” for an explanation of the meanings of all system
variables)
Properties from another widget
Elements of a recipe
The radio buttons at the bottom allow to set the access type. The TagIndex selection is used in case of arrays to determine the array element.
While adding tags, the protocols used in the project are shown in the tag dialog and when expanding each protocol the corresponding tags can be seen. The tags will be arranged in alphabetical order inside each protocol.
There is an option to search the tag to be attached by its name as shown in the figure above. This makes it easy to find tags.
The search can be done in two ways:
1. Start typing the tag name in the left box:
This will “jump” into the list to the first tag starting with the entered characters.
2. Type in the search box any part of a tag name:
This will automatically apply a filter to the view so that only the tags which contain the entered characters are displayed.
Operating Instructions 145 PB610 Panel Builder 600
Tag sorting, tag grouping and tag filtering are features available starting from version 1.80.
NOTE
Tabs “Scale”, “XForms”
“Scale/XForms” allow to apply transformations to the numeric value of the source element before they are applied to the property of widget. Transformations can be simple linear relationships or generic transformations. Linear scaling can be configured when selecting the Scale tab and they can be specified in terms of a formula or by range. In case the range mode is selected, you just need to specify the input and output range while the system will automatically calculate the factors for the formula.
Special transformations are available when you click on the
Transform radio button. Currently supported transformations are:
Color conversion: Allows to define a map between numeric values of the tag and colors to be assigned to the property. This feature is used to change the color of a button, for example, based on the value of a tag. If the tag is an integer, you can have many different colors based on the tag value.
Bit and byte index: Allows extracting a single bit or byte content from a word depending on the specified bit or byte number.
Example of transformation: scaling (100/10*value + 5 ), byteIndex(0), bitIndex(1) that is equivalent to: bitIndex (byteIndex (100/10*value+5,0) , 1)
Operating Instructions 146 PB610 Panel Builder 600
Events
In a Panel Builder 600 application, Events are the way to trigger Actions at the application level.
Main types of Events:
Events related to buttons/ touch (Click, Press, Release, Release)
Events related to external input devices like keyboards & mouse (Click, Press, Hold, Release,
Wheel)
Events related to data changes (OnDataUpdate)
Events related to switch pages (OnActivate, OnDeactivate)
Events related to alarms
Events related to scheduler
Whenever the system generates an Event, you can attach one of the following actions to the event:
an Action/Macro (or sequence of) selected from a list of predefined actions
a JavaScript function
The figure below shows an example of an Action activated by pressing a button.
Operating Instructions 147 PB610 Panel Builder 600
Example of an action activated by pressing a button.
By associating actions to events, the programmer configures user interactions with the program.
OnClick/OnMouseClick
This Event occurs when the button/key is pressed and released quickly.
OnHold/OnMouseHold
This Event occurs when the button/key is pressed and held pressed for a certain Hold time. Actions programmed for this Event will be executed only after the Hold time has expired.
Hold time is configured in project properties but can be redefined for each button/key. When a value -1 is specified as Hold time for a certain button, the project default value will be used.
Operating Instructions 148 PB610 Panel Builder 600
Autorepeat
It is possible to enable autorepeat for Press event or for Hold event of a button/key.
Autorepeat Time is specified in Project properties but can be redefined for each button/key.
OnWheel
This Event occurs when a wheel (example: a USB mouse wheel or a handheld wheel) value change. A wheel usually is used to increment/decrement a value in data entry or attached to a tag.
Operating Instructions 149 PB610 Panel Builder 600
OnActivate
This event triggers when a page is loaded and before widgets being initialized with the values read from
Tag Manager.
OnDataUpdate
This event triggers when a data field attached to a widget changes. Upon page change, data is updated asynchronously at a time that depends on the time needed to read data from protocol. As a consequence, the OnDataUpdate event can be triggered or not, depending on whether data becomes available from protocol respectively after or before widgets being initialized for first time. In particular page change notifications are more likely to happen with slow protocols and Windows Remote Client.
Moreover, note that the value we read during OnActivate can be the same we get from a subsequent
OnDataUpdate event, since OnDataUpdate notifications are sent asynchronously.
Operating Instructions 150 PB610 Panel Builder 600
Project Properties / Project Widget
Project properties contain settings for the project. Project properties are available from Project View.
The Properties window on right side of the Panel Builder 600 contains the list of project level userconfigurable data.
Version
The version field is available for users to report the project version.
Context Menu
The default method for users to access runtime settings is press and hold for a few seconds on an empty area of the runtime screen. Using this property you can choose howcontext menu should appear:
Context menu Explanation
on delay (default) press and hold on macro command via macro/action controlled by HMI application
Operating Instructions 151 PB610 Panel Builder 600
Developer Tools
Developer tools are a collection of utilities useful for debugging problems at runtime. Developer tools are available in context menu at runtime. Not all items are available for all products and platforms.
To enable developer tools, set to true Project properties ->Developer tools.
One of the most important items in the developer tools is related to the watchdog. This item allows the developer to disable it to avoid a system restart in case of a runtime crash, to have time to save the
crash
report or check system status information (example: memory available, CPU load, events queue size etc.).
Crash report dialog appears automatically in case of a system freeze or crash and allows users to save a log file of crash. The crash report may contain information important for technical support.
Operating Instructions 152 PB610 Panel Builder 600
Keyboard
Enable the use of keyboard Macros at runtime when using external keyboards.
JavaScript Debug
Enable the JavaScript debugger at runtime for current project.
NOTE
For UN20 target (WCE MIPS hmi panels like CP650 … CP675), local debugger has been disabled. However, remote debugger is available to debug JS from a PC connected to HMI panel via Ethernet.
Remote debugger not supported in Windows Client and ActiveX.
NOTE
Allow JS Remote Debugger
Enable the JavaScript remote debugger for current project.
NOTE
For UN20 target (WCE MIPS hmi panels like CP650 … CP675), local debugger has been disabled. However, remote debugger is available to debug JS from a PC connected to HMI panel via Ethernet.
Remote debugger not supported in Windows Client and ActiveX.
NOTE
Image DB enable
Enabled by default, this property activates an engine used by the runtime to optimize project performance. Available in the Project Properties, should be disabled just by tech support for debugging in case of a problem. Disabling it can create performance problems at runtime.
FreeType Font Rendering
The “FreeType Font Rendering” property is used to switch between old font engine used by Panel Builder
600 & Runtime up to v1.80 (native OS-based font engine) and the font rendering based on FreeType.
Operating Instructions 153 PB610 Panel Builder 600
All projects created with Panel Builder 600 v1.90 or newer use the FreeType font engine as default while all projects created with older versions of Panel Builder 600 continue to use old font engine after the conversion to avoid potential backward compatibility issues in font rendering.
Moving to the FreeType Font Rendering is recommended to all users; to enable it set true in “FreeType
Font Rendering” in Project Properties, save and verify that all texts are shown correctly in all HMI project pages.
Example of rendering issues that could appear when switching between old and new font engine are:
text require few more/less pixels for rendering and this could change text layout
size to fit could result in change in size of widgets.
better rendering using antialiasing (feature not available in v1.80). Antialiasing can be disabled in v1.90 for texts (it is a property of text widgets).
Software Plug-in Modules
The software plug-in concept allows users to choose if certain software modules must be downloaded to runtime together with the project. Examples of software plug-ins are:
PDF Reader
VNC Server
ActiveX
Not all software plug-in modules are compatible with all targets. New software plug-in modules will be added in the future to extend optional features of the product.
Once enabled, a software plug-in is considered as part of runtime. You can use Panel Builder 600 to install it in the target using one of the following procedures:
Installing runtime
Updating runtime
Update Package
System is not able to detect automatically if a software plug-in is required by the HMI application, so it is up to the user selecting the software plug-in manually from project properties when required.
Software Plug-in support has been designed for embedded HMI panels where storage is limited and reducing software footprint is critical. This option is not supported in Win32 Runtime.
Behavior -> Home Page
Define homepage of project. The homepage is the first page loaded at runtime (after log-in page if security is enabled in project).
When Security is enabled, it is possible to specify a different homepage for each groups of users, in this case this property is ignored. Refer to User
Management for more details.
Behavior -> Page Width / Page Height
Define default size in pixel of an HMI page. Default is target type dependent (depend on HMI panel screen resolution).
Behavior -> Display Mode
Define HMI panel orientation, Landscape or Portrait.
Behavior -> Project Type
Define target type / HMI panel model. Based on model, many features and properties of project are automatically adjusted to fit it in the right way.
Behavior -> PageRequest, CurrentPage and SyncOptions
Operating Instructions 154 PB610 Panel Builder 600
The HMI projects contain properties that let you know which page is currently displayed on the HMI and to force the HMI to switch to a specific page. These properties can be used to synchronize pages showed on the HMI and Windows Client or to control an HMI with a PLC.
Double click on project name present into ProjectView pane to open the project properties page:
Expand the properties view of the Properties pane, by clicking on "Show Advanced Properties" button:
Following properties, highlighted in green in the picture above, can be configured:
PageRequest
This property determines the page to be shown on the HMI and on Windows Client. Attached Tag must contain an integer value, clearly within the range of the available project pages. The attached Tag must be available at least as a Read resource.
CurrentPage
This property represents the page number actually displayed on the HMI or on Windows Client or on both. Attached Tag must be available at least as a Write resource and must have data type that allows containing an integer value. SyncOptions value can be set as one of following options:
Operating Instructions 155 PB610 Panel Builder 600
Local: if you want that CurrentPage represents the number of page actually displayed on HMI,
Remote: if you want that CurrentPage represents the number of page actually displayed on Windows
Client.
SyncOptions
This property determines the synchronization of the project pages with the value contained in the
CurrentPage property.
Disable: CurrentPage value is ignored.
Local: CurrentPage value corresponds to the page displayed on HMI.
Remote: CurrentPage value corresponds to the page displayed on Windows Client.
Local + Remote: CurrentPage is changed according to page displayed on HMI and on Windows
Client, if different pages are displayed; CurrentPage refers to the last page loaded.
Example 1
Force page change from PLC to HMI and Windows Client
PageRequest: attached to Tag "A"
CurrentPage: empty
SyncOptions: Disabled
Changing value of "A", HMI and Windows Client will show page requested
Example 2
Force page change from PLC to HMI and Windows Client. Read current page loaded on HMI
PageRequest: attached to a Tag "A"
CurrentPage: attached to a Tag "B" as Read/Write
SyncOptions: Local
Changing value of "A", HMI and Windows Client will show page requested. On "B" will be written page currently shown by HMI.
Example 3
Force page change from PLC to HMI and Windows Client. Read current page loaded on Windows Client
PageRequest: attached to a Tag "A"
CurrentPage: attached to a Tag "B" as Read/Write
SyncOptions: Remote
Changing value of "A", HMI and Windows Client will show page requested. On "B" will be written page currently shown by Windows Client.
Example 4
Force page change from PLC to HMI and Windows Client. Windows Clientpage Synchronization with HMI
(not vice versa)
PageRequest: attached to a Tag "A" as Read/Write
CurrentPage: attached to the same Tag "A" as per PageRequest
SyncOptions: Local
Changing value of "A", HMI and Windows Client will show page requested. Changing page on HMI same page will be forced on Windows Client.
Example n.5
Operating Instructions 156 PB610 Panel Builder 600
Force page change from PLC to HMI and HMI Client HMI page Synchronization with Windows Client (not vice versa)
PageRequest: attached to a Tag "A" as Read/Write
CurrentPage: attached to the same Tag "A" as per PageRequest
SyncOptions: Remote
Changing value of "A", HMI and Windows Client will show page requested. Changing page on Windows
Client same page will be forced on HMI.
Example n.6
Synchronize displayed page between HMI and on Windows Client
PageRequest: attached to a Tag "A" as Read/Write
CurrentPage: attached to the same Tag "A" as per PageRequest
SyncOptions: Local+Remote
Changing page on HMI, same page will be shown on Windows Client and vice versa.
Behavior -> Hold Time and Autorepeat Time
Define default values for hold time and autorepeat time for buttons and external keyboards. However, for each button/key, they can be redefined in related widget instance.
Events -> OnWheel
A wheel is used by special products like handhelds or attaching an USB mouse with a wheel input device.
Usually a wheel is used to increase/descries of a fixed value a Tag without the need to use an external keyboard device.
From Project Widget is possible to attach to a change of wheel status an action like BiStepTag to increase/decrease a tag value.
Operating Instructions 157 PB610 Panel Builder 600
System Variables
System variables are special system tags containing generic information about the runtime. System variables are available in the Attach to dialog from the Source selection.
System variables are divided in the following categories.
Starting from v1.90, system variables are available also as a standard protocol in protocol editor. This protocol can be used for data transfer betweens system variables and tags from devices or when is necessary to specify a custom refresh rate for a system variable.
Operating Instructions 158 PB610 Panel Builder 600
Alarms
Variables return information on the actual number of alarms according to the status.
System variable
Not Triggered Acknowledged
Not Triggered Not Acknowledged
Triggered Acknowledged
Triggered Not Acknowledged
Triggered Alarms
Explanation
Total number of alarms “Not Triggered Acknowledged”
Total number of alarms “Not Triggered Not Acknowledged”
Total number of alarms “Triggered Acknowledged”
Total number of alarms “Triggered Not Acknowledged”
Total number of alarms “Triggered”
Number of missed alarm events Total number of missed alarm events
All these system variables are int type (32 bit), read only.
Operating Instructions 159 PB610 Panel Builder 600
Communication
Variables return information on the status of the communication between the HMI device and the controllers configured in the protocol editor.
Protocol Communication Status
The variable is read only int (32 bit), can have three values:
0: No protocol running; it may occur if the protocol driver has not been properly downloaded to the target system.
1: Protocol has been properly loaded and started; no communication errors
2: At least one communication protocol is reporting an error
Protocol Error Message
This variable returns an ASCII string containing a description of the current communication error. The communication protocol acronym is reported between square brackets to recognize the source of the error in case of multiple protocols configurations. The variable is a read only string. If no errors are present, the string will be blank.
Protocol Error Count
This variable returns the number of communication errors that occurred since the last time it was reset.
The variable is a read only integer. The reset of this variable is only possible using the dedicated Action
“Reset Protocol Error Count“.
Operating Instructions 160 PB610 Panel Builder 600
Daylight Saving Time
Variables return information on the system clock and allow adjusting it from the application. They contain information on the “local” time. All the variables are read/write; this means that you cannot change them to update the system RTC.
All the variables are bytes (8 bit) except for the DLS and standard offset that are shorts (16 bit).
Standard time is the “solar time” and other is daylight saving time.
Variable Explanation
Standard offset represents the offset in minutes when standard time is set, with respect to GMT. (with respect to the picture it is -8*60 = - 480 minutes)
Standard week the week in which the Standard time starts (w.r.t. the picture it is First = 1)
Standard Month the month in which the standard time starts (range of the variable is [0 -11] so w.r.t. the picture it is November = 10)
Standard Day
Standard hour day of week in which the standard time starts (w.r.t. the picture it is Sunday = 0) hour in which the standard time starts (w.r.t. the picture in Time field it is 02 = 2)
Standard minute minute in which the standard time starts (w.r.t. the picture in Time field it is 00 = 0)
Dst offset represents the offset in minutes when DLS time is set, with respect to GMT. (w.r.t. the picture it is -7*60 = - 420 minutes)
Dst week week in which the DLS time starts (w.r.t. the picture it is Second = 2).
Dst Month
Dst Day
Dst hour
Dst minute month in which the DLS time starts (range of the variable is [0 -11] so w.r.t. the picture it is March = 2) day of week in which the DLS time starts (w.r.t. the picture it is Sunday = 0) hour in which the DLS time starts (w.r.t. the picture in Time field it is 02 = 2) minute in which the DLS time starts (w.r.t. the picture in Time field it is 00 = 0)
Operating Instructions 161 PB610 Panel Builder 600
Device
Variables can be used to adjust specific device settings and obtain operational information.
Available System Memory
Returns the free available RAM memory in bytes; it is a 64 bit data; it is a read only variable.
Backlight Time:
Returns the activation time in hours of the display backlight lamp since production of the unit; it is a read only variable.
Battery LED
Enables/disables the use of the front LED indicator to report the low battery status. It can have values 0
(disabled) or 1 (enabled).
Battery Timeout
Reserved.
Display Brightness
This variable is an integer of R/W type. Its range goes from 0 to 255. It can be used to check brightness level and adjust it from the application. Typical use is connected to a slider widget.
When set to a low level (0..3), backlight assume a low but visible value for around 8 seconds (to let user change it otherwise nothing is visible in display) and after that display appear as switch-off. However, also with value 0 backlight is still on and counter of backlight life time increase.
Operating Instructions 162 PB610 Panel Builder 600
External Timeout
This variable allows setting the not operational time after which the display backlight is automatically turned off. The backlight is then automatically turned on when user presses on the touchscreen.
The variable is an int of R/W type.
-1 = switch off backlight and disable touch (switch display off). Backlight counter is stopped.
0 = switch backlight on (so switch display on)
1..n = set a timeout for switch off backlight, so work like a screensaver timer
Flash Free Space
Returns the free space left in the device internal flash.
System Font List
List of system fonts. The variable is a read only string.
System Mode
Returns a value informing the operation status of the runtime. Possible values are:
1: Booting
2: Configuration mode
3: Operating mode
4: Restart
5: Shutdown
System UpTime:
Returns the total time in hours in which the system has been powered since production of the unit. It is a read only variable.
Touch Buzzer
Allows you to enable/disable the touch audible feedback. It can have values 0 (disabled) or 1 (enabled).
Starting from BSP 1.66.6 ARM / 2.73.1 MIPS, buzzer control has been extended as below.
NOTE
Buzzer Control
0: Buzzer off
1: Buzzer on
2: Buzzer blink (on and off times programmed by System Variables Buzzer On and Off)
Buzzer Off Time
duration in milliseconds of off time when blink has been selected: minimum value: 100 maximum value: 5000 default value: 1000
Buzzer On Time
duration in milliseconds of off time when blink has been selected: minimum value: 100 maximum value: 5000 default value: 1000
Operating Instructions 163 PB610 Panel Builder 600
Dump Information
Variables return information about the status of the copy process to external drives (USB) for trend and archive buffers.
Dump Trend Status
This variable returns value 1 during the copy process of the trend buffers. If the copy duration time is less than one second, the system variable does not change its value.
Dump Archive Status
This variable returns value 1 during the copy process of the archive buffers. If the copy duration time is less than one second, the system variable does not change its value.
Operating Instructions 164 PB610 Panel Builder 600
Network
Variables allow to show and set network device parameters. Except for the MAC ID, they are all of R/W type.
Variable
Gateway
IP Address
Mac ID
Explanation
Gateway address of the main Ethernet interface of device
IP address of the main Ethernet interface of device
MAC ID of the main Ethernet interface of device
Subnet Mask Subnet Mask of the main Ethernet interface of device
Operating Instructions 165 PB610 Panel Builder 600
Printing
Variables return information about the Printing system. All the variables are read only.
Variable
Completion percentage
Current disk usage
Current job
Current RAM usage
Disk quota
Graphic job queue size
RAM quota
Status
Text job queue size
Explanation
The percentage of competition of the current print job. It ranges from 0 to 100.
The size (in bytes) of folder where PDF reports are stored (it is reportspool if option Spool media type is Flash).
The name of the report the job is processing.
The size (in bytes) of the RAM used to process the current job.
The maximum size (in bytes) of the folder where PDF reports are stored.
The number of the available graphic jobs in the printing queue.
The maximum size (in bytes) of the RAM used to generate reports.
A string representing the status of the printing system. The possible values are idle, error, paused and printing.
The number of the available text jobs in the printing queue.
Operating Instructions 166 PB610 Panel Builder 600
SD Card
Variables return information on the external SD Card plugged into the panel. They are 64 bit variables, except the drive name which is a string. All the variables are read only.
Variable
SD Card FreeSpace
SD Card Name
SD Card Size
SD Card Status
Explanation
Size in bytes of the available space
Name of the SD card
Size in bytes of the card plugged in the slot
Status of the SD card
Operating Instructions 167 PB610 Panel Builder 600
Time
Variables return information on the system time expressed in UTC format.
They are all Int (32 bits) of read/write type, except for the system time which is a 64 bit variable, still of read/write type. This is actually the UTC time which is also available as date/time from the other variables.
Variable
Day Of Month
Day of Week
Hour
Minute
Month
Second
System Time
Year
Explanation
Day of the month (1..31)
Day of the week (0=Sunday, .. , 6=Saturday)
Hour (0..23)
Minute (0..59)
Current month (1..12)
Second (0..59)
System time
Current Year
Operating Instructions 168 PB610 Panel Builder 600
USB Drive
Variables return information on the external USB drive connected to the panel, They are 64 bit variables, except the drive name which is a string. All the variables are read only.
Variable
USB Drive free space
USB Drive Name
USB Drive Size
USB Drive Status
Explanation
Size in bytes of the available space
Name of the USB device
Size in bytes of the device plugged in the USB port
Status of the USB device
Operating Instructions 169 PB610 Panel Builder 600
User Management
Variables return information on users and groups.
Variable Explanation
This Client Group-Name
This Client ID
This Client User-Name
Name of the group to which the current logged user belongs to.
This is a read only string.
The variable is valid with reference to the Windows Client scope. Local and remote clients connected to the same "server" (same runtime) get a unique
ID returned by this variable.
This is a read only short (16 bit).
Name of the user logged to the Client where the system variable is displayed
This is a read only string.
Operating Instructions 170 PB610 Panel Builder 600
Actions
Actions are used to interact with the system; they can be executed when events are triggered.
When considering events generated by buttons (pressed or released) not all the actions are available for both states.
In case the selected action is not supported for the actual state, the software will report a warning message as shown in the following figure.
Widget Actions
The following chapter will include the description of a set of actions dedicated to handling widget visibility and control.
Show Widget
This macro allows you to show or hide the page widgets.
1. In the macro properties, select the widget you want to show or hide.
2. Set the Show properties as follows: False to hide and True to show widget.
Operating Instructions 171 PB610 Panel Builder 600
Trigger IP Camera
This macro allows you to start the image capture from an IP camera.
Select the IP camera from the macro properties to trigger the capture from the IP camera.
Operating Instructions 172 PB610 Panel Builder 600
Slide Widget
This macro allows you to show the sliding effect of a widget, or of a widget group, in HMI Runtime.
Parameter
Widget
Direction
Speed
X Distance
Y Distance
Slide Limit
X-Limit
Value
The widget to slide
Sliding direction
The transition speed of the sliding widget
The travel distance of the X coordinate of pixel
The travel distance of the Y coordinate of pixel
Enable/Disable limiting the movement with respect to the coordinates (X and Y) of the widget.
When specified, allows to stop automatically the slide action when the widget reaches the specified position.
Y-Limit When specified allows stopping automatically the slide action when the widget reaches the specified position.
Toggle the visibility of the widget at the end of each slide action. Toggle-
Visibility
Image Widget Allows to show an image during the movement; the specified image will be shown during the slide operation between start and end point of the movement.
The widget, or grouped widget can actually be outside of the page in the project and slide in and out of view.
NOTE
Operating Instructions 173 PB610 Panel Builder 600
Refresh Event
The RefreshEvent macro allows you to refresh the selected Event widget. The Event Widget is a component of the Alarm History Widget. (see paragraph Configure Alarms History Widget.).
ContextMenu
Context menu is used to configure runtime parameters like Zoom level, to update runtime & project using an update package, to show log window, to access the rotating menu for basic HMI configurations like IP
Address or device local time etc. By default the context menu appears when the user press/click and hold for few seconds in the runtime area (in an area free of widgets like buttons). However, in the project area, it is possible to disable the OnHold event and configure the HMI to open the context menu just when the macro ContextMenu is called by the user. Usually this macro is attached to a button and protected to be used just by system administrators
ReplaceMedia
Replace media macro is used to replace Images and Media files. When called, a dialog appears to select source folder.
Keyboard Actions
The Keyboard macro actions include “SendKey” and “SendKeyWidget”
Operating Instructions 174 PB610 Panel Builder 600
Send Key
This macro is used to enter the predefined character to the read/write widget. Define the predefined key code and shift key code to the macro actions property.
1. In runtime, click the R/W numeric widget.
2. Execute the macro to send the predefined keys to the numeric widget.
The action works on the field currently being edited.
To use this macro, you must define the keypad type as “Macro” in the numeric widget properties.
NOTE
Send Key Widget
This macro is used to enter the predefined character for a specific widget. To use the macro, define the widget ID and the key code in the macro properties.
Example
Control list widget (available in the advanced category of the widgets gallery) is a good example of how this macro command can be used. Here Up and Down buttons have been implemented using the
SendKeyWidget macro.
Operating Instructions 175 PB610 Panel Builder 600
NOTE: To use the SendKey macro, you must define the keypad type as “Macro” in the numeric widget properties.
Operating Instructions 176 PB610 Panel Builder 600
ShowKeyPad
ShowKeyPad is used to show the default operating system touch keypad. Some operating systems might not support it
Keyboard Macros
Keyboard macros enable and disable the use of keyboard macros at runtime when using external keyboards.
You can also enable/disable macro execution related to keyboard PB610 side at the project level and at the level of the single page.
A dedicated property is available in the project property sheet and in the page property sheet.
Page Actions
This macro is used for page navigation and load-specific pages.
NOTE
Page actions are programmable ONLY in the released state.
The page actions macro is available for “Alarms”, “Schedulers” and “Mouse Release
Events”.
Operating Instructions 177 PB610 Panel Builder 600
Load Page
This macro allows you to load the selected page when the macro is executed.
Home Page
This property allows you to specify the home page. By default, the home page is the first page. You can change the home page in the project configuration properties.
1. To change the home page, double click on the project name item in Project View.
2. Once in properties, choose the home page.
PrevPage
This macro allows you to navigate the HMI Runtime to the previous page.
NextPage
This macro allows you to navigate the HMI Runtime to the next page.
Operating Instructions 178 PB610 Panel Builder 600
LastVisitedPage
This macro allows you to load the page previously displayed on HMI Runtime.
ShowDialogPage
This macro allows you to display dialog pages defined in the project. After the execution of this macro, the
HMI Runtime displays the specified dialog page.
CloseDialog
This macro is applicable only on dialog pages. The Close Dialog page allows you to close the dialog page currently displayed.
ShowMessage
This macro allows you to display warning message pop-ups when the macro is executed.
Type the message that you wish to have displayed while executing the macro.
Operating Instructions 179 PB610 Panel Builder 600
LaunchApplication
This macro allows the user to launch an external third party application when the macro is executed.
The following inputs must be provided in order to execute the specific application.
App Name: The executable file name with extension. Example: If you want to run notepad application, the argument should be “notepad.exe”.
Path: The application path; when the target platform is Windows CE, the path is \flash\qthmi. This is the folder that you see and have access to, when connecting to the panel via FTP
Arguments: Some applications may need arguments to be passed. For example, to open a pdf file, specify the file name so that, while launching the application, the file name set in the argument is loaded on the application. For example, \flash\qthmi\Manual.pdf will open the document
“Manual.pdf”.
Operating Instructions 180 PB610 Panel Builder 600
Single Instance: This argument allows the application to start in single instances or multiple instances. When single instance is selected the system first verifies whether the application is already running. If it is running, then the application gets the focus (the operating system puts it in foreground to user attention); if it is not running, then the application is launched.
Launch Browser
This macro will launch the default web browser. You can define the URL address of the webpage in the arguments.
NOTE
This macro only works in platforms that have a default web browser as application. Not all platforms are equipped with a default web browser. For example, this macro is supported in
OS based on Windows CE Pro with Internet Explorer enabled.
LaunchVNC
Use this macro to execute VNC server configuration form. This macro is working only on embedded devices WinCE based.
MultiLang Actions
The Multi-Language (MultiLang) actions are used to select and modify the languages used in the application.
SetLanguage
The SetLanguage macro allows you to set the current display language. In Macro Properties, enter in the
Language. At runtime, while executing the macro, the selected language will be applied to all applicable
Widgets.
Operating Instructions 181 PB610 Panel Builder 600
Operating Instructions 182 PB610 Panel Builder 600
Tag Actions
These macros are used to interact with the application’s tags.
Data Transfer
This macro allows you to exchange data between two controllers, between registers within a controller, or from system variables to controllers (and vice versa). SrcTag refers to the source tag and DestTag refers to destination tag. The various tag types include a controller tag, a system tag, a recipe tag and widget property.
Operating Instructions 183 PB610 Panel Builder 600
Toggle Bit
This macro allows you to “toggle” (meaning set or reset) a bit of a word. The bit index allows you to select the bit to be inverted: this implies a read-modify-write operation; the read value is inverted and then written back to the controller tag.
Operating Instructions 184 PB610 Panel Builder 600
SetBit
This macro allows you to set the selected bit. When the macro is executed, the selected bit value is set to
“1”.
The BitIndex property allows you to select the bit position inside the tag.
Operating Instructions 185 PB610 Panel Builder 600
ResetBit
This macro allows you to reset the selected bit. When the macro is executed the selected bit value is set to “0”.
The BitIndex property allows you to select the bit position inside the tag.
WriteTag
This macro allows you to write constant values for the controller memory. In the action list, specify the tag name and the constant value to be written.
Operating Instructions 186 PB610 Panel Builder 600
StepTag
This macro allows you to increment or decrement, in steps, the content of a tag value.
Tag Name: Tag name that you want to step.
Step: Step value.
Do not step over limit: Step limit enables.
Step Limit: If the step over limit is true, the macro will work until the tag value reaches the specified level.
ActivateGroup
This macro activates tags update for a group of Tags.
Usually tags are updated when used in the current page (or always when defined in Tag Editor as Active
=True). Using this macro it is possible to force the system to keep a group of tags always active (updated) independant if they are used on the current page or not.
DeactivateGroup
Deactivate a group of tags. Using this macro system stops reading a group of tags that had been previously activated
Trend Actions
These macros are used for both live data trends and the historical trends widget.
RefreshTrend
This macro is used to refresh the historical trend window. You have to specify the trend widget in the macro properties. This macro can be used in any of available graph widgets like Historical trends, Scatter
Diagram and Consumption Meter.
Operating Instructions 187 PB610 Panel Builder 600
ScrollLeftTrend
This macro is used to scroll the trend window to the left side, by a one-tenth (1/10) page duration. For the live data trend, this macro works when the trend is paused.
With the Real-Time trend it is recommended to pause the trend using the macro
PauseTrend, otherwise the window is continuously shifted to the current value.
NOTE
ScrollRightTrend
This macro is used to scroll the trend window to the right side, by a one-tenth (1/10) page duration. For the live data trend, this macro works when the trend is paused.
With the Real-Time trend it is recommended to pause the trend using the macro
PauseTrend, otherwise the window is continuously shifted to the current value.
NOTE
PageLeftTrend
This macro allows you to scroll the trend window by a one-page duration. Example: If the page duration is
10 minutes, with this macro you can scroll the trend left for 10 minutes.
PageRightTrend
This macro allows you to scroll the trend window by a one-page duration. Example: If the page duration is
10 minutes, with this macro you can scroll the trend right for 10 minutes.
PageDurationTrend
This macro is used to set the page duration of the trend window. In macro properties, you must define the trend window and duration.
Operating Instructions 188 PB610 Panel Builder 600
You can also use a combo box widget to select the page duration in runtime.
NOTE
ZoomInTrend
This macro allows you to reduce the page duration.
ZoomOutTrend
This macro allows you to make the page duration longer.
ZoomResetTrend
This macro allows you to reset the zoom level back to the original zoom level.
PauseTrend
This macro allows you to stop plotting the trend curves in the trend window. The trend logging operation is not stopped from the panel when this macro command is used.
ResumeTrend
This macro allows you to resume a trend plotting you previously paused. After executing this macro, the trend window will start to plot the data to the trend once again.
ShowTrendCursor
This macro allows the user to know the value of the curve at a given point on the X-axis. Use this macro to activate the trend cursor. In runtime, upon executing the macro, a vertical line (cursor) will display in the trend widget. When the graphic cursor is enabled, the scrolling of the trend is stopped. You can implement this macro to move the graphic cursor over the curves, or to move the entire trend window.
Operating Instructions 189 PB610 Panel Builder 600
ScrollTrendCursor
This macro allows the user to scroll through the trend cursor in forward or reverse, thereby moving the cursor to the point at which you want the value of the trend. The Y-cursor value will display the trend value at the point of the cursor. The scrolling percentage can be set at 1 % or 10 %. The percentage is calculated based on the trend window duration.
ScrollTrendToTime
This macro is used to scroll the Trend Window to a particular point in time. When you execute this macro the Trend Window will move to the time specified in the Macro Properties.
Operating Instructions 190 PB610 Panel Builder 600
This Action may be very useful when you need to scroll at a specific position in a trend window based on the time at which a certain event occurs. This can be achieved by configuring an action for that alarm
(event) that executes a Data Transfer of the system time into a Tag; when selecting that tag as
“ScrollTrendtoTime” parameter (see above figure) the trend windows will be centered at the time in which the event has been triggered.
Consumption MeterPageScroll
This macro is used to scroll page back / forward in consumption meter widget.
Available parameters are:
Trend Name: Trend widget ID (ex. TrendWindow3)
Page Scroll Direction: Forward / Reverse
Operating Instructions 191 PB610 Panel Builder 600
Alarm Actions
These macros are used to acknowledge or reset the alarms. The actions listed here can be used to build a custom widget for the alarms display. You can observe an example of how these are used in the default alarm widget, available in the widget gallery.
SelectAllAlarms
This macro allows you to select all the alarms in the alarm widget.
AckAlarm
This macro allows you to acknowledge the selected alarms.
ResetAlarm
This macro allows you to reset the selected acknowledged alarms.
Operating Instructions 192 PB610 Panel Builder 600
EnableAlarms
The Enable Alarm Action is used within the Save button of the alarm widget; it is required to properly save at runtime the changes done in the “Enable” check boxes from the “Enable” column in the alarm widget.
Event Actions
ScrollEventsBackward
This macro used by the alarm history widget to scroll events/alarms backward in table view (event buffer widget).
ScrollEventsForward
This macro used by the alarm history widget to scroll events/alarms forward in table view (event buffer widget).
System Actions
These macros allow you to use the system properties in runtime.
Restart
This macro allows you to restart Runtime. After executing the macro, the Runtime goes to configuration mode and restarts.
Operating Instructions 193 PB610 Panel Builder 600
Dump Trend
This macro is used to store the historical trend data to external drives, such as a USB drive or an SD card. In the macro properties, you must configure the historical trend name you want to store and the destination folder path. If you use a USB drive plugged into the USB port, the path will be “\USBMemory", or if you use a SD Card, the path will be \Storage Card, followed by the specified folder in the memory.
NOTE
The execution of the dump action will automatically force a flush to disk of the data
temporarily maintained in the RAM memory. See the chapter “ Trend Editor ” for further
information about the policy used to save sampled data to disk.
The external drives plugged on the USB port of the panel must be FAT or FAT32 formatted.
NTFS format is not supported.
NOTE
DumpAsCSV: If this option is set true, then the buffer will be directly dumped in the specified location as a *.CSV file in the format specified below. If it is set as False, then the dumped trend file comes in a binary format; the result of the dump operation is actually a couple of files, one with extension .dat and one with extension .inf. An external utility is then required to convert it to a CSV format. The two above mentioned files are both required by the utility to operate the conversion.
DateTimePrefixFileName: When this option is enabled the dumped file will have the date and time as prefix to the name of the file. Example: If you are making a dump at 10.10AM on 1-1-2012, then the file name will look like D2012_01_01_T10_10_Trend1.csv.
[DYear_Month_Day_THour_Minute_Filename].
This helps to know the time at which the dump was executed and also to identify which is the latest one.
Operating Instructions 194 PB610 Panel Builder 600
TimeSpec
This option defines the time format used when dumping the trend to file.
• Local: the time values exported are the time of the HMI device.
• Global: the time values exported are in the Coordinated Universal Time (UTC) format.
Example:
Local
Global
2012-10-11T05:13:43.724-07:00
2012-10-11T12:13:43.724Z
The utilities required to convert the dumped files to CSV are available in the Panel Builder
600 folder called “Utils” under the directory where the software is installed.
NOTE
The utility needed to convert trend buffers is called TrendBufferReader.exe. The TrendBufferReader.exe utility can be invoked using a batch file with the following syntax:
TrendBufferReader -r Trend1 Trend1.csv 1 where Trend1 is the name of the trend buffer without extension as dumped (original file name is
trend1.dat) and Trend1.csv is the name desired for the output file.
The resulting CSV file has 5 columns with the following meaning:
”Data Type“, “Value”, “Timestamp (UTC)”, “Sampling Time (ms)”, “Quality”
Column Name
DataType
Description
A code that informs about the data type of the sampled tag according to the following codes:
0: Empty
1: Boolean
2: Byte
3: Short
4: Int
5: Unsigned Byte
6: Unsigned Short
7: Unsigned Int
8: Float
9: Double
Value of the sample. Value
Timestamp(UTC) Timestamp in UTC format.
SamplingTime(ms) Sampling interval time in milliseconds.
Quality Informs about the tag value quality. The information is coded according the OPC DA standard; the information is stored in a byte data (8 bits) currently defined in the form of 3 bit fields: “Quality”, “Sub status” and “Limit status”.
The 8 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. Here below we report the most commonly used quality values returned by the HMI acquisition engine:
Operating Instructions 195 PB610 Panel Builder 600
12
16
24
28
QUALITY CODE
0
4
8
32
64
65
66
67
84
85
86
87
192
QUALITY
BAD
BAD
BAD
BAD
BAD
DESCRIPTION
The value is bad but no specific reason is known
There is some server specific problem with the configuration. For example the tag its question has been deleted from the configuration file (tags.xml).
This quality may reflect that no value is available at this time, for reasons like the value may have not been provided by the data source.
A device failure has been detected.
Timeout occurred before device responded.
BAD
BAD
BAD
Communications have failed.
There are no data found to provide upper or lower bound value (trend interface specific flag).
No data have been collected (i.e. archiving not active. Trend interface specific flag).
When the HMI return online after a reboot or from a condition where sampling stopped, a sample with quality value 32 is added to indicate this temporary offline status.
UNCERTAIN There is no specific reason why the value is uncertain.
UNCERTAIN There is no specific reason why the value is uncertain. (The value has
‘pegged’ at some lower limit)
UNCERTAIN There is no specific reason why the value is uncertain. (The value has
“pegged” at some high limit.)
UNCERTAIN There is no specific reason why the value is uncertain. (The value is a constant and cannot move.)
UNCERTAIN The returned value is outside the limits defined for it. Note that in this case the “Limits” field indicates which limit has been exceeded but the value can move farther out of this range.
UNCERTAIN The returned value is outside the limits defined for it. Note that 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 The returned value is outside the limits defined for it. Note that 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 high limit.)
UNCERTAIN The returned value is outside the limits defined for it. Note that 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
This macro allows you to delete saved trend data from the file.
In macro properties, define the trend name from which you want to delete the trend logs.
Operating Instructions 196 PB610 Panel Builder 600
DumpEventArchive
The DumpEventArchive macro is used to export the Historical Alarm log and Audit Trail data to external drives, such as a USB memory or SD card. If you use a USB drive the path will be \USBMemory or if you use an SD Card the path will be \Storage Card, followed by the specified folder in the memory.
The external drives plugged on the USB port of the panel must be FAT or FAT32 formatted.
NTFS format is not supported.
NOTE
In the macro properties, configure the event buffer name that you want to dump and the destination folder path. The DumpConfigFile property must be set to true when you plan to convert the dumped files to CSV.
DumpAsCSV: If this option is set true, then files will be directly dumped in the location in *.CSV format.
If it is set as False, then the events archive is dumped in a binary format; an external utility is then required to convert it to a CSV format.
DateTimePrefixFileName: When this option is enabled then dumped file will have the date and time as prefix to the name of the file. For example: If you are making a dump at 10.10AM on 1-1-2012, then the file name will look like D2012_01_01_T10_10_alarmBuffer1.csv.
[DYear_Month_Day_THour_Minute_Filename]
This helps to know the time at which the dump was made and also to identify which one is the latest.
This option is only supported when exporting to CSV directly.
NOTE
Operating Instructions 197 PB610 Panel Builder 600
timeSpec
This option defines the time format used when dumping the event archive to file.
• Local: the time values exported are the time of the HMI device.
• Global: the time values exported are in the Coordinated Universal Time (UTC) format.
Example:
• Local 2012-10-11T05:13:43.724-07:00
• Global 2012-10-11T12:13:43.724Z
When exporting alarm buffers in binary format assuming the DumpConfigFile option is set to true
(recommended settings) the result of the dump action execution are 2 folders. One is called “data“ and contains the data files. The 2. is called “config” and does contain the configuration files needed by the utility to reconstruct the entire information for proper conversion to CSV.
Once the two folders are copied from the root of the USB memory stick to the computer disk, the folder structure looks as follows:
.\config\ alarms.xml eventconfig.xml
.\data\
AlarmBuffer1.dat
AlarmBuffer1.inf
.\
AlarmBufferReader.exe
The utility is distributed in Panel Builder 600 Suite under the “..\ABB\ Panel Builder 600
Suite\Utils”.
NOTE
The AlarmBufferreader can be called from command line with the following syntax:
AlarmBufferReader AlarmBuffer1 FILE ./AlarmBuffer1.csv
AlarmBuffer1 is the name of the dumped .dat file without extension and AlarmBuffer1.csv is the desired output file name.
Operating Instructions 198 PB610 Panel Builder 600
The utility called AuditTrailBufferReader.exe has to be used for audit trail buffers.
The macro action has to be configured with the option
DumpConfigFile set to true.
NOTE
The result of the dump is a directory structure similar to the one generated for events.
The utility can be called from the command line according to the following syntax:
AuditTrailBufferReader AuditTrail FILE ./AuditTrail.csv
AuditTrail is the name of the dumped buffer without extension and AuditTrail1.csv is the desired output file name.
DeleteEventArchive
This macro allows you to delete saved event buffers log data from the file. In macro properties, define the event buffer name that you want to delete from the event logs.
ResetProtoErrCount
Variables “ for further information about system variables.
Operating Instructions 199 PB610 Panel Builder 600
SafelyRemoveMedia
If you unplug an SD Card or a USB drive from the HMI while it's transferring or saving information, you might risk losing some information. This macro provides a way to help you safely remove such devices.
Operating Instructions 200 PB610 Panel Builder 600
Recipe Actions
These macros are used in recipes.
DownLoadRecipe
This macro allows you to transfer the set of recipe data to controller tags.
In macro properties, select the recipe in the recipe name field and select the recipe set you want to download.
To download a selected recipe set, select curSet in the recipe set.
Upload Recipe
This macro allows you to transfer the set of controller data to the recipe data.
In macro properties, select the recipe in the recipe name and select the recipe set you want to upload.
To upload a selected recipe set, select curSet in the recipe set.
Operating Instructions 201 PB610 Panel Builder 600
WriteCurrentRecipeSet
This macro allows you to set the selected recipe as current recipe set.
In macro properties, select the recipe and recipe set you want to set as the current recipe in PB610
Panel Builder 600 Runtime.
DownLoadCurrentRecipe
This macro allows you to transfer the set of recipe data to the controller. No parameter is required to set this in the macro parameters. This will download the currently selected recipes and recipe set to the controller.
Operating Instructions 202 PB610 Panel Builder 600
UploadCurrentRecipe
This macro allows you to transfer the set of controller tags data to recipes. No parameter is required to set this in the macro parameters. This will upload the currently selected recipes from the controller.
ResetRecipe
This macro allows you to restore the factory settings for the recipe data. The uploaded recipes will be replaced with the original recipe data.
In the macro property, select the recipe you want to reset to factory settings.
Operating Instructions 203 PB610 Panel Builder 600
DumpRecipeData
This macro is used to dump recipes to internal or external storages.
In macro properties, define the file location where to save the dumped file.
Recipe data is saved in CSV format.
The external drives plugged on the USB port of the panel must be FAT or FAT32 formatted.
NTFS format is not supported.
NOTE
DateTimePrefixFileName: When this option is enabled then the dumped file will have the date and time as prefix of the filename.
For example: If you are making a dump at 10.10AM on 1-1-2012, then the file name will look like:
D2012_01_01_T10_10_recipe1.csv.
[DYear_Month_Day_THour_Minute_Filename]
This helps to know the time at which the dump was executed and also to identify which one is the latest.
TimeSpec define time format, Local for HMI time and Global for UTC time.
RestoreRecipeData
This macro allows you to restore the recipe data previously.
In macro properties, provide the file full path of the recipe filesRecipes to restore can be in any external storage like USB, SD or network paths.
The external drives plugged on the USB port of the panel must be FAT or FAT32 formatted.
NTFS format is not supported.
NOTE
Operating Instructions 204 PB610 Panel Builder 600
Example:
The figure shows the case of an external USB memory stick.
User Management Actions
These macros can be utilized for user management and security settings in PB610 Panel Builder 600
Runtime.
LogOut
This macro allows you to log off the current user in Runtime.
After executing the Logout macro, the HMI behavior depends on the fact that a Default user is configured in the project or not.
If there is a Default user, the Logout automatically logs in the Default user. If there is not a Default user or you log out from the Default user, then the log in screen is shown.
Operating Instructions 205 PB610 Panel Builder 600
SwitchUser
This macro allows you to switch between two users without logging out the logged-in user. The server continues running with the previously logged-in user, until the next user logs in. This means, after executing the Switch User macro, the Runtime will display the user login template. Internally, the server runs with the previously logged-in user. This action is useful for ensuring that there is always one user logged onto the system.
Click on the Back button to go back to the previously logged-in user.
ResetPassword
This macro allows the current user to restore his or her original password; this macro will restore factory settings for the current user’s password. No parameter is required to set this macro.
Operating Instructions 206 PB610 Panel Builder 600
AddUser
This macro is used to add users at Runtime. When this macro is executed, a template page pops up, where parameters for the user can be set. The parameters include username, password, group, comments and the following flags: “password must contain numbers”, “password must contain special character”, “user must change his initial password”, “enable logoff time”, “inactivity logoff time”.
Operating Instructions 207 PB610 Panel Builder 600
DeleteUser
This macro is used to delete users in PB610 Panel Builder 600 Runtime. Upon executing this macro, a template page will pop up where you can select the user you wish to delete. No parameters are required to set this macro. After executing the macro, the Delete User form will be displayed, as shown in the figure below.
EditUsers
This macro is used to edit users in PB610 Panel Builder 600 Runtime. When executing this macro, a template page pops up. Here you can select a user and modify this user’s parameters. The parameters include username, password, group, comments and the following flags: “password must contain numbers”, “password must contain special character”, “user must change his initial password”, “enable logoff time”, “inactivity logoff time”. After executing the macro, a User Edit form will pop up, as shown in the figure below.
Operating Instructions 208 PB610 Panel Builder 600
DeleteUserManagementDynamicFile
The DeleteUMDynamicFile macro allows you to delete the dynamic user management file. This means that the users created, edited, or deleted in Runtime will be erased, and the server will restore the settings from the project, originally downloaded from PB610 Panel Builder 600. No macro properties are required.
ExportUsers
This macro allows you to export user details to an xml file usermgnt_user.xml. User details will be in an encrypted form. In this macro property, the destination folder path must be set to the location where the
usermgnt_user.xml file is saved. If using a USB memory stick plugged in to the USB port, the path will be
\USBMemory, followed by the specified folder in the memory (or left empty for root folder).
The external drives plugged on the USB port of the panel must be FAT or FAT32 formatted.
NTFS format is not supported.
NOTE
Since the file is encrypted, there is no way to edit the user configuration from this exported file. This action is most useful for making a backup to be used for a later restore (see next chapter).
Operating Instructions 209 PB610 Panel Builder 600
ImportUsers
This macro allows you to import user details from an xml file usermgnt_user.xml. The folder path where the usermgnt_user.xml file is located must be specified within the macro properties. If using a USB memory stick plugged into the USB port, the path will be \USBMemory, followed by the specified folder in the memory (or left empty for root folder).
The external drives plugged on the USB port of the panel must be FAT or FAT32 formatted.
NTFS format is not supported.
NOTE
Operating Instructions 210 PB610 Panel Builder 600
Print Actions
PrintGraphicReport
The PrintGraphicReport macro allows you to print a graphic report. You have to specify the report name in the combo box reportName. The option silent (default value is true), if set to false, allows you to open a dialog at runtime which asks the user to adjust printer properties.
PrintText
The PrintText macro allows you to print the string written in the field text. The option silent (default value is true) allows, if set to false, you to open a dialog at runtime which asks the user to adjust printer properties.
NOTE
PrintText requires a printer supporting line printing.
PrintText works in line printing mode using a standard protocol common to all printers that support it. No custom drivers required for line printing.
In line printing, text is printed immediately line by line or after a timeout custom for each printer model (could take also minutes for some models not design for line printing).
NOTE
EmptyPrintQueue
The EmptyPrintQueue macro allows you to empty the current printing queue. If the macro is executed in the middle of the execution of a job, then the queue will be cleared at the end of the job.
PausePrinting
The PausePrinting macro allows you to put on hold the current printing queue. If the macro is executed in the middle of the execution of a job, then the queue is paused at the end of the job.
Operating Instructions 211 PB610 Panel Builder 600
ResumePrinting
The ResumePrinting macro allows you to start the queue if previously it was put on hold.
AbortPrinting
The AbortPrinting macro allows you stop the execution of the current job and remove it from the queue. If the queue has another job, then, after aborting, the next one starts immediately.
Operating Instructions 212 PB610 Panel Builder 600
Using Windows Client
The Windows Client provides remote access to the Runtime, and is included in the Panel Builder 600 installation. The Windows Client consists of a simple standalone application; although it uses the same graphic rendering system as the server, it relies on a specified Runtime as Server for live data.
Windows Client for Windows is available in the Runtime folder of the Panel Builder 600 root folder.
Execute the Windows Client application from the Runtime folder or from the start up menu (Panel Builder
600 - Windows Client). The client will open in a browser-like style window. Type the server IP address
(the panel’s IP address) in the address bar (for example: http://192.168.1.12
). The Client will connect to the server and the same graphical application running on the Server panel will be loaded in the client window.
Windows Client acts as a remote client and communicates to the server, sharing the local visualization with those Tag values that are maintained or updated by the communication protocol.
The HMI projects contain properties that let you know which page is currently displayed on the HMI and to force the HMI to switch to a specific page. These properties can be used to synchronize pages showed on the HMI and Windows Client or to control an HMI with a PLC. Please refer to SyncOptions for more details.
Operating Instructions 213 PB610 Panel Builder 600
Time Zone Options for Windows Client
Starting from version V1.60 the Windows Client provides an additional option to handle the visualization of the timestamp information of a project.
From the "Settings" dialog you now have access to a set of new options shown in the next figure:
Update Rate (default 1 second)
Polling frequency used by Windows Client to synchronize data from server.
Time Out (default 5 seconds)
Max time wait from Windows Client before considering a request lost and repeating it.
The Time Settings information is used by the client to adapt the widget timestamp information according to the desired behavior.
Option for Time Settings Explanation
Use Widget Defaults For each widget use time information according to the widget settings provided at the time of programming.
Local Time
Global Time
Server Time
Translates all timestamps used in the project into the PC local time where the client is installed.
Translates all timestamps used in the project into UTC format.
Translates all timestamps used in the project into the same used by HMI panel/server in order to show the same time.
This feature requires you to set the HMI RTC with the correct time zone and DST (Daylight
Savings Time) options.
NOTE
Operating Instructions 214 PB610 Panel Builder 600
Using the Integrated FTP Server
The HMI runtime system features an integrated FTP server that can be used to get access to the internal flash disk data.
Folders present on the Flash disk external to the runtime directory are not accessible via
FTP; external USB drive and SD Storage Card are not accessible via FTP.
NOTE
You can use any standard FTP client program to connect to the panel FTP server. The FTP server responds to the standard port 21 when using the IP address assigned to the panel as host.
NOTE
The server supports only ONE connection at a time; if you are using an FTP client which is configured to multiply the connections to the server in order to speed up the transfer operation, you will need to disable this feature in the client program or set the maximum number of connections per session to 1.
The FTP server is configured by default to accept incoming connection from the following accounts:
User name: admin
Password: admin
FTP permissions and account information can be changed from the “UserGroups” under the “Security” item of the project folder as shown in the following figure.
Additional information can be found later in this document in the chapter titled “FTP Authorizations”.
Operating Instructions 215 PB610 Panel Builder 600
Using ActiveX Client for Internet Explorer
In the standard distribution of Panel Builder 600, a Windows Client and an ActiveX Client is provided.
ActiveX components are NOT installed by default to the Target devices, in order to save space in the flash memory.
Installing ActiveX
The ActiveX component is distributed with the Panel Builder 600 installation package. The related files are located in the Runtime folder of the Panel Builder 600 installation directory. The files, “HMIAX.cab" and “HMIClientAX.html", should be copied into the workspace folder of the Target device, where the
Runtime is installed. The file copy can be done using the panel FTP server.
Starting from v1.90 of Panel Builder 600 has been introduced software
plug-in support (ref. to chapter on software Plug-ins chapter for more details) to simplify ActiveX installation. Just enable ActiveX plug-in from project properties and install/update runtime to add ActiveX files to the runtime and transfer it into the target without the need of manual copy of it via FTP.
NOTE
This ActiveX requires Microsoft Visual C++ 2008 Redistributable Package (x86) installed on your system. You may need to download the Microsoft Visual C++ 2008
Redistributable Package (x86) from the Microsoft web site.
The ActiveX plug-in require about 10MB of space. Enable it only if required by the HMI application to keep the smallest footprint for the application.
NOTE
HTTP Access to ActiveX files
When security is enabled, ActiveX files “HMIAX.cab” and “HMIClientAX.html” have to be accessible from the http server embedded into the runtime. Refer to
HTTP Authorizations chapter for more details.
Operating Instructions 216 PB610 Panel Builder 600
Internet Explorer Settings
Internet Explorer settings must be changed, adding the panel’s IP to the list of the trusted sites.
In Tools – Internet Option Security tab choose, “Trusted sites". Then click on the “Sites" button.
Type in the IP address of the Target device, the location where the ActiveX component has been installed and it will be loaded to the browser.
Operating Instructions 217 PB610 Panel Builder 600
Security Setting for Trusted Site Zone
Set your Internet Explorer Browser as seen in the following images:
Operating Instructions 218 PB610 Panel Builder 600
Install Active X in
Internet Explorer
In Internet Explorer, allow the installation of the ActiveX component when the question pops up in your browser.
In case you are using a Vista or Windows 7 operating system, you need to click on Yes on User Account
Control, as shown in the following picture.
Uninstalling Active X
To remove the ActiveX component from your system, you must delete it from the computer. By default, the component is installed in the following folder:
C:\Program Files\ABB\HMIClientAX
ActiveX information
The ActiveX is able to show projects at a maximum pixel resolution of 1200 x 800.
Operating Instructions 219 PB610 Panel Builder 600
Using VNC for Remote Access
VNC is a software for remote control. With VNC, you can see the HMI application remotely and control it with your local mouse and keyboard, just like you would if you were in front of it.
VNC is useful for administration and technical support. To be used it requires that a server is started on the HMI device; a viewer is used for connecting from a remote location.
VNC Server
Starting from v1.90, the VNC Server has been added as plugin (ref. to Plugins chapter for more details) to allow developers of hmi applications to choose if enable & download it as part of the runtime. Just enable it from project properties -> plugins and install/update runtime to download it into the target.
VNC server is located in folder
\Flash\qthmi\VNC and can be activated using macro launchVNC.
LaunchVNC macro is used to open the VNC configuration dialog. From the configuration dialog you can:
Start / Stop / Restart VNC Server in Control Tab
Enable security and set password in Options tab that will be used later for access using a VNC viewer.
Enable Autostart in Advanced tab to activate VNC server automatically every time the HMI panel start.
Silent Startup (usefull only when Autostart is enabled) prevents the VNC dialog from appearing at panel start-up and keeps it open in the background.
OK button on top/right of VNC server configuration dialog is used to confirm and save changes.
Advanced configurations are provided for expert users when VNC server is used in conjunction with a
VNC repeater to bypass firewall problems or to optimize VNC performances based on network configuration.
The VNC server uses port 5900/TCP.
NOTE
The Password of VNC server is null as default. Password can be changed via VNC viewer or with an external usb keyboard attach to the hmi panel.
NOTE
Operating Instructions 220 PB610 Panel Builder 600
For developers, a macro LaunchVNC is available in Developer tools.
NOTE
Show Taskbar icon flag is used by tech support when debugging problems out of KIOSK mode. This flag is not usefull for standard hmi users.
NOTE
The VNC Server has been design for embedded HMI panels WCE based. Win32 platform not supported for VNC Server.
NOTE
The VNC Server allows only one single client. It´s not allowed, to connect two or more at the same time.
NOTE
Drag and drop is not supported yet by VNC server.
NOTE
VNC Viewer
A VNC viewer is not provided as part of Panel Builder 600. However, many types of VNC viewers are freely available. One example of compatible VNC viewer is TightVNC.
Operating Instructions 221 PB610 Panel Builder 600
Alarms
The alarm feature is designed to provide alerts through pop-up messages, typically to issue a warning, or to indicate any abnormal conditions or any malfunctions in the system under control. Whenever a bit goes high, or the value of a tag crosses the limit of deviation defined in the alarm configuration, the respective alarm message(s) will be displayed in a special dialog. Or, alternatively, you can program certain macro actions to be executed when the alarms are triggered.
In PB610 Panel Builder 600 there is no default action associated to a triggered alarm. The visualization of a specific page containing the alarm widget is optional, and the specific action executed when the trigger condition is verified can be any one of the actions found on the action list.
The alarm configuration of an alarm determines whether or not the alarm has to be acknowledged. It can also be used to determine how the alarm appears when displayed on the HMI device, like background and foreground color. Alarm configuration also determines whether and when the corresponding alarm is logged in the event list.
For alarms displaying critical or hazardous operating and process statuses, a stipulation can be made requiring the plant operator to acknowledge the alarm.
The alarms are configured in the alarm manager and, are a component of all screens of a project. More than one alarm can be displayed simultaneously in the alarm widget, depending on its configured size. An event can trigger the closing and reopening of the alarm window.
In PB610 Panel Builder 600, working with alarms is similar to working with events. In general, there is no absolute need to have a pop-up dialog when an alarm is triggered. Any “background” action (from the list of available actions) can be associated with this event.
Alarm Configuration Editor
1. To open the editor double click on alarms in the Project Workspace.
2. Add the alarms by clicking the + button.
Name
Specifies the name of the specific alarm.
Enable
A user can enable or disable the triggering of particular alarms. Alarms can be enabled or disabled in
operation mode as well (for more information, see chapter “ Enable / Disable Alarms in Runtime ”).
Acknowledgment
For an alarm that needs to be acknowledged by the operator (when the alarm is triggered), select the check box to enable the acknowledgment. If checked, an operator is required to acknowledge this alarm any time it is triggered, before it will be cleared from the active alarm widget.
Operating Instructions 222 PB610 Panel Builder 600
Reset
The alarms' editor includes from V1.50 an additional column called "Reset". This check box, specific to each alarm, works in conjunction with the acknowledge check box. After an alarm requiring acknowledgment has been acknowledged, it will be cleared from the alarm list. If the “Reset” check box is checked, the alarm will continue to be listed in the alarm list, as “Not Triggered Ack”, until the Reset button present in the alarm widget is pressed.
Buffer
Specifies the buffer file to which the alarm history will be saved.
Trigger
This selection determines the triggering condition for an alarm. Three alarm types are available:
Limit Alarm
A limit alarm is triggered when the monitored tag value goes OUTSIDE of its given boundaries (low limit and high limit). If the tag value is equal to its low or high limit, the alarm is not triggered.
Bitmask Alarm
To get a valid trigger, 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. If the bitmask alarm is selected, you can specify one or more bit positions inside the tag. If one of the bits is set, the alarm is triggered. The bit position must be given in decimal format. If more bits are specified, each position must be separated by a “,”.Bitmask is a position, so it starts from zero (0).
Deviation Alarm
For the deviation alarm, a predefined “set point”, as well as a value for “deviation” will be given. If the percentage of deviation of the tag value from the set point exceeds this deviation, then the trigger condition becomes true.
(𝑉𝑎𝑙𝑢𝑒 𝑛𝑜𝑤
− 𝑆𝑒𝑡𝑃𝑜𝑖𝑛𝑡 > ( 𝑑𝑒𝑣𝑖𝑎𝑡𝑖𝑜𝑛
100
) ∗ 𝑆𝑒𝑡𝑃𝑜𝑖𝑛𝑡
Tag
Attach the tag in which the alarm shall periodically check the tag value, so that the respective alarm(s) is triggered when this deviates from its limits. The alarm function will refer to the value of this tag, or to the state of a bit, in the case of bitmask, to determine when to trigger the alarm.
Operating Instructions 223 PB610 Panel Builder 600
Action
Define the action(s) to be executed for the specific alarm. Actions are executed by default when the specified trigger condition becomes true. Additional conditions can be specified in the “Events”
configuration (in the last column of the alarm editor, as explained in chapter “ Action Enable ").
Description
This is the description for the alarm condition. The alarm description is normally a text; this text supports the multiple language features. The text can be a combination between static and dynamic parts, where
further information about this feature.
Colors
Foreground and Background colors of alarm rows (Active alarms widget) can be applied based on the status of alarm (ex. Triggered, Triggered Ack etc).
Operating Instructions 224 PB610 Panel Builder 600
AckBlink
Make alarm row (of Active alarms widget) blink when an alarm is triggered. Stop blink when alarm has been Ack. Blink can be used only with alarms that have the Ack flag enabled.
Severity
You can indicate the severity of each alarm. If multiple alarms are triggered simultaneously, the actions will be executed based on severity settings.
Events
These options allow you to specify conditions relating to the following matters: When the alarms events are to be logged, when the alarms widget view is to be refreshed or updated by the system, and some particular options for action execution.
Operating Instructions 225 PB610 Panel Builder 600
Alarm’s State Machine
The HMI system implements an alarm state machine which is described by the following figure.
The graph includes states and transitions between them according to the selected options and desired behavior.
Operating Instructions 226 PB610 Panel Builder 600
Setting Events
This chapter describes how to set events in the alarm configuration editor.
Log Events
1. Select the “Log" tab in the dialog box.
The list below represents a set of conditions in which you may want to store the specific event in the alarm history buffer.
2. Click the check boxes corresponding to the application requirements.
The alarm events history can be accessed by logging in, in a dedicated buffer called “Event Buffer”.
3. To configure the event buffer, you have to double click on
Buffers in the configuration editor.
Here there is an option for selecting the storage type. There are three options: “Flash”, “USBMemory”,
“SD Card”.
Operating Instructions 227 PB610 Panel Builder 600
When the events’ buffers are stored in persistent storages (local, USB, SD, etc.), the system saves the file on disk every 5 minutes.
However, events of type alarms are saved immediately.
Operating Instructions 228 PB610 Panel Builder 600
Notify
The user can choose the conditions under which the alarms should be notified in the alarms widget. This specifically refers to the default alarm widget, available in the widget gallery. The user can decide when the widget will be notified of a change to the alarm status.
We recommend leaving the default settings here, and changing only those necessary for specific application requirements.
TIP
Operating Instructions 229 PB610 Panel Builder 600
Actions
You can specify the conditions under which the action(s), configured for the specific alarm, must be executed.
By default, the actions are executed only when the alarm enters the triggering condition. You may change this by configuring the system to execute the configured action also for the other alarms statuses available.
Operating Instructions 230 PB610 Panel Builder 600
Active Alarms Widget
You can insert the active alarms widget in a page to see the status of alarms and to acknowledge or reset or enable/disable alarms. Simply drag and drop the active alarms widget from the advanced gallery page.
The alarm widget will display the alarms in Runtime Mode.
A Filter is available to show/hide just a subset of all configured alarms. Using the Combo box Filter it is possible for example to Hide Not Triggered alarms.
Operating Instructions 231 PB610 Panel Builder 600
Another Filter ( Filter 2) is available in widget properties and can be used to add a second filter based on another alarm field like Alarm name, or based on Severity or Description of alarm.
You can enable or disable the column sorting option, available at Runtime for the Alarms Widget, by clicking on the column header. The sorting order is based on the string sorting.
NOTE
Starting from version 1.80 the alarms’ widget provided in the gallery no longer has the
“Priority” column. The widget has a new column called “Severity” which comes by default next to the ID column. “Severity” column takes the values from the “Severity Settings” from the alarm editor.
Operating Instructions 232 PB610 Panel Builder 600
Alarms History Widget
PB610 Panel Builder 600 automatically logs the alarm list based on the flag settings set in the alarms editor, under “Log Event Types”. To see the historical alarm list, you can use alarms history widget.
The selection of the event buffer is available in the property panel.
NOTE
For each of the different alarm buffers, there is a specific event widget that must be configured for the project. The current version of the event list widget does not allow you to switch between buffers.
Operating Instructions 233 PB610 Panel Builder 600
Managing Alarms at Runtime
When an alarm is triggered, the alarm will be displayed in the active alarms widget. The widget allows you to acknowledge and reset the alarm. The alarm display can be filtered by “hide not triggered”, “show all” and other custom filters.
The visualization of the alarm widget is not automatic. If the widget has been placed on a certain page, when an alarm is active, you must add a dedicated action that will go to the page showing the alarm widget.
Enable / Disable Alarms at Runtime
You can enable or disable the alarms in PB610 Panel Builder 600 Runtime. If you want to disable an alarm, just uncheck the alarms from the “Enable“ column in the alarm widget and execute the “Save ” command. This way the alarm will not get triggered and the disabled alarm will not be displayed at runtime.
Later, if you want to re-enable the alarm, select the alarm and check the “Enable“ check box. Then click on Save. The alarm will now be subscribed and subject to being triggered.
Operating Instructions 234 PB610 Panel Builder 600
Live Data in Alarms Widget
This feature is used to view the live tag data value inside the alarm description. It is applicable only for the
“active alarms” widget.
To configure the live data visualisation in the alarm widget, follow a simple syntax rule. The tags to be included must be specified in the description, including the tag names in square brackets: [Tag name]
Example for live tag data.
During runtime in the alarm widget, the markers and tag name will be replaced, in the description column, by the actual value of the tag. The widget automatically refreshes and shows the current values of the tags in the widget.
In history alarm widget it will show the value of the tag at the moment the alarm was triggered.
Into the CSV file resulting from the dump of the alarms events list, the tag values can be seen in the description column.
Output will be displayed as shown in figure below.
NOTE
The ability to store the alarm description with tag values in the event buffer is a feature supported starting from version 1.80.
NOTE
Use '\' before '[ ]' where there is a need to show the '[ ]' in the description string. So, if the string to show is [Tag[1]], the correct syntax to use is [Tag\[1\]]
Operating Instructions 235 PB610 Panel Builder 600
Exporting Alarm Buffers as CSV File
The historical alarm list (the event buffer) can be exported using the specific action called
“DumpEventArchive”. The action is described in the chapter called “ Dump Event Archive ”. Please refer to that chapter for information about how to export the data.
NOTE
The tag values included in the alarms’ description are also included in the event description stored in the event buffer; the tags are sampled at the moment in which the alarm is triggered and that is the value recorded and included in the description; in the Alarm description, displayed by the alarm widget, the value may change because it is constantly updated, but no additional values are recorded. This feature is supported starting from version V1.80.
Operating Instructions 236 PB610 Panel Builder 600
Recipes
Recipes are a feature for organizing data storage in the HMI device and include services for exchanging data with connected controller devices.
This data can be written to the controller, and, conversely, the data can be read from the controller and saved back on the HMI panel. This concept is normally referred as “Recipes”, and it offers you powerful way to extend the capabilities of the controller. This is especially true for controllers that have a limited amount of internal memory.
The recipe memory is the physical storage for the recipes. The “Recipe Tag” block basically identifies the
“current recipe”: From the recipe memory, you take one recipe data record and designate it
“current/active recipe”. Then, you operate transfers over this, to or from the controller. These tags can be displayed on the page.
Currently the recipe data is configured in PB610 Panel Builder 600, the user can specify default values for each element of the data records. On runtime, data can be edited; the new data is saved to a new and separated data file, different from the original one containing the default values. Any change to recipe data is file on disk. The use of a separate data file on PB610 Panel Builder 600 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 on runtime.
To reset the recipe data to the default values, there is a dedicated action called “Reset recipes”; see below in this chapter for further information.
NOTE
The User can also select where the Recipe needs to be stored. There are three options for this: FLASH,
USB, and SD Card. The user can select any one.
You can configure recipes by adding the required controller data items to a page from the recipe widget.
A recipe can be associated with a particular page and is composed of all the recipe data items on that page. Recipe data items contain all the information associated with normal controller data items. But, rather than the data being read and written directly to the controller during the course of normal operation, the data is instead read from and written to the Control Panel memory that is reserved for the data item.
This chapter describes how to configure and use the recipes in PB610 Panel Builder 600 application.
Operating Instructions 237 PB610 Panel Builder 600
Recipe Configuration Editor
1. In the Project View pane, select Recipes and right click.
2. Choose Insert Recipe if you want to create a new recipe.
The newly added recipe item will be added in the project workspace.
3. Double click on the recipes to open the recipe editor.
4. Add the recipe elements by clicking the + button, and link the tags to the recipe element.
5. By clicking on the button for “Storage Type” you can select where to store recipe data.
A dialog in which the selection can be made will open.
Operating Instructions 238 PB610 Panel Builder 600
6. For USB and SD card you can provide the folder location.
NOTE
Recipes configuration files are created automatically when the project is saved. Recipes files are saved into the subfolder data of the project folder into the PC by Panel Builder 600.
When external storages are used, please copy this folder into the external storage selected.
Default path is “/Storage Card/data” for SD or “/USBMemory/data” for USB storage.
However, a subfolder of it can be used like “/USBMemory/MyRecipes/data”. The subfolder name “data” cannot be changed and is required for the recipes to work.
Configuring Recipes Set on the Page
The number of parameter sets can be changed in the number of sets field in the property pane. From there you can also change the name of each recipe set.
Recipe values for all the parameter sets can be entered into the recipe editor window.
Operating Instructions 239 PB610 Panel Builder 600
Defining Recipe Fields
The user can define the recipe field on the page by using the numeric field widget from the gallery and attach the tags from the recipe data source.
Example of a tag attached to a recipe field.
The Attach To dialog allows you to attach to the numeric field with all the different recipe variables, such as:
Current Recipe > Current selected Recipe set > Element > Value (or) Name
Selected Recipe > Selected Set0 > Element > Value (or) Name
Selected Recipe list
Currently selected Recipe list
Recipe Status
When the numeric fields are defined as read/write, the default recipe data can be edited at Runtime. As explained in the introduction, these new values are stored in a separate file as modified recipe data.
Operating Instructions 240 PB610 Panel Builder 600
Recipe Status
After every recipe upload or download, or recipe set modification, the recipe status parameters display a value. The following are the values and conditions for the recipe status system variable.
6
7
4
5
1
2
Code Function
0 Set modified
Description
Current selected set changed.
Download triggered Triggered a download request.
Download Done Download action completed.
3 Download Error
Upload triggered
Upload done
Upload Error
General Error
Error occurred when doing download - errors like unknown set, unknown recipe, controller not ready, Tags write failed etc.
Triggered an upload request.
Upload action completed.
Error occurred when doing upload - errors similar to download errors.
Errors like data not available.
When the panel starts up the value of Recipe Status is 0
NOTE
Configuring Recipe Widget for Runtime Execution
Two default recipe widgets are available in the advanced widget gallery category.
The “Recipe Set” widget allows you to select a recipe set for the upload and download operation. If you have more than one recipe in the project, then the “Recipe Menu” widget can be directly used to manage all the recipes in a single widget, listing recipes and selecting the sets for each recipe.
Operating Instructions 241 PB610 Panel Builder 600
Configure Recipe Transfer Macros
The recipe transfer action can be completed through the action list dialog. The transfer of recipes can be achieved by any of the following methods:
Attaching an action on an event for button or switches.
Configuring the action from alarms’ action list.
Using the schedulers actions’ list.
Description of actions available for Recipes is included in the relevant chapter.
Upload or Download of Recipes during Runtime
Recipe Download through Recipe Widget in Runtime
1. Drag and drop the recipe widget (as described in chapter “ Configuring Recipe Widget for Runtime
Execution ”) into the project to execute the recipe transfer in runtime.
2. Select the recipe from the drop down box, and select the recipe set from the set dropdown list.
3. Press the Download button to download the current selected recipe set, or press the Upload button to upload the current selected recipe set.
Operating Instructions 242 PB610 Panel Builder 600
Recipe Download or Upload Through Recipe Transfer Macro in
Runtime
The recipes can be downloaded or uploaded through the recipe transfer macro.
1. Define the macro button as described in chapter “ Configure Recipe Transfer Macros ”.
2. In runtime, execute the macro (if the macro is programmed with a push button, press the button).
The recipes data will be transferred to the controller, or uploaded from the controller, depending on the action programmed.
Example of the recipe project.
Backup and Restore of Recipe Data
The recipe data stored on the HMI device can be exported for backup purposes and later restored to the
system. Please refer to the chapter “ Dump Recipe Data
“ and “ Restore Recipe Data ” for further
information.
Operating Instructions 243 PB610 Panel Builder 600
Trends
Trending is a method of sampling and recording the values of a specified tag according to sampling conditions (normally, the time).
Trending is divided into two main parts: Trend acquisition and trend viewing. Trend acquisition (trend editor) collects the data into a database. The trend viewer (trend widget) displays the data from this database in a graphical format.
Real-Time Trend
In Real-Time trend, the data will be presented directly in the trend window, and the changes to the live data can be seen directly in the format of a curve on the trend window. Users can manage the process by seeing the trend on the Control Panel. The real-time trend widget is just a viewer for a tag, and it does not refer to any saved data in any buffer. Any curve plotted is lost when the page containing the widget is changed.
1. To configure the Real-Time trend, just drag and drop the Real-Time trend widget from the Basic >
Trends category of the gallery.
2. Select the trend widget and, in the properties pane, attach to the “Curve x Value" property the tag for which you want the data to be plotted. Data are always plotted against time.
NumCurves: Number of trend curves in the trend window. A maximum of 5 curves can be configured in a trend window.
Page duration: Time range of the X-axis. However, you can dynamically change the page duration in runtime with the Date Time combo widgets, thereby attaching to the trend window page duration properties.
X Labels: Number of labels in the X-axis scale.
Y Labels: Number of labels in the Y-axis scale.
Title: Trend title and font properties (like font size, label, etc.).
Curve x: Tag or trend buffer that will be plotted into the trend window.
Scaling can be applied to the tag values. To apply scaling, use the X forms attached to dialog.
Operating Instructions 244 PB610 Panel Builder 600
You can set the minimum or maximum of the curves. You can also attach a tag to these minimum and maximum properties. This enhances the ability to change the min and max dynamically in the runtime.
Also you can modify the properties, such as “Colors”, “Update time”, “Number of samples”, etc. of the trend curves through the properties view.
History Trend
If you want to analyze the data in the future, you will need to store the Trend data somewhere for later review. For this reason, we have introduced the History Trend. When you select History Trend, you can store date information with reference to time.
The first step in creating a history trend is to create a trend buffer.
The purpose of the trend buffer is to save a sequence of values of a specified tag in order to record the state of the tag while time changes. Once values are stored in the buffer a dedicated widget, called history trend viewer, can be used to represent the curve in a graphical format.
The history trend viewer is available in the widget gallery under the Basic >Trends category as shown by the following figure.
In the history trend widget the start time of the trend window will be the current time and stop time will be the current time + duration of the window.
Operating Instructions 245 PB610 Panel Builder 600
The plot starts from the right end of the trend window as in the figure below. The graph will be automatically refreshed during a certain interval of time, till the stop time. When the curve reaches the stop time then the graph will scroll left and the update of the curve will continue until it reaches again the right side of the viewer; at that moment a new scroll is automatically done and the process repeats.
Automatic refresh is an option available starting from version 1.80.
NOTE
Operating Instructions 246 PB610 Panel Builder 600
Trend Editor
Historical trends require a proper configuration of trend data buffer. Trends’ buffers are configured from the trend editor.
Trend buffers are stored in data files. There is an option to store these files on the internal storage (local),
USBMemory or SD Card or custom folders based on target platform.
1. In the project view pane, double click Trends to open the trend editor.
2. Add the trend buffer, by selecting the “
+ Add" button on the editor.
3. By clicking “
+” near each trend buffer, the corresponding buffer configuration is expanded.
The “Total memory Space” bar shows how much memory has been used by the trend buffers configured so far. The max number of samples allowed for a project is 1200000. The memory use is the percentage of this number. As in the Figure above, suppose the total number of samples used in the project is 40.000. Then the total memory used will be shown as 3%. This is calculated by the formula:
Total Memory Space = (
𝑇𝑜𝑡𝑎𝑙 𝑁𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑆𝑎𝑚𝑝𝑙𝑒𝑠 𝑢𝑠𝑒𝑑 𝑖𝑛 𝑡ℎ𝑒 𝑃𝑟𝑜𝑗𝑒𝑐𝑡
𝑀𝑎𝑥 𝑁𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑆𝑎𝑚𝑝𝑙𝑒𝑠 𝑎𝑙𝑙𝑜𝑤𝑒𝑑 𝑓𝑜𝑟 𝑎 𝑃𝑟𝑜𝑗𝑒𝑐𝑡
) ∗ 100
As we increase the number of samples, the percentage of usage also increases and this will be shown in the bar.
Operating Instructions 247 PB610 Panel Builder 600
The following are the properties of each trend buffer in the trend editor:
Trend Name
Active
Source
Defines the trend buffer name, which will appear when you define the buffer to a trend window property pane. A default name is assigned by the system; the name can be modified by the user.
Specifies if the trend runs by default when the system starts up.
Note: The trend buffers cannot be activated during Runtime
This combo list allows selecting the Tag which is sampled by the Trend manager system.
Sampling Time
Trigger
Samples are collected and stored in the disk data file on a cyclical basis. Default sampling condition is the time; the sampling time specifies the sampling period in seconds.
When the Trigger tag is specified, the source tag is not sampled on a cyclical basis but on the Trigger tag value change. In any case, the samples are plotted with respect to the time. The Trigger tag and source tag can be the same.
Number of Samples This represents the buffer size expressed in samples.
Storage Device
This is an option to select where the trend buffer data file will be stored.
Buffer
Trend data is organized as a FIFO queue. Once the buffer gets full, the oldest values will be erased to create space for storing the new values. If
Save a copy
when full is selected, when the buffer gets full, before overwrite it, system create a backup copy of it into external storages.
Sampling Filter /
Trigger Filter
When the triggering condition is the time, a new sample is considered significant
(and then stored) only if its value, in comparison with the last saved value, goes out from the specified boundaries.
In case the triggering condition is based on a trigger tag value change, the boundaries are applied to the trigger tag value.
Operating Instructions 248 PB610 Panel Builder 600
Configuring Trend Window for History Trends
The history trend widget (trend window) is the area used to display the trend buffer in a curve format.
After configuring the trend buffer in trend editor, you can use the historical trend viewer widget to plot the trend curve on the screen.
1. From the trend gallery, drag and drop the History Trend widget to the page.
2. In the property pane of the trend window, attach the history trend buffer to be plotted in the trend window.
Operating Instructions 249 PB610 Panel Builder 600
Trend Window Properties (Advanced View)
With the help of the property pane of the trend window, you can customize the trend window properties, such as X-axis time, Y-axis value, number of trend curves, changes to the labels, grids, number of samples etc. In the curve x category there is one property called Request Samples.
The property represents the maximum numbers of samples read by the widget from the buffer data file; this block size can be adjusted to fine tune performances in trend viewer refresh especially when working with remote clients; the default value is normally a good compromise for most cases.
Operating Instructions 250 PB610 Panel Builder 600
Trend Cursor
The trend cursor allows you to see the trend value at a point.
1. Use Show Trend Cursor macro and Scroll Trend Cursor macro to enable the trend cursor and move it to the required point to get the value of the curve at the particular instant in time.
2. To display the value of the trend cursor on the page, define a numeric field and attach the cursor value widget tag. This is the Y axis value of the cursor.
Operating Instructions 251 PB610 Panel Builder 600
3. To get the time at the particular point where the cursor is placed, define a numeric field and attach to the “Widget” tag as shown in the figure below.
The “Widget” tag represents the X axis cursor value for the trend window.
Exporting Trend Buffer Data to CSV file
The trend buffers stored in the selected media can be exported to CSV file using dedicated actions.
Please refer to the chapter “ Dump Trend ” for further information.
Operating Instructions 252 PB610 Panel Builder 600
Scatter Diagram / XY Graph
A scatter diagram is a type of mathematical diagram using Cartesian coordinates to display values for two variables from a set of data. The data is displayed as a collection of points, each having the value of one variable determining the position on the horizontal axis and the value of the other variable determining the position on the vertical axis.
In Scatter Diagram a linear interpolation of points is done.
To create a new Scatter Diagram you have to proceed as follows:
1. Add Scatter Diagram widget into the page
2. Select the number of curves (Graph1...Graph5) to show
3. Customize the general graph properties as for Trends like X Min, X Max, Grid details
4. Define the max number of samples/values to consider (Max Samples) for each curve. This parameter set the max number of values to show in the graph starting from first element in the array. Ex.
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 show (X-Tag and Y-Tag).
When the array tags change, it is possible to force a refresh using the dedicated macro RefreshTrend.
The ScatterDiagram is considered as a different type of Trend Widget. However, only the
RefreshTrend macro is supported for it.
NOTE
Operating Instructions 253 PB610 Panel Builder 600
Data Transfers
The Data Transfer feature allows the transfer of variable data from one device to another.
Using this feature an HMI panel can operate as a gateway between two devices, even if they do not use the same communication protocol.
The Data Transfer Editor
To configure each data transfer job, you need to correctly map the tags. This mapping is performed from the Data Transfer editor.
To configure the data transfer:
1. Double click on Config mode.
2. Double click on Data Transfer item.
3. To add a tag, click on the “+" icon: a new tag line is added.
Each line in the Data Transfer editor defines a mapping rule for the alignment of the two tags.
You can define more mapping rules if you need different update methods or directions.
Data Transfer Toolbar Buttons
Import/Export
Data Transfer settings can be imported and exported in .csv format. This feature can be effectively used whenever it is more convenient to perform changes directly in the .csv file and then reimport the modified file.
Filter keyword
Sorts only rows containing that keyword. Click on the list box to select the column where you need to apply the filter.
Operating Instructions 254 PB610 Panel Builder 600
Data Transfer Fields
Names of the Pair of Tags
Tag A / Tag B are names of the pair of tags to be mapped in order to be exchanged through the HMI panel.
Direction
A->B and B->A: Unidirectional transfers, values are always received by one tag and sent by the other tag in the specified direction.
A<->B: Bidirectional transfer, values are transferred to and from both tags.
Update Method
OnTrigger: Data transfer occurs when the value of the tag set as the trigger changes above or below the values set as boundaries of a tolerance range. Limits are recalculated on the previous tag value, the same that triggered the update.
This method applies only to unidirectional transfers (A->B or B->A).
NOTE
OnUpdate: Data transfer occurs whenever the value of the source tag changes.
This method applies both to unidirectional and to bidirectional transfers (A->B, B->A and
A<->B).
NOTE
NOTE
When using the OnUpdate method, the first tags shown at start-up of the HMI panel may not correspond to current values. Content is synchronized the first time the source value changes
Trigger, High limit, Low limit
Tag values that trigger 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 set limits.
This mechanism allows triggering data transfers only when there are significan variations of the reference values.
If both Low limit and High limit are set to "0", data transfer is triggered as soon as there is a change in the value of the trigger tag.
NOTE
Low limit is less or equal to zero.
NOTE
Operating Instructions 255 PB610 Panel Builder 600
Below an example where:
High limit=1,9
Low limit=- 0,9
• = points where the data transfer is triggered
Exporting Data to .csv Files
Configuration information for data transfers exported to a .csv file. Example is shown in figure.
Columns A through G contain the same data as in the Data Transfer editor. Some additional columns are present.
Column H: Unique identifier automatically associated by the Data Transfer to each line. When you edit the .csv file and you add one extra line, make sure you enter a unique identifier in this column.
Columns I – J: Reserved for future use,
Operating Instructions 256 PB610 Panel Builder 600
Data Transfer Limitations and Recommendations
Correct definition of data transfer rules is critical for the good performance of the HMI panels.
To guarantee reliability of operation and performance keep in mind the following rules:
The OnTrigger method allows only unidirectional transfers, (A->B or B->A)
The OnUpdate method allows changing the values in accordance with the direction settings only when the source value changes. No action is performed at boot time of the HMI
Panel Builder 600 is not a supervisory system. Its performance depends on:
number of data transfers defined in the Data Transfer editor,
number of data transfers eventually occurring at the same time,
number and size of features used in the project (i.e. tags, Alarms, Trends…).
Always test performance of operation during project development.
If inappropriately set, data transfer tasks can lead to conditions where the tags involved create a loop. Identify and avoid such conditions.
Operating Instructions 257 PB610 Panel Builder 600
Offline Node Management
When one of the devices communicating with the HMI panel goes offline, this may reduce the overall communication performance of the system.
The offline node management feature recognizes offline devices and removes them from communication until they come back online.
Additionally if you know that any of the devices included in the installation is going to be offline for a certain time, you can manually disable it to maximize system performance.
This feature is not supported by all communication protocols. Check protocol documentation to know if it is supported or not.
NOTE
Offline Node Management Process
Steps of the process are:
A certain device is online and it is regularly polled by the system: if the device does not answer to a poll, the system polls it again twice before declaring the device offline.
When a device is offline, the system polls the device with a longer interval, called Offline Retry Time
(ORT). If the device answers to the poll, the system declares it online and starts polling it at regular intervals.
The following schema shows the three polling attempts and the recovery procedure that starts when the
Offline Retry Time is elapsed:
Manual Offline Node Management Process
Offline Node Management can be done manually.
A specific device on a Node ID is online and it is regularly polled by the system.
Using a macro action connected to a button the user can declare the device offline: the system stops polling it.
Another macro action can be used to declare the device online: the system restarts polling it at regular intervals.
Operating Instructions 258 PB610 Panel Builder 600
Manual Offline Configuration
When you know that some devices in communication with the HMI are going to remain offline for a certain period of time, you can exclude them from data polling using the Enable node macro action.
For example, you can customize your page to contain a button and associate it to an action that will allow you to exclude and/or include a specific device node as needed.
The following example explains how to create a button that, when pressed, will disable an associated device.
To do this:
1. In a page of your project add a button.
2. Associate an event to the button (for example OnMouseRelease)
3. Click on the event row, click the '+' button and select Add action
4. Add the Tag Action EnableNode to the event (Tag Action -> EnableNode).
5. Make sure that the Enable field is set to “false”.
Operating Instructions 259 PB610 Panel Builder 600
6. Enter the correct Protocol and Device ID and click Ok.
7. The event set is shown in the row. The associated device is indefinitely disabled and therefore no longer polled for data collection.
In the situation described above, you may want to create another button to re-enable the device when needed. In this case the Enable field will have to be set to “true”.
CAUTION!
All disabled device nodes will remain disabled if the same project is downloaded on the panel, on the other hand, if a different project is downloaded, all disabled devices will be reenabled. The same happens on 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.
When using the action
Enable Node described above to force a device node back online, data polling will start immediately.
NOTE
Operating Instructions 260 PB610 Panel Builder 600
Automatic Offline NodeDetection
HMI panels can automatically disregard connected devices which are found to be offline.
When a device is found offline the first time, it is polled twice before being disregarded.
When it is declared offline it is polled at different intervals that can be set by the user.
To set the offline polling on one node ID:
1. Click the Config node and click Protocols.
2. Select the desired node ID.
3. Click on the Show Advanced Properties button: more columns are added to the table.
4. In the table set the Offline Retry Time parameter: the device on this node ID will be polled with this frequency when offline.
Offline Management Toolbar Buttons
Advanced properties shows / hides the advanced properties columns.
Offline Management Fields
PLC
Configuration
Tag dictionary
Enable Offline Algorithm
Offline Retry Time
Protocol type and name
Protocol settings
Tags imported for the protocol
Enable the Offline Management for the protocol
Interval, expressed in seconds, between when the node was disregarded and when the recovery procedure started. Max value for
ORT is 86400sec (24h).
Operating Instructions 261 PB610 Panel Builder 600
Multi-Language
A true multilanguage feature has been implemented in PB610 Panel Builder 600 through code pages support from the Microsoft Windows systems. The multilanguage feature handles different code pages for the different languages. A code page (or a script file) is a collection of letter shapes used inside each language.
The multilanguage feature can be used for a project by defining languages and character sets. PB610
Panel Builder 600 also extends the truetype fonts (TTF) provided by Windows systems to provide different font faces associated with different character sets.
PB610 Panel Builder 600 has features to allow users to provide strings for each of the languages.
When in edit mode, PB610 Panel Builder 600 provides support to change the display language from language combo. This helps users see the page’s look and feel at design time itself.
NOTE
In Windows XP operating systems, for the proper operation of the multiple language editor in
PB610 Panel Builder 600, you will need to install the support for complex script and East
Asian languages.
PB610 Panel Builder 600 is actually supporting a restricted set of fonts for the Chinese languages.
Operating Instructions 262 PB610 Panel Builder 600
For Simplified Chinese following fonts are supported:
Fangsong - simfang.ttf
Arial unicode MS - ARIALUNI.TTF
Kaiti - simkai.ttf
Microsoft Yahei - msyh.ttf
NSImsun - simsun.ttc
SimHei - simhei.ttf
Simsun - simsun.ttc
For the Traditional Chinese, following fonts are supported:
DFKai-SB - kaiu.ttf
Microsoft Sheng Hai - msjh.ttf
Arial unicode MS - ARIALUNI.TTF
MingLiU - mingliu.ttc
PMingLiU - mingliu.ttc
MingLiU_HKSCS - mingliu.ttc
Add a Language to Project
1. Launch multilanguage from the Project View pane.
2. Click the Add button to add the language.
3. Select the writing system and the default font used by all the “table like” widgets (such as alarms or events).
4. Use the
Default button to set the default language used when PB610 Panel Builder 600 Runtime starts multilanguage.
Language Display Combo
This combo can be used to change language at the design phase. This helps users to view the page in the different supported languages at design time itself.
Operating Instructions 263 PB610 Panel Builder 600
Multi Language Widget
Multilanguage support is available for different objects, like push buttons, static text, message, alarm description and the pop-up messages.
Multi Language for Static Text Widget
1. Double click a text widget on the page.
The dialog shown below opens.
2. You can edit the text for the selected languages and select the font.
The bold, italic and color properties are set for all the languages globally for the widget. Text for each of the languages can be given, by selecting the language from combo. However, it is recommended to use
Operating Instructions 264 PB610 Panel Builder 600
Multi Language for Message Widget
PB610 Panel Builder 600 allows you to use the multilanguage in the message widget.
You dragged and dropped a message widget.
1. Select the language from the language combo and enter the message description for the selected language.
2. Again, you can also use export and import strings as described in chapter “ Export and Import of
Operating Instructions 265 PB610 Panel Builder 600
Multi Language for Alarm Messages
PB610 Panel Builder 600 allows you to use multilanguage for alarm messages.
1. To add a multilanguage string for an alarm message, open the alarm editor and select the language list from the tool bar (language combo).
2. Add the alarm messages.
You can also use the export and import features, as described in chapter “ Export and Import of
Multi Language for Pop-up Messages
For the pop-up message macro, you can define the multilanguages.
1. Select the language from language list combo.
2. Enter the message in the show message macro.
Operating Instructions 266 PB610 Panel Builder 600
Export and Import of Multilanguage Strings
The easiest way to translate a project into multiple languages is to use the export feature, exporting all text to an external file. The translation can be executed in that documents, then using the import, bring all text for all languages back into the project.
The multilanguage strings will be exported in CSV file format, then you can modify the strings with an external editor, and import it back to the PB610 Panel Builder 600.
The CSV file exported by PB610 Panel Builder 600 is coded in unicode. To edit it, you need a specific tool that supports a CSV file encoded in a unicode format.
1. To export the multilanguage string, open the multilanguage editor and switch to Text view.
2. Click the Export button and save the exported CSV file.
3. You can modify the exported CSV file and Import back to PB610 Panel Builder 600.
4. Click Save button to save the text.
NOTE
It is recommended that you 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 for that project.
The strings are imported matching the widget ID and the page number of each widget. To change the separator used in the exported file, please have the regional settings of your work PC changed. Upon importing, the separator information is retrieved from the file. If not found, the default of “,” is used.
Immediately after the import, the modified strings will be displayed in the text tab. Once the user clicks the
Save button, the changes are saved to the internal widgets.
Operating Instructions 267 PB610 Panel Builder 600
The feature Import supports two formats
Comma separated values (.csv)
Unicode text (.txt)
Operating Instructions 268 PB610 Panel Builder 600
The Unicode Text file format must be used every time you import a file modified by Microsoft® Excel®.
You can save your Excel® sheet in this format choosing File > Save As… and choose the option Unicode
Text (*.txt) from the Save as type: combo.
Operating Instructions 269 PB610 Panel Builder 600
Change Languages at Runtime
After the project download, PB610 Panel Builder 600 Runtime will start with the default language. You can change the language on runtime using the Set language macro.
The language index corresponds to the language ID, as it can be read from the language configuration editor.
After languages are changed on runtime with the macro execution, the changed language is saved and retained for the next run.
NOTE
Limitations in UNICODE support
Panel Builder 600 has been designed for working with UNICODE text. However, for compatibility reasons with all platforms, UNICODE is supported only in a subset of field types.
Area Field
Protocol Editor
Alias
Tag Editor
Name
Group
Trends
Comment
Name
Printing Reports Name
Alarms
Name
Description
Charset Accepted Reserved Chars/Strings
ASCII [32..126] (space) , ; : . < * >'
ASCII [32..126]
ASCII [32..126]
. &
\ / * ? : > < | " & # % ;
Unicode
ASCII [32..126] \ / * ? : > < | " & # % ;
ASCII [32..126]
ASCII [36..126]
Unicode
\ / * ? : > < | " & # % ;
\ / * ? : > < | " & # % ;
[] - for live tags, \ escape seq for [ and \
Operating Instructions 270 PB610 Panel Builder 600
Area
Events
Scheduler
Languages
User Group
User
Recipes
General
Runtime
Field
Buffer Name
Name
Language Name
Texts in widgets
Texts from import files
Group Name
Comments
Name
Password
Comment
Name
Set Name
Element name
Charset Accepted Reserved Chars/Strings
ASCII [32..126]
ASCII [32..126]
ASCII [32..126]
Unicode
Unicode a-z A-Z _
Unicode
ASCII [32..126]
Unicode
Unicode
ASCII [32..126]
ASCII [32..126]
ASCII [32..126]
Project Name
Page Name
A-Z,a-z,0-9,-,_
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..)
Widgets ID
A-Z,a-z,0-9,-,_
A-Z,a-z,0-9,-,_
PLC Communication UTF-8, Latin1,
UCS-2BE, UCS-
2LE, UTF-16BE,
UTF-16LE
\ / * ? : > < | " & # % ;
\ / * ? : > < | " & # % ;
\ / * ? : > < | " & # % ; admin, guest unauthorized
\ / * ? : > < | " & # % ;
\ / * ? : > < | " & # % ; ! $'()+,=@[]{}~`
\ / * ? : > < | " & # % ; ! $'()+,=@[]{}~`
\ / * ? : > < | " & # % ; ! $'()+,=@[]{}~`
“PUBLIC”, “readme”, “index.html”
Operating Instructions 271 PB610 Panel Builder 600
Scheduler
The PB610 Panel Builder 600 provides a scheduler engine that can be easily configured to program the execution of specific actions at repeated intervals, on time basis.
Depending on your application, creating a schedule is typically performed by a 2-step process.
1. The first step is to define the parameters of the schedule that run on the panel. This includes selecting the actions to perform when the scheduled event is activated. The first step is performed using the Scheduler Editor.
2. The second step is to create a runtime user interface that allows the end-user to change settings per each defined user.
For example the runtime user interface will allow the user to turn on a device at 5:00 pm, and turn the device off at 10:00 pm, every day. This can be done by dragging and dropping a predefined scheduler widget from the gallery, and placing it on the page. Once on the page, you can set the properties of the individual GUI elements to create the desired interface to be presented to the enduser.
Configuring the Scheduler Engine
The configuration of the scheduler engine is done using the scheduler editor. The scheduler editor is accessible from the “Scheduler” voice of the Project View pane.
Click on the
+ symbol to add a schedule item.
Click on the “+" symbol to add a schedule item. Schedule items can be of two different types as listed below and shown in the figure below:
• Recurring Scheduler
• HighResolution Scheduler
Operating Instructions 272 PB610 Panel Builder 600
Column
Name
Type
Schedule
Action
Priority
Description
Scheduler name
Type of scheduler (Recurring or High-Resolution)
Defining macros, which have to be executed at the scheduled time
Setting a priority level for the event. This is used in case two distinct schedulers occur at the same time. The event with the higher priority will be executed before those of lower priority.
Operating Instructions 273 PB610 Panel Builder 600
High Resolution Scheduler
This scheduler can be programmed to perform an action, or sequence of actions, repeatedly, at a specific duration. This scheduler can be set in milliseconds.
To configure the high resolution scheduler, select High Resolution from the type column and set the desired duration from the scheduler column.
NOTE
This scheduler cannot be changed during runtime. If you want to change the schedule runtime, then use the recurrence scheduler by selecting Every, which is described in the following chapters. The minimum time resolution, when using a recurrence scheduler in
Every mode, is one second.
Recurrence Scheduler
This scheduler can be programmed to perform an action, or sequence of actions, and the schedule can be modified during runtime.
By default, when a schedule is added, the “Enable schedule” checkbox is marked. You have the option to keep a schedule in the project but disable it by unchecking the box.
Each scheduler can be configured to run once at startup (when the
On startup check box is marked).
Additionally, you can specify by default, the scheduler to be enabled or not at first run by using the
Execute only at startup check box.
Type
This combo allows you to select the type of the schedulers. You can change the type for the scheduler at
any time during runtime, as described in chapter “ Schedule the Events during Runtime ”.
Operating Instructions 274 PB610 Panel Builder 600
By Date
This schedule allows you to define the schedule for the specific date and time when the actions shall be executed.
Daily
This schedule defines the execution of a set of actions on a daily basis by specifying the time of day in which the actions are to be executed.
Every
This schedule is much like the High Resolution scheduler, with the possibility of changing it in the runtime.
This schedule allows you to execute the macros with a specific time interval. The time interval can be set from 1 sec to 1 day.
Hourly
This schedule allows you to execute a set of actions on an hourly basis, by specifying the minute in which the actions have to be executed.
Monthly
This schedule allows you to execute a set of actions on a monthly basis, by specifying the day in which the actions have to be executed.
Weekly
This schedule allows you to execute a set of actions on a weekly basis by specifying the time and day(s) in which the actions have to be executed.
Yearly Schedule
This schedule allows you to execute a set of actions once a year, specifying the date and time in which the actions have to be executed.
Mode
Mode parameter is available for a subset of scheduler types. It’s not supported by scheduler of type
Every, Hourly. This parameter allows choosing between following way of working:
Mode
Time
Random10
Random20
Sunrise+
Sunrise-
Sunset+
Sunset-
Explanation
This is the default. In this case is needed to specify details about time/date/week.
Parameters depend on Type of scheduler selected.
Executed 10 minutes before/later the time specified. So, if time is 10:30, actions is executed in range 10:20...10:40 where 20...40 is random.
Executed 20 minutes before/later the time specified. So, if time is 10:30, actions is executed in range 10:10...10:50 where 10...50 is random.
Executed n minutes/hours after sunrise time based on a specific location as explain in next chapter.
Executed n minutes/hours before sunrise time based on a specific location as explain in next chapter.
Executed n minutes/hours after sunset time based on a specific location as explain in next chapter.
Executed n minutes/hours before sunset time based on a specific location as explain in next chapter.
Operating Instructions 275 PB610 Panel Builder 600
Configuring Location in PB610 Panel Builder 600
In PB610 Panel Builder 600 we have a unique feature that schedules based on sunrise and sunset.
Before you start the sunrise or sunset scheduler, you need to define the location. Based on the UTC location, the system automatically calculates the sunrise and sunset time.
In the PB610 Panel Builder 600 installation, few locations are set by default. If your location does not show up under the list, you can add your location by entering the latitude, longitude and UTC information in the “Target_Location.xml” file under C:\Program Files\ABB\Panel Builder 600 Suite\Studio\config folder.
Example: The information for Verona City is as shown below: <file city = "Verona" latitude = "45.44" longitude = "10.99" utc = "1" />
After entering the location information, the PB610 Panel Builder 600 displays the city name in the place combo list, and you can see the sunrise and sunset time on the dialog.
Condition
This combo allows you to select a boolean tag (Yes/No) to be evaluated, before activating the specified actions, at the moment the timer is triggered. If tag = true, the actions will be executed. If tag = false, the actions will not be executed.
Default value is “none”. The actions are executed when the timer is triggered.
The condition combo will list only the tag attached to the Boolean data type.
NOTE
Operating Instructions 276 PB610 Panel Builder 600
Actions
From the Action List dialog, you can add as many actions as desired. The actions will automatically be executed when the schedule time occurs.
NOTE
The actions should be programmed in the PB610 Panel Builder 600. Actions cannot be modified in runtime. All other scheduler parameters can be modified in runtime, such as type, mode, location etc.
Configuring the Schedule Interface for Runtime Interaction
The user interface for runtime is the widget called scheduler.
1. To add this to the project, just drag and drop it from the advanced section of the widget gallery.
2. In order to select the scheduler items to be displayed in the widget, click on the + button of the Name property that is part of the scheduler object.
A dialog page opens where you can add the scheduler from the list at runtime.
Dialog page for adding the scheduler from the list
3. In the properties pane, you can customize the scheduler widget to adjust row colors, column width, show or hide column etc.
Operating Instructions 277 PB610 Panel Builder 600
Schedule the Events during Runtime
If you defined the scheduler graphical user interface (GUI) on a page (as described in chapter
schedule, during runtime on the server.
In runtime, the user has the flexibility to change all possible types and change the possibility to modes as described in the dedicated chapter.
Occurrence
This column specifies the date selected by the type of column, as shown in the figure.
Condition
This column lists the available boolean tags from the project. If a tag is selected as a condition, the scheduler will trigger only when the condition tag value is 1, otherwise the scheduler will not trigger.
Enable
This check box allows you to enable or disable the schedule. The scheduler will trigger when the enable check box is set. If you want to disable the scheduler temporarily, uncheck the Enable check box.
Operating Instructions 278 PB610 Panel Builder 600
User Management and Passwords
This chapter describes the user management system. The main purpose of User management module is to restrict access to various objects/widgets and/or operations, by configuring user groups and their authorization level. Users, user groups and authorizations are the 3 entities used for users’ handling.
The basic entity is the user, representing an individual that has the need to work with the system.
Each user must be a member of a group. Users can be a member of just one group. Each group will have different types of authorizations and permissions assigned to them.
Authorizations and permissions for the groups are divided in two basic categories:
Widgets’ permissions (hide, read only, full access) and
actions’ permission (allowed or not allowed).
The proper combination of these will allow for the implementation of the necessary handling of security options for the application.
Operating Instructions 279 PB610 Panel Builder 600
Configuring Security Options
This section describes how to configure security-related settings in PB610 Panel Builder 600.
To enable or disable the user management feature, right click on the Security folder in the
Project View and set Enable or Disable.
NOTE
Configuring Groups and Authorizations
1. Open User Groups to configure and assign their authorization in the ProjectView.
2. Add new user groups by clicking the “ +” Button.
Three predefined groups are available by default.
The three predefined groups cannot be deleted and their names cannot be changed.
Predefined group’s authorizations and comment fields can be instead changed according to application requirements.
For each group of users you can assign a home page. This means that, whenever a user from this user group is logged in, the selected home page for that group will appear.
There is one additional option called “Use Last Visited Page”. If enabled, and a new user logs in, the page visited by the previous user will be displayed.
Operating Instructions 280 PB610 Panel Builder 600
Modifying the Access Permission of Groups
To modify and assign the permissions, click the Browse button on the Authorization Setting column.
You will see the “Admin Authorizations” dialog; here you have several tabs for the several available options.
Widget Permissions
The following figure shows the dialog where you can change the widgets’ permissions.
For the widget, the possible options are:
Full-Access
Read-Only
Hide
When you click on Base settings the right part of the dialog shows the permissions that will be valid as default and at project level.
Operating Instructions 281 PB610 Panel Builder 600
The widget´ security settings can be changed, not only globally, but also for each single widget present within the project; all the widgets can be reached from the tree structure on the left part of the widget tab.
Permissions can be given at three levels:
“Project level”,
“Page level” and
“Widget level”.
In the tree structure the permission for a page can be set as
“Full Access”,
“Hide” or
“Read Only”.
All the widgets in this page will take the settings that have been assigned to the page with a type of hierarchy logic.
Suppose the page permission is set as “Read Only”, then all the widgets in the page will have the permission as “Read Only”. On selecting a widget inside the page from the tree structure, you can see that the permission is given as “Use Base Settings”. It means that it takes the permission given to the page(Read Only).
The widget permission takes the priority as follows:
Low priority: Basic settings (widget settings in general for the project)
Medium priority: Page settings (settings for all the widgets of a particular page)
High priority: Widget settings (individual widget's or its group/parent widget's permission of any page).
For example suppose a widget is set “Read Only” permission at project level and it is given “Full Access” at page level then the page level settings will be taken.
Later in the chapter, we explain how to modify permissions for a specific widget directly from the page view (rather than locating the widget from the tree view shown in the authorizations’ dialog).
Operating Instructions 282 PB610 Panel Builder 600
Action Permissions
With this dialog, it is possible to assign the authorizations for the actions with respect to a project. The access is either Allowed or Not Allowed.
As for the widgets, the authorizations can be assigned globally, but also for each single page and widget programmed into the project.
Later in the chapter, we will explain how to modify permissions for a specific action directly from the page view (rather than locating the action from the tree view shown in the authorizations’ dialog).
Operating Instructions 283 PB610 Panel Builder 600
FTP Authorizations
Per each group you can set specific authorizations related to the use of the FTP server as shown in the following picture.
FTP permissions can be enabled or disabled. If enabled, you can specify from the Permission combo box the access level selecting between “All“, „Write“, „Read“, “Browse”, and “None”.
The IP address list access allows to specify from which IP an incoming FTP connection should be accepted.
IP access list configuration is common to all groups.
NOTE
Operating Instructions 284 PB610 Panel Builder 600
HTTP Authorizations
The HTTP authorization dialog allows to configure the restrictions related to http access to the web server integrated in the runtime. HTTP settings are common to all groups and are valid just if security flag is enabled.
IP list can be used to list allowed ip addresses. Default is Allow all. Only IP listed in IP list will be authorized to access to http server embedded into the runtime.
Access limits is used to allow or restrict access to particular files and folders into the workspace. Based on Force Remote Login flag default workspace access change and as consequence using Access
limits is possible to open or close access to specific resources.
Force Remote Login Default Access to workspace Access limits
- FULL -
Disable FULL
Enable No Access
Can be used to block access to some files/folders or to require auth for it
Can be used to open access to files/folders
Set default access limits icon on the left of “+ - “ can be used to restore default configuration removing user customizations. Default is allow following public resources:
PUBLIC folder and Index.html, that contain web console and public resources
ActiveX files (hmiclientax.html, hmiax.cab)
Operating Instructions 285 PB610 Panel Builder 600
Miscellaneous
The Miscellaneous tab contains different settings related to the several options as indicated in the following picture.
Please note that as indicated in the picture, some settings are related to the group, but some settings are global to all groups.
Setting
Can enter config mode
Can manage other users
Can load factory settings
Explanation
Allow users of group to move runtime to configuration mode (for maintenance usually).
Allow users of group to manage other users like a superuser at runtime.
A user with this permission can add new users, remove users or change user permissions.
Users setting can be changed at runtime by authorized users and are saved into internal storage usually. A user with this authorization can execute a macro to clear these dynamic files and restore user management setting as was at beginning after first project download.
Can zoom
Can see log
Allow user to zoom in/out using context menu at runtime
Allow user to see logs at runtime
Can create backup Allow user to backup project.
Number of users allowed to login
Max number of users that can be connected to runtime in the same time. Default is
3.
Operating Instructions 286 PB610 Panel Builder 600
Access Priority
If the access control is applied to a widget, page or even the Global Access, then the top priority goes to the widget access.
Top Priority:
Medium Priority:
Control from widget
Page access or its parent access
Low Priority: Global access
These “exceptions” configured for an action or a widget directly from the page view, have priority over the base settings.
Configuring Users
1. To configure users, double click on Users in the Project View.
2. Click on + to add a new user.
A user named admin is already present by default and this user cannot be deleted.
Column
Name
Default User
Group
Password
Change Initial Password
Comments
Logoff time (In minutes)
Explanation
User Name
Identifies the user which is automatically logged-in by the system when starting, re-starting or after a logout. Only one default user is allowed.
Groups of the user. Groups are used to assign authorizations to users.
Password for the user
If true, the user is forced to change his password on first logon.
Comments for the user
The user will be automatically logged off after the specific time with no actions on the panel. After log off, the PB610 Panel Builder 600 Server goes to default user.
Minimum Length In numbers, the minimum length of the password must be equal or greater than the set value.
Must Contain Special Characters If true, the password must contain at least one special character.
Must Contain Numbers If true, the password must contain at least one numeric digit.
Operating Instructions 287 PB610 Panel Builder 600
Default User
You can program a default user for a project. When the server starts or reboots, the runtime is logged in with the default user. All the privilege settings of the default user will be activated in the system. If you want to log in as different user in runtime, you can use either the Switch User macro or the Log Off macro.
The default user will automatically get logged in if any user (other than default user) logs off.
Assigning Widget Permissions from Page View
You can assign different levels of security to different user groups, on a single widget, directly from the project pages.
1. Select the widget.
2. Right click and select Security settings from the context menu. Next, choose the group and assign the security properties to access the widget.
Operating Instructions 288 PB610 Panel Builder 600
Operation on Runtime
After starting the runtime, if a default user is specified within the project, the system will provide automatic login of that user without prompting for a user login. If no default user is configured, the system will ask for a User name and Password, and based on the user, the Runtime will allow only the configured permissions for that logged user.
There are specific actions for user logout, user edit, user add, remove user and switch user. Users can be
edited, added or removed on runtime as explained in chapter “ User Management Actions
”.
All the users’ information modified in runtime is stored in a separated file, thereby preventing loss of the users’ configurations in case of a new project download.
To remove dynamic files and changes applied to user’s configuration during runtime there’re two ways:
Runtime side:
DeleteUMDynamicFile action
Panel Builder 600 side: Delete Dynamic Files flag available in download dialog
Operating Instructions 289 PB610 Panel Builder 600
Force Remote Login
Starting from v1.90 of Panel Builder 600, a new flag is available to force user to LogIn when using remote access (via Activex or Remote Client), this is working when user management is enabled. If
Force
Remote Login is not enable remote access will use same level of protection of local access.
Force Remote Login is useful in particular when a default user is configured in runtime to automatically login without having to enter a login and password at startup, but a remote access protection is required.
Force Remote Login, when enabled, blocks all access from web to workspace folder in runtime. The only files/folders still accessible when this flag is enabled are as default:
PUBLIC folder and Index.html, that contain web console and public resources
ActiveX files (hmiclientax.html, hmiax.cab)
Please check Security -> UserGroups -> Authorization Settings -> HTTP tab for more details related to HTTP access limits or chapter HTTP Authorizations.
Operating Instructions 290 PB610 Panel Builder 600
Audit Trails
PB610 Panel Builder 600 supports Audit Trail functionality, which provides essential process tracking, user identification linked to time and the date of events logged facilitating recalls and/or rationalizing of your production processes.
The Audit Trail function provides flexible, tailor-made and easy-to-review event logs.
The Audit Trail (or audit log) is a chronological sequence of audit records, each containing information on the actions executed and the user that did them.
The Audit Trail can be enabled with or without user management. So it can access and supervise all actions from all users, and a normal user could not stop or change this.
Enable or Disable the Audit Trail
In the Project View pane, right click on the Audit Trail and click either Enable or Disable for the Audit
Trail recording on runtime.
The padlock symbol in the tree informs you if the Audit Trail is enabled or disabled. When the
Audit Trail is enabled, the padlock symbol shows locked, otherwise it stays open.
Operating Instructions 291 PB610 Panel Builder 600
Configure Audit Events
You can have more than one set of Audit Records. To add to the audit files, you need to configure the events buffer.
1. Double click the Events Buffer from the project workspace.
2. Add the events buffer and set the file size.
3. Select the log type Audit.
Here there is an option for selecting the storage where the dumped audit files have to be stored
The systems provides a save to file on the disk every 5 minutes.
Operating Instructions 292 PB610 Panel Builder 600
Configure Tags in the Audit Trail
For most of the cases, all the tags specified in the project do not necessarily need to be monitored. You can customize the tags to be monitored by Audit Trail.
In the Audit Trail editor, all the tags are available for selection. You can select only the tags to be monitored by Audit Trail. For each selected tag, the Audit Trail will record the write operation to that tag, together with the time stamp and user that executed the write operation.
Configure Alarms in the Audit Trail
You can specify the alarms to be monitored by the Audit Trail.
1. Double click Audit Trail from the project workspace.
2. Click on the Alarms tab.
3. Select the alarms you want to be logged in the Audit Trail.
The Audit Trail for alarms will also record and acknowledge the operation done by the logged-in user.
Operating Instructions 293 PB610 Panel Builder 600
Configure Login or Logout Details in Audit Trail.
Audit Trail can record information about user login and user logout events. These settings are available in the Misc tab of the Audit Trail.
Viewing Audit Trails in Runtime
Audit Trail data cannot be displayed in runtime, they are only available in the exported data file.
Exporting Audit Trail as CSV File
You can convert the audit data to a .csv file.
Operating Instructions 294 PB610 Panel Builder 600
Reports
A report is a collection of information that will be printed when triggered by an event.
The Panel Builder 600 programming software provides an editor to configure reports, their content, the printer and the trigger conditions.
The report comes as a special collection of pages with header, footer and body, including options for cover page. When configuring reports, Panel Builder 600 provides access to a dedicated widget gallery featuring only the widgets available for reports.
When the programmed event is triggered the report printout is started and the entire printing activity is carried out in the background.
Adding a Report
In the Project Workspace, double click on Reports to open the Editor. Then add the report by clicking the
“+" button.
Two types of reports are available:
Text report
Graphic report
Text reports are used to configure the line by line printing of alarms. Text reports are designed to work with line printers. Text is sent directly to printer´s port without using any special driver. Not all printers support this operation mode. This printing mode only works in WinCE platforms and requires to use a physical port.
Graphic reports contain graphical elements and may include complex widgets such as screen shots, or alarms. A specific printer driver for each printer is required for printing graphic reports: The list of supported drivers is part of following chapters.
Operating Instructions 295 PB610 Panel Builder 600
Text Reports
To add a text report for line by line alarm printing click on the “Text Report” button in the reports toolbar.
The format of the report can be freely defined using the report editor; the paper size can be defined in number of characters, while the available fields are listed in the box on the right side.
To include a field in the line to be printed, just drag and drop it from the list to the page layout.
The field can be resized using the mouse, the tooltip shows the dimension in “chars”.
In case the text cannot fit in the dedicated space the auto wrap is applied.
Printer options can be used to control flush of pages in printer. Depending on the printer, text can be printed immediately or after a timeout (from few seconds to minutes). However, it is always possible to force flush when one of following conditions happens: after n events, after n lines or after n seconds. A temporary buffer is used by runtime software. Flush conditions are in OR, so, as soon as a condition is met, the page will be flushed out of printer.
Only line printers support text report operation mode (see list of supported printers).
NOTE
Text Reports only work in WinCE platforms and require to specify a physical port (PDF format is not supported by text report).
NOTE
NOTE
In line printing, text is printed immediately line by line or after a timeout. This timeout may depend on printer model (could also take minutes for some models not designed for line printing).
Operating Instructions 296 PB610 Panel Builder 600
Graphic Report
To add a graphic report, click on the “Graphic Report” button in Reports toolbar.
The following figure shows report configuration editor.
This part of the editor is used to set the number of pages and their order.
Use the icon with the “+” symbol to add a new page to the report layout.
When the mouse goes over a page already configured, two icons appear to allow reordering or deleting pages.
Double click on a page to edit the page report content using the page editor.
Each page is divided in three sections: the header, the footer and the page body.
In the page editor the area under editing is shown in white, the others are grayed out.
To edit a different section, just double click over the grayed out area.
Check “Active alarm report” for that one you select as active.
Operating Instructions 297 PB610 Panel Builder 600
Page Body
The page body is the central part of the page
The widget gallery accessible from the right side sliding tab is context-sensitive and includes only the widgets available for the area under editing.
Operating Instructions 298 PB610 Panel Builder 600
Header and Footer
The header and footer are respectively the top and bottom parts of the page.
The widget gallery accessible from the right side sliding tab is contextual and includes only the widgets available for the area under editing.
The Context Widget Gallery
The widget gallery which can be normally recalled from the right side sliding pane is always adapting itself to the context.
The available widgets are:
Page Number Widget: automatic page numbering
Screenshot Widget: used to take a print screen of the current page HMI is showing. When you drag & drop the widget on the page it will automatically get the page dimensions of the HMI
Alarm widget: used to print the entire contents of the event buffer (the Default buffer is Alarm Buffer1)
The “Text” category collects the typical widgets used to compose reports with labels and numeric fields.
Operating Instructions 299 PB610 Panel Builder 600
Printer Configuration
A default printer can be configured from PrinterSetting menu for all reports. Each report can be configured to use it or to use a different type of printer
For PDF printer (supported only by graphic reports) you can define the folder where files are saved by using “Printed Files Location”.
Supported Printers
List of print languages supported by WCE driver printCE.dll (driver in use in WCE platform):
Print Language
HP PCL 3, HP PCL 5e,
HP PCL3GUI
Epson ESC/P2
Epson Stylus Color
Epson LX (9-pin)
Cannon iP100, iP90,
BubbleJet
Comments
printers compatible with
HP PCL3/PCL5e/PCL3GUI, including models many
DeskJet, LaserJet, DesignJet printers compatible with printers compatible with printers compatible with
ESC/P2, LQ
Epson Stylus Color
9-pin printers compatible with Epson LX, FX, PocketJet (line printers)
BubbleJet, iP90, iP100
PocketJet II, 200, 3 printers compatible with Pocket Jet
MTE Mobile Pro
Spectrum printers compatible with MTE Mobile Pro Spectrum
Adobe PDF File
SPT-8
M1POS
MP300
Adobe PDF file printers compatible with SPT-8 printers compatible with M1POS printers compatible with MP300 printers compatible with
Zebra CPCL language.
Zebra
Intermec PB42, PB50,
PB51, PB2, PB3 printers compatible with Intermec PB42/50/51/2/3
Datamax Apex
Supported ports: printers compatible with
LPT1 (USB printers)
Datamax Apex
File (PDF)
NOTE
In Win32 platform the only supported printers are PDF and Default. Default is used to indicate default OS printer configured in target PC. Any printer (not just USB printers) can be used in Win32 platform.
Operating Instructions 300 PB610 Panel Builder 600
Print Events
The configured reports can be triggered by specific events.
For Alarms, the configuration of the events can be done directly in the alarm editor from the Events dialog by clicking on the Print tab as shown in figure.
Only one report can be set as Active alarm report in a project. An alarm report can be a Text Report or a
Graphic Report.
Operating Instructions 301 PB610 Panel Builder 600
A Graphic report printing can be started also using the dedicated action call PrintGraphicReport from widgets´ properties pane.
The Silent option (true by default in action settings) allows, when set to false, a dialog to pop-up at runtime asking the user to adjust printer settings as shown in figure.
Minimum Requirements
Report printing requires operating system (BSP) V1.54 or above for Windows CE devices.
Operating Instructions 302 PB610 Panel Builder 600
Screen Saver
A screensaver is used to turn off the screen backlight or show a slideshow when the HMI is not in use.
A screensaver start when one of following events does not happen for a certain time range ( Timeout):
Touch of display
Mouse move
External keyboard key pressed
Screensaver configuration is available in Panel Builder 600 in Config -> ScreenSaver section.
Enable the screensaver via right mouse click on it in the menu Config.
To configure a slideshow, proceed as follow:
Select Timeout value (number of seconds before screensaver start when there’s no user interaction)
Select
Slide Interval (the number of seconds before switch slide)
Select Storage Device used for reading images used by slide show (Internal Storage, USB or SD).
For internal storage (Local), it is possible to select and import images that later will be downloaded into the device at project download. Images are downloaded into the folder workspace\projectname\screensaver.
When an external storage is used, images are located in the folder “screensaver” available in USB devices or SD Card.
The supported image formats are: JPEG/PNG.
Operating Instructions 303 PB610 Panel Builder 600
When the screensaver starts/stops, it is possible to execute some actions (macros or javascript functions). In Tab onStart actions can be configured to execute when the screensaver starts, in Tab
onStop actionswill be executeed when the screensaver stops.
Operating Instructions 304 PB610 Panel Builder 600
Backup/Restore
Backup/Restore of the HMI runtime and project is available.
Backup operation is working as follows:
1. Automatically unload current project to unlock opened files in use
2. Archive in a .zip file (standard or encrypted) the content of qthmi folder that contain runtime, projects, dynamic files like recipes / alarms / trends etc.
3. Reload project
Backup can be executed from the context menu in runtime -> Backup.
When Backup is called from the context menu, a dialog appears to guide the user in backup operation selecting the path where to save the .zip file with backup.
Backup files can be saved in all available storages like USB devices, SD card, network folders etc.
Operating Instructions 305 PB610 Panel Builder 600
Backup is available in WCE platform only. It´s not supported in Win32 / Windows client.
NOTE
Backup ignores external storages like USB and SD cards. So, if dynamic data like recipes, trends, events are archived there the backup will ignore it.
NOTE
Backup package can be restored from a formatted HMI panel using Transfer from disk option in the
BSP Loader menu. Just select backup file and the system will automatically check the package to confirm its compatibility with the current platform and install it.
Operating Instructions 306 PB610 Panel Builder 600
Keypads
Keypads are used for data entry operations. In PB610 Panel Builder 600 there are several keypads provided by default: Numeric, alphabet, alphabet small and up-down keypads.
Numeric keypad
Alphabet keypad
Up-down keypad
Operating Instructions 307 PB610 Panel Builder 600
Creating and Using Custom Keypads
Keypads can be created from scratch following the described procedure.
You can also change the existing ones directly applying modifications to them.
NOTE
1. Right click on the Keypad folder from the Project View pane.
The following context menu is displayed.
2. Click on Insert KeyPad.
The following pop-up with the New Keypad dialog is generated.
3. You can select any of the available keypads that are provided in the project template (the list shown on the left side) to create a custom keypad. If you need to create a keypad from scratch, select the
Blank option.
The following blank keypad is inserted.
Operating Instructions 308 PB610 Panel Builder 600
4. You can use the widgets available from the keypad widgets gallery to create the custom keypad.
Newly created keypads will be saved in the project folder, together with all other project files.
Sample of a custom-created keypad
5. The custom-created keypad may be used for any specific field where the keyboard type property has been properly set by selecting the corresponding keypad from the property Keypad Type in the
Property View.
The Up-down keypad is mainly used for moving cursors in widgets and supporting this function. An example is the following control list.
Operating Instructions 309 PB610 Panel Builder 600
Deleting or Renaming Custom Keypads
1. Right click on the Keypad folder in the Project View.
The following context menu is displayed.
2. Choose the Remove Keypad Page option to remove the keypad page from the project, or the
Rename Keypad Page option to rename the keypad.
NOTE
By default, any numeric widget (read/write numeric field) will be assigned the numeric keypad. If you decide to modify the default numeric keypad that will be used throughout the project, the following procedure is recommended, so you won’t need to assign that new keypad to all numeric entry widgets. First, create a new keypad, using the numeric keypad as the keypad type and save it with a different name. This will be a backup of the numeric keypad. Then open and modify the default numeric keypad, and save it with its original name. The now modified numeric keypad will be assigned by default to all numeric fields in the project.
Operating Instructions 310 PB610 Panel Builder 600
Keypad Type
The Keypad Type is one of the parameters available in properties window of keypads. Use this parameter to define what type of data entry is needed. Follow the list of options available:
Option
Auto
Decimal
Hexadecimal
Ascii
Explanation
This is the default.
Only numeric keys are accepted. Entering 10, the keypad return back value 10 that will be display as 10 if the attached field is numeric or ASCII, as A if the attached filed is hexadecimal.
Only hexadecimal keys are accepted. Entering 10, the keypad return back value 16 that will be display as 16 if the attached field is numeric or ASCII, as 10 if the attached field is hexadecimal.
All keys are enabled. Entering 1A keypad return back value 1A that will be display as 1 if the attached field is numeric, as 1A if the attached field is ASCII or as 1A if the attached field is hexadecimal.
Operating Instructions 311 PB610 Panel Builder 600
External Keyboards
Runtime has been designed to work with external keyboards connected via USB.
Keyboards can be used for
Data Entry (default)
Actions map on specific keys.
You can map for example, you can map the “right arrow” key event "pressOnClick" to the LoadPage action.
You can configure your keyboard at project level so that the setting you create will be inherited by all the page. 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.
The Keyboard Editor can be opened using the tab Keyboard at the bottom of the project or page workspace.
Each row in the Keyboard Editor corresponds to a Key. For each key, the following information is available:
Information
Item
Label
Code
Explanation
Description
The name of the key
The code of the key
Enable The individual enable status of the key
Inherits project actions Defines whether the key is inheriting the action programmed at the project level
Operating Instructions 312 PB610 Panel Builder 600
The table shows the possible configurations:
Enable
Checked
Checked
Inherits project actions Editor appearance
Unchecked
Action lists show the page actions (or nothing if the list is empty)
Checked
Action lists show the project actions only and cannot be edited
Runtime behavior
Only the page actions (if any) will be executed.
Only the configured project actions (if any) will be executed.
Unchecked Checked
Unchecked Unchecked
Inherits project actions checkbox and all action lists are disabled. Action lists show the project actions only.
Inherits project actions checkbox and all action lists are disabled. Action lists show the project actions only.
No page or project action will be executed.
No page or project action will be executed.
Search and Filter
After selecting Filter by to key name, you can start typing the name of the Key in the box at the left of the toolbar and the Keyboard Editor will list only the keys whose Label contains the text you have entered.
Alternatively, if Filter by has been set to key code only the Keys containing the text in their Code column will appear in the list.
Operating Instructions 313 PB610 Panel Builder 600
Shows
You can easily select what keys will be listed in the keyboard editor window.
Code
All Keys
Modified Keys
Modified Keys in project
Description
The editor will show all keys available in the keyboard layout
The editor will show only keys that have been configured with some actions at the page level
The editor will show only keys that have been configured with actions at the project level
Clear Actions
The Clear Actions button is available to delete actions configured for one or more keys in the Keyboard
Editor. To Clear Action, select one or more keys and then press the Clear Actions button.
You will clear all action configured for the selected keys either in page or in project will be removed depending on what we are currently configuring, either the project actions in the project view or the page actions in the page view. A confirmation dialog will appear to request confirmation of the requested command.
Operating Instructions 314 PB610 Panel Builder 600
Keyboard Layout
The keyboard layout combo box allows the user to select the layout of the keyboard.
Generic Keyboard corresponds to a generic International Keyboard layout.
Enable Keyboard
You can enable/disable keyboard actions both at the project level and at the page level. A dedicated property is available in the project property sheet and in the page property sheet.
The Keyboard can also be disabled at runtime by using a dedicated macro command KeyboardMacros.
Operating Instructions 315 PB610 Panel Builder 600
Configure Macro Actions for Keys
To configure actions for keys in the Keyboard Editor just click on + on the key you want to program and you will obtain the expanded view for key configuration.
Press the to configure.
or buttons to add macro commands or Javascript functions to the key event you want
Operating Instructions 316 PB610 Panel Builder 600
Special Widgets
DateTime Widget
DateTime widget can be used to view and edit the current time and date at runtime. The widget can be found in the widget gallery in Basic > Edit-Controls.
In the Property View pane of the widget you can set the format of date and time as “Date only”, “Time only”, “Date and Time”; different formats for representing date and time are available as shown in figure below.
“Time Spec” option allows selecting which time the widget has to show during runtime, three options are available for this property:
“server”,
“local” and
“global”.
To understand the difference between the options available for the “Time Spec” property, you need to
Modes ” to get familiar with the HMI software architecture first.
If we select “server” as “Time Spec”, the widget will show the time information as handled by the server side of the HMI system.
If we select “global” as “Time Spec”, it will show the Global Time (GMT).
If we select “local” as “Time Spec”, it will show the Local Time in the widget (the time of the target where the project is running).
Operating Instructions 317 PB610 Panel Builder 600
RSS Feed Widget
The RSS ( Really Simple Syndication) Feed widget allows to display on the screen your favorite RSS
Feeds directly from the internet. The widget is available in the widget gallery under the media category.
RSS Feed widget
The RSS Feed widget main properties are:
RSS Source allows you to specify the feed URL,
UpdateRate allows to specify the refresh time.
Feeds sources are fixed and cannot be changed in runtime.
NOTE
Operating Instructions 318 PB610 Panel Builder 600
Properties
The RSS widget is specifically designed to work on units where the Internet Explorer browser (Pocket Internet Explorer) is part of the operating system.
NOTE
Control List Widget
PB610 Panel Builder 600 provides control list widgets, a convenient way to represent the status associated to a particular process but also a way to control that process from the same widget.
The control list widget is available in the widget gallery under the advanced category.
There are two types of control lists. One is a control list group, in which the up and down buttons are present on the control list itself. The state can be selected with the up and down buttons. The other type of control list has no pre-configured buttons in the group. In that case, the state can be selected by pressing on the screen.
Operating Instructions 319 PB610 Panel Builder 600
State
States are added by selecting Add/Remove list items from the “List Data” voice in the Property View pane. Any value can be assigned to a state. Activating the state will result in a write operation to the tag, which has been linked to the value property of the control list widget.
Operating Instructions 320 PB610 Panel Builder 600
Selection
Selection shows which status is currently selected, and will appear as a highlight cursor moving up and down (according to the use of the defined keys). The Selection property can be attached, as well, to a tag. The small triangle on the left side of the list tells you what the current status is.
There are two write modes for the control list:
Write on Select:
.The value will automatically be written when the status is selected.
Write on Enter:
First select the state, and then press the enter key to write the status value to the tag.
Read Only:
The Read only property of the widget can be attached to a tag and will control whether the control list will be just an indicator, or a combination of both. For example, with a machine in Manual mode, the Control list will let the operator select which state should be active and while in Auto mode, the list is an indication of the active step.
Operating Instructions 321 PB610 Panel Builder 600
Variables Widgets:
The variables widget is available in the advanced category under the “Data Sources” sub-category.
The purpose of variable widgets is to have some internal variables that can be used for certain operations such as data transfer or use in JavaScript. The variables are local to the page where the widget is inserted.
1. Drag and drop the widget to any position on the page.
This will display a place holder to remember the widget is there, but it will not be visible at runtime.
You can create some variables and assign values.
The configured variables can be referenced from the “Attach” tag dialog once you click on the widget source.
Operating Instructions 322 PB610 Panel Builder 600
In case you need global variables, they can be configured from the project widget adding the desired variables to the global variable widget.
Operating Instructions 323 PB610 Panel Builder 600
Using Variables in JavaScript
The variables defined according to the explanation above can be also referenced in JavaScript 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");
IPCamera Widget
An IPCamera widget is available in Widget Gallery. Using this widget is possible to show images captured from an IPCamera to show a video stream.
Follow the list of main parameters available for IP Camera widget:
Parameter
Camera IP
Refresh Rate Number of JPEG images for second allowed. The max frame rate is 1fps.
User Name Useful when IPCamera device is protected by a username & password
Password
Explanation
IP/URL of the IPCamera when used in JPEG format.
MJPEG
Camera IP
Useful when IPCamera device is protected by a username & password
IPCamera widget can be used also with streaming HTTP MJPEG. In this case parameters
“Camera IP” and “Refresh Rate” are ignored.
“MJPEG Camera IP” is the IP of URL of MJPEG streaming.
Ex. http://192.168.0.1/video.cgi
The only supported protocol is HTTP.
For showing single frames the only supported format is JPEG while for streaming the only supported format is Motion JPEG.
Performance of streaming are not fixed and depend on many factors like:
Frame size
Operating Instructions 324 PB610 Panel Builder 600
Frame compression level
CPU of HMI Panel
Quality of IPCamera
Based on these factors the widget can reach up to 25 fps.
Multiple widgets are supported, however in this case performance could reduce frame rate of each single widget.
Multistate Image Widget
Multistate Image is a widget designed to show an image from a collection based on the value of a tag used as Index. This widget may be used also for simple animations.
Follow the list of parameters of MultistateImage widget:
Parameter
Value
Images
Animate
Explanation
Index of Image to show in Widget. Attaching this property to a tag is possible to use this tag as Index, as a selector. Ex. value=0 means show Image with Index 0 in “Images” collection.
Images collection. Add/Remove Images is used to add/remove images that later can be shown using related Index.
When Animation is true, a slideshow is shown and images change every 1000 ms (default
Time interval).
Operating Instructions 325 PB610 Panel Builder 600
Combo Box Widget
The Combo Box widget is available in widget gallery and is already used by many widgets as a selector widget or as a way to filter rows shown in a table (like alarms or trends) based on values selected on combo.
Follow the list of parameters of Combo Box Widget:
Parameter
Index
List / String List
Data / Data List
Explanation
Each item listed in a combo has an index 0...n. This field returns the index (integer) of selected item in combo.
Strings to show as items into combobox widget. This field is multilanguage.
Optional parameter available in “advanced” mode that allows returning in field “Data” of the widget the related value reported in “Data List” (as string). Usually “Index” is enough for 90% of applications, however sometime is useful to return a custom value based on item selected in combo box.
It is useful in many applications to attach fields like Index or Data to tags to know the values related to the selected item in the combo box. When attached to
Index, the tag will contain the index (integer) of the selected item (0...n), when attached to Data, it will contain the data value (string) specified in the Data
List.
Operating Instructions 326 PB610 Panel Builder 600
Consumption Meter Widget
Consumption meter widget is available in the widgets gallery. This widget has been intended specifically to monitor a resource which is continuously increasing. The system reads the value of the resource and calculate the increment in a predefined a range of time, the increment is then represented in a trend-like window, using bar-graphs. A typical application for this widget is the calculation of the power consumption of a system.
Representation is done using a bar graph where it is also possible (when range is weekly) to assign different colors based on the range of time.
Below you can find a description of the main properties of this widget:
Property
Value
Graph Duration /
Graph Duration
Units
Bar Duration/Bar
Duration Units
Explanation
This is the resource monitored by the system
These properties determines the time period that will be represented in the trend window
Time Periods
These properties determines the time period represented by each bar composing the graph
This property allows to highlight, with a minimum resolution of 1 hour, the increment of the monitored resource in a determined time period by using a specific color. Each bar composing the graph will then be represented using different colors, each showing the increment of the monitored resource in the corresponding time period.
Example: design a monitor for the consumption of energy with a weekly scale and a daily unit. Follow these steps to configure the widget:
1. Add protocol
2. Add Tag and link it to the physical variable to monitor (total energy consumed – ex. KW/h), we can call this Tag KWh. This tag contain an incremental number that summarize how many KW/h has been consumed from when energy started.
Operating Instructions 327 PB610 Panel Builder 600
3. Add a Trend and link it to the KWh Tag to monitor
4. Add Consumption meter widget into a Page
5. Attach
Value property of Consumption Meter to the KWh Tag.
6. Set Graph Duration/Units to 1 Week (range of time considered by Widget). This allow us to have a weekly graph of consumed energy.
7. Set Bar Duration/Units to 1 day (range of time where calculate consume of energy)
8. In Properties -> Consumption Meter, you can change the number of labels to show in the bar graph
(ex. X Labels = 7 if we need a weekly graph).
9. Open Time Periods to access a configuration dialog that allow the setting of different colors for different values of the Tag KWh monitored in each bar.
10. Add as many color bands as you need, in this example we’ve added 3 color bands.
11. Assign to each hour in the weekly table the related band. In this example a red band (E1) was used to indicate the range of time in the day/week where the cost of energy is the highest.
12. For each band, if needed, a scale factor can be assigned.
The result is a consumption meter as a bar graph that shows daily consumption of energy (KW/h in this example) where the colors indicate the different energy cost that have been consumed. The height of each bar represents the amount of energy in the range of time considered (1 day in this example).
In TimePeriods dialog, to assign the color to the cells of the table, you can select the cells and click on the related band/color. Another way is to enter the index value of the band (1, 2, 3) into the cell to color it.
Operating Instructions 328 PB610 Panel Builder 600
The Macro ConsumptionMeterPageScroll can be used to scroll the bar graph back and forth. The macro RefreshTrend is necessary to refresh the bar graph because it’s not automatically refreshed. All other Macro of Trends are not supported today by the consumptionMeter.
Operating Instructions 329 PB610 Panel Builder 600
Custom Widgets
PB610 Panel Builder 600 includes a large library that includes predefined dynamic widgets (such as buttons, lights, gauges, switches, trends, recipes, and dialog items), as well as static images (such as shapes, pipes, tanks, motors etc.). With the widget library, you can simply drag and drop an object on to the page, and then size it, move it, rotate it or transform it any way you want. All widgets in the gallery are vector based and allow lossless enlargement.
Custom widgets are widgets created by the user and based on the various existing widgets in the gallery.
This chapter describes how to create a customized widget and assign its properties.
The advantage of the custom widget is that it builds a widget out of any complexity, including several elements, and can decipher which properties have to be published and made available in the “custom widget” Property pane.
Creating Custom Widget
1. Select all the widgets you want as part of the custom widget and make them one group.
2. Right click on the group, and select
Convert to widget from the context menu.
3. Select existing custom widget types (such as knobs, button with light etc.) or select Custom… to create a new custom widget type.
Operating Instructions 330 PB610 Panel Builder 600
Adding the Properties
After creating the custom widget, the next step is to add the properties that will be published in the custom widget property pane. The Property Select dialog shows all the applicable properties for the grouped widget. This is basically a list of all the properties of all widgets grouped together.
A custom widget is created.
1. Click the corresponding check box to select the properties.
2. Enter the name of the custom widget.
This is the name that will appear in the Property View.
3. The next step is to select the properties that will be displayed in the Property View. Click on the
+ button above the properties list box.
The Property Select dialog will be displayed.
NOTE
The ConvertToWidget dialog shows “standard” custom widget types. These types are defined in the gallery. The dialog, however, does not show types that are specifically created for a project.
Display Name
The Display Name and Description are names that will be shown in the Property View. You can change this value to set the information for each custom widget property.
Attribute Name
The Attribute Name is the name exposed by PB610 Panel Builder 600, to JavaScript functions and Attach
Tag dialog. The default property name has the form WidgetType.name. 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 etc.
Operating Instructions 331 PB610 Panel Builder 600
Display Category
The Display Category is the category or group of the property in the Property View. All properties in the same category are shown together in the Property View. This allows you to organize the properties in the
Property View. The Display Category allows you to view by category group, by clicking on either the
Collapse or Expand button. For example, you can declare position properties, like the X-coordinate, height, width properties in a single display category called Position.
Description
The Description property allows you to define the description and comments within the property. The information will be displayed in the Property pane.
Advanced
The properties are shown in standard or advanced mode. The Advanced check box allows you to specify whether each property should appear in the advanced, or in the simple Property pane.
Supports Tag
The Supports Tags check box must be marked if the property supports the “Attach To” attribute.
Tags
The Tags list box indicates the internal tag name for the widget. This internal tag name is typically the same as the attribute name. But you can assign a different attribute name for your custom widget.
The Tags list is also used to combine tags.
1. If you want to combine two or more properties into one, select the primary property in the property list and click on the + button above the Tags list box.
The Property Select dialog is displayed.
2. Select the properties that should be combined.
This dialog box only shows the properties that should be combined. Not all properties are shown in the properties list.
NOTE
Operating Instructions 332 PB610 Panel Builder 600
Example:
1. To combine the min property of the scale widget and bar graph widget, click on the NeedleWgt min property and click on the BargraphWgt min property from the property select dialog.
2. Click the OK button.
Both attributes are shown in the Tags list box.
You can arrange the order of the properties by clicking on the up or down button in the property list.
To remove a property, select the property name and click on the delete button.
When a property is selected in the property list, the property information is shown in the dialog box.
NOTE
Custom widgets usually are composed by many sub widgets. For example a button is a complex widget composed by two Image widgets, a button widget and label. This is clearly visibile in the ObjectView when the widget is selected. To select a sub widget like the label in a button, use ObjectView or Shift + leftClick of mouse. In this way sub widget can be changed without ungroup all widget.
Editing Custom Properties
You can change the properties of a custom widget after it has been created.
1. Simply right click on the widget in the page editor and select the
Custom Properties menu item from the context menu.
The Custom Properties dialog is displayed.
2. Change the properties.
Operating Instructions 333 PB610 Panel Builder 600
Sending E-Mail
The SendMail action can be programmed as trigger action for an alarm or for a timed scheduled action.
You can include tags in the e-mail body. Upon executing the action, tags value, instantaneously, will be detected by the system and included in the message body.
Sending E-Mail Script
The SendMail action is available under the script tab of the action list for alarms and scheduler actions.
Configure E-Mail Server
To configure the e-mail server, you need to provide the following information: SMTP Server Address
( SMTP), Server Name (optional – it can be used for information purposes), Server Port and, if authentication is required, UserName and Password.
Operating Instructions 334 PB610 Panel Builder 600
NOTE
You can add more E-mail servers by clicking the “+" button on the left hand side.
When you are writing, the system does not yet support any security login mechanism, such as SSL.
Configure E-Mail Accounts
In the e-mail Info the recipient e-mail addresses are set. If you want to send to more recipients, separate the e-mail address with a semi-colon “;”.
Sending Live Tag Data through E-Mail
You can send live tag data to the recipients within the e-mail body.
1. In e-mail Info, select the tags you want to send from the Tag1, Tag2, Tag3 dialog boxes.
2. In the e-mail body, use the keyword “@TagIndex" to display the tag data.
The “Tag” information that follows the “@” symbol represents the index of the tag as per the configuration made. In the example below, the “Temperature” tag has index 2; to insert the value of the “Temperature” tag in the mail message body, use the “@2” syntax.
Operating Instructions 335 PB610 Panel Builder 600
Example
Limitation
A maximum number of 3 tags is supported in each e-mail message body.
Operating Instructions 336 PB610 Panel Builder 600
JavaScript
The purpose of this chapter is to describe the JavaScript interface implemented in PB610 Panel Builder
600. PB610 Panel Builder 600 JavaScript is based on the ECMA Script programming language, http://www.ecmascript.org
, as defined in standard ECMA-262. Microsoft's Cakra and Firefox Spider
Monkey JavaScript engines support the ECMA Script standard. 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 ECMA Script language, there are several existing tutorials and books that cover this subject, such as: https://developer.mozilla.org/en/JavaScript
The purpose of this document is not to explain JavaScript language, but rather to describe how
JavaScript is used in the PB610 Panel Builder 600 HMI Runtime.
Execution
A JavaScript function is executed when an event occurs. For example, a user can define a script for the
OnMousePress event and the JavaScript script will be executed when the button is pressed on the panel.
It is important to note that JavaScript functions are not executed in the same manner as certain other controller programming scripts, such as Ladder Logic. JavaScript functions are not executed at a given scan rate the whole time, but they are only executed when the given event occurs. This approach minimizes the overhead required to execute logic on the Control Panel.
PB610 Panel Builder 600 provides a JavaScript engine running at the client side. Each project page can contain scripts with scope local to the page where they are programmed. The project can also contain global scripts that can be executed by scheduler events or alarm events, but it is important to understand that the scripts are still executed at the client side. In other words, having more than one client connected to the Control Panel (for instance, an external PC running the Windows Client) means each client will run the same script, providing output results that depend on the input. Inputs provided to the different clients may be different.
This can be clarified, for instance, considering a situation in which the script acts based on a slider position, which can be different for the different clients.
Events
You can add JavaScript in the following events:
Widget Events
Page Events
System Events
Operating Instructions 337 PB610 Panel Builder 600
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.
Parameters
me: The object that triggers the event.
eventInfo: It is reserved for future enhancements. function buttonStd1_ onMouseClick(me, eventInfo) {
//do something…
}
onMouseHold
void onMouseHold (me, eventInfo)
This event is available only for buttons and it occurs when the button is pressed and released after n seconds where n= Hold Time seconds specify in widget properties.
Parameters
me: The object that triggers the event.
eventInfo: It is reserved for future enhancements. function buttonStd1_ onMouseHold(me, eventInfo) {
//do something…
}
Operating Instructions 338 PB610 Panel Builder 600
onMousePress
void onMousePress (me, eventInfo)
This event is available only for buttons and it occurs when the button is pressed.
Parameters:
me: The object that triggers the event.
eventInfo: It is reserved for future enhancements. 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.
Parameters:
me: The object that triggers the event.
eventInfo: It is reserved for future enhancements. function buttonStd1_ onMouseRelease(me, eventInfo) {
//do something…
}
onDataUpdate
Boolean onDataUpdate (me, eventInfo)
This occurs when the data attached to the widget changes.
Parameters:
me: The object that triggers the event.
eventInfo: An object with these fields (you can refer fields using “.” - dot notation):
oldValue: The old value that is the widget value before the change.
newValue: The new value that is the value which will be updated to the widget.
attrName: The attribute on which the event is generated.
index: An integer attribute index if any, default = 0.
mode: ”W” when user is writing to the widget, “R” otherwise.
This event is triggered by the system before the value is passed to the widget; this means the code programmed here can modify or alter 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”, the 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;
}
Operating Instructions 339 PB610 Panel Builder 600
Page Events
onActivate
void onActivate (me, eventInfo)
This event occurs each time the page is shown.
Parameters:
me: The object that triggers the event.
eventInfo: It is reserved for future enhancements.
This JavaScript will execute when the page is active. It means that, when the page is loaded, the script will execute. function Page1_ onActivate(me, eventInfo) {
//do something…
}
onDeactivate
void onDeactivate (me, eventInfo)
This occurs when leaving the page.
Parameters:
me: The object that triggers the event.
eventInfo: It is reserved for future enhancements. function Page1_ onDeactivate(me, eventInfo) {
//do something…
}
onWheel
void onMouseWheelClock( me, eventInfo )
This occurs when a wheel device is moving (ex. Mouse wheel).
Parameters
me: The object that triggers the event.
eventInfo: It is reserved for future enhancements. function Page1_ onMouseWheelClock(me, eventInfo) {
//do something…
}
Operating Instructions 340 PB610 Panel Builder 600
System Events
There are three types of system events:
related to the scheduler,
related to the alarms
Related to wheel device
Scheduler Event
This event occurs when triggered by the proper action available in the scheduler system.
Operating Instructions 341 PB610 Panel Builder 600
Alarm Event
This event occurs when triggered by a specific alarm condition and programmed in the proper action.
Once the system events are configured, the custom code for them can be edited from the global
JavaScript editor interface, which is available from the Project View (double click on the project name icon).
Operating Instructions 342 PB610 Panel Builder 600
onWheel
void onMouseWheelClock( me, eventInfo )
This occurs when a wheel device is moving (ex. Mouse wheel).
Parameters
me: The object that triggers the event.
eventInfo: It is reserved for future enhancements. 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 page.
Object
Widget
Page
Group
Project
State
Explanation
The Widget class is the base class for all elements on the page including the page element
This object references the current HMI page. The page is the top-level object of the screen
A group is a basic logical element that is associated with a set of logical tags. It provides an interface to enable the 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
Class for holding state of a variable acquired from the controlled environment. Beside value itself, it contains the timestamp indicating when the value is collected together with flags marking quality of the value.
Operating Instructions 343 PB610 Panel Builder 600
Widget
This widget class is the base class for all elements on the page including the page element.
Widget is not a specific element but a JavaScript class.
NOTE
NOTE
Important!
When you change the properties of widgets with JavaScript you have to set the widget
“Static Optimization“ to “Dynamic“, otherwise changes to properties will be ignored. You can find the option “Static Optimization“ in the “Advance Properties“.
The following properties are common among all widgets.
objectName
string objectName
It gets the name of the widget. The name is a unique ID for the widget. function btnStd04_onMouseRelease(me) { var wgt = page.getWidget("rect1"); var name = wgt.
objectName;
}
x
number x
It gets or sets the widget “x” position in pixels. function btnStd1_onMouseRelease(me) { var wgt = page.getWidget("rect1"); wgt.
x = 10;
}
y
number y
It gets or sets the widget “y” position in pixels. function btnStd1_onMouseRelease(me) { var wgt = page.getWidget("rect1"); wgt.
y = 10;
}
width
number width
It gets or sets the widget width in pixels. function btnStd1_onMouseRelease(me) { var wgt = page.getWidget("rect1"); wgt.
width = 10;
}
Operating Instructions 344 PB610 Panel Builder 600
height
number height
It gets or sets the widget height in pixels. function btnStd1_onMouseRelease(me) { var wgt = page.getWidget("rect1"); wgt.
height = 10;
}
visible
boolean visible
It 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
It gets or sets the widget value. function btnStd6_onMouseRelease(me) { var wgt = page.getWidget("field1"); wgt.
value = 100;
}
opacity
number opacity (range from 0 to 1)
It 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)
It gets or sets the rotation angle for the widget. The rotation is done by degree and makes a clockwise rotation, starting at the East position. function btnStd9_onMouseRelease(me) { var wgt = page.getWidget("rect1"); wgt.
rotation = 45;
}
userValue
string userValue
It 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";
}
Operating Instructions 345 PB610 Panel Builder 600
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 Qt Script Debugger inspecting the widget methods and properties.
The following methods are common among all widgets: getProperty
object getProperty( propertyName, [index] )
Returns a property.
Parameters:
propertyName: A string containing the name of property to get.
index: The index of the element to get from the array. Default is “0”.
Almost all properties that are shown in the PB610 Panel Builder 600 Property View can be retrieved from 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:
propertyName: A string containing the name of property to set.
value: A string containing the value to set the property.
index: The index of the element to set in the array. Default is “0”.
Almost all properties that are shown in the PB610 Panel Builder 600 Property View can be set by this method. The index value is optional and only used for widgets that support arrays (for example a
MultiState image widget). The setProperty method returns a boolean value TRUE or FALSE to indicate if the property was set or not. function buttonStd1_onMouseRelease(me, eventInfo) { var setting_result = shape.
setProperty("y", 128); if (setting_result) alert("Shape returned to start position");
} function buttonStd2_onMouseRelease(me, eventInfo) { var image = page.getWidget("multistate1"); var result = image.
setProperty("imageList", "Fract004.png", 2);
//…
}
Operating Instructions 346 PB610 Panel Builder 600
Page
This object references the current HMI page. The page is the top-level object of the screen.
Follow the list of Page Object properties
backgroundColor
string backgroundColor (in format rgb(xxx, xxx, xxx) where xxx range from 0 to 255)
The page background color function btnStd11_onMouseRelease(me) { page.
backgroundColor = "rgb(128,0,0)";
}
width
number width
The page width in pixels. function btnStd05_onMouseRelease(me) { var middle_x = page.
width / 2;
}
height
number height
The page height in pixels. function btnStd05_onMouseRelease(me) { var middle_y = page.
height / 2;
}
userValue
string userValue
It 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";
}
Follow the list of Page Object methods
getWidget
object getWidget( wgtName )
It returns the widget with the given name.
Parameters:
wgtName: A string containing the name of widget.
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");
}
Operating Instructions 347 PB610 Panel Builder 600
setTimeout
number setTimeout( functionName, delay )
It starts a timer to execute a given function after a given delay once.
Parameters:
functionName: A string containing the name of function to call.
delay: The delay in milliseconds.
Return value
It returns a number corresponding to the timerID. var duration = 3000; var myTimer = page.
setTimeout("innerChangeWidth()", duration);
clearTimeout
void clearTimeout( timerID )
It stops and clear the timeout timer with the given timer.
Parameters:
timerID: The 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 )
It starts a timer that executes the given function at the given interval.
Parameters:
functionName: A string containing the name of function to call.
interval: The interval in milliseconds.
Return value
It returns a number corresponding to the timerID. var interval = 3000; var myTimer = page.
setInterval("innerChangeWidth()", interval);
clearInterval
void clearInterval( timerID )
It stops and clears the interval timer with the given timer.
Parameters:
timerID: The timer to be cleared and stopped. var interval = 3000; var myTimer = page.setInterval("innerChangeWidth()", interval);
// do something page.
clearInterval(myTimer);
Operating Instructions 348 PB610 Panel Builder 600
clearAllTimeouts
void clearAllTimeouts()
It clears all the timers started.
Page.clearAllTimeouts();
Group
A group is a basic logical element that is associated with a set of logical tags. It provides an interface to enable the uniform operation on a set of logically connected tags.
Follow the list of methods supported by Group Object
getTag
object getTag( TagName )
Gets the tag specified by TagName from the group object.
Parameters:
TagName: A string representing the tag name.
Return value
An object that is the value of the tag or if tag value is an array it returns the complete array. If you need to retrieve an element of the array, check the method getTag available in object Project. 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.
Return value
The number of tags. var group = new Group(); project.getGroup("GroupName", group); var value = group.
getCount();
getTags
object getTags()
Returns the list of all tags in group.
Return value
An array of all tags in the group. 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…
}
Operating Instructions 349 PB610 Panel Builder 600
Project
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.
Follow the list of properties of Project Object
startPage
string startPage
The page shown when the application is started var startPage = project.
startPage; project.
startPage = "Page2.jmx";
Follow the list of methods of Project Object nextPage
void nextPage()
The script executes the next page macro. project.
nextPage();
prevPage
void prevPage()
The script executes the previous page macro. project.
prevPage();
homepage
void homePage()
The script executes the Home page macro. project.
homePage();
loadPage
void loadPage(pageName)
The script executes to load the set page defined in the script. project .loadPage
();
showDialog
void showDialog(pageName)
The script executes to show the dialog page. project.
showDialog
();
closeDialog
void closeDialog()
The script executes to close the currently-opened dialog page. project.
closeDialog();
Operating Instructions 350 PB610 Panel Builder 600
showMessage
void showMessage( message )
The script executes to display the message popup. project.
showMessage("Hi This is test message");
getGroup
number getGroup( groupName, groupInstance, [callback] )
Fast read method which gets the values of all tags in a group.
Parameters:
groupName: A string containing the name of the group.
groupInstance: The group element to be filled.
callback: A 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, "fnGroupReady"); function fnGroupReady(groupName, group) { var val = group.getTag("Tag1"); if (val!=undefined) {
// do something with the value
}
}
getTag
object getTag( tagName, state, index) void getTag( tagName, state, index, callback )
It returns the tag value or the complete array if index value is “-1” of the given tagName.
Parameters:
tagName: A string of the tag name.
state: The state element to be filled.
index: An index if the tag is array type. “-1” returns the complete array. Default is “0”.
callback: Function name if an asynchronous read is required. Default = “”.
Return value
Tags value is returned. If tag is array type and index = -1 then the complete array is returned.
Operating Instructions 351 PB610 Panel Builder 600
Remarks
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(); var value = project.
getTag("Tag1", state, -1, "fnTagReady"); 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 a string.
Parameters:
tagName: A string of the tag name.
tagValue: An object containing the value to write.
index: An index if tag is array type. Set “-1” to pass complete array. Default is “0”.
forceWrite: A boolean value for enabling force write of tags, the function will wait for the value to be written before it returns back. Default is false.
Return value
Integer value for denoting success and failure of action when forceWrite is true. A “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);
Operating Instructions 352 PB610 Panel Builder 600
getRecipeItem
object getRecipeItem (recipeName, recipeSet, recipeElement)
Gets the value of the given recipe set element.
Parameters:
recipeName: A string representing the recipe name.
recipeSet: A string representing the recipe set can be either the recipe set name or “0” based set index. recipeElement: A string representing the recipe element can be either the element name or “0” based element index.
Return value
An object with the value of the recipe undefined is returned if invalid. If of type array, an array object type is returned. var value = project.
getRecipeItem("recipeName", "Set", "Element");
setRecipeItem
number setRecipeItem (recipeName, recipeSet, recipeElement, value )
Gets the value of the given recipe set element.
Parameters:
recipeName: A string representing the recipe name.
recipeSet: A string representing the recipe set, can be either the recipe set name or “0” based set index.
recipeElement: A 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 too.
Return value
Integer 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 corresponding tag.
Parameters:
recipeName: A string representing the recipe name.
recipeSet: A string representing the recipe set can be either the recipe set name or “0” based set index. project.
downloadRecipe("recipeName", "Set");
Operating Instructions 353 PB610 Panel Builder 600
uploadRecipe
void uploadRecipe (recipeName, recipeSet )
Uploads the value of tags into the provided recipe set.
Parameters:
recipeName: A string representing the recipe name.
recipeSet: A string representing the recipe set, can be either the recipe set name or “0” based set index. project.
uploadRecipe("recipeName", "Set");
launchApp
void launchApp (appName, appPath, arguments, singleInstance)
Execute an external application.
Parameters:
appName: A string contains the application name
appPath: A string contains the application path, it must be an absolute path.
Arguments: A string contains the arguments to send to application executed.
singleInstance: true=single instance allowed, false allow multiple instance project.launchApp("PDF.exe","\\Flash\\QTHMI\\PDF","\\USBMemory\\file.pdf ","true");
printGfxReport
void printGfxReport( reportName, silentMode)
Prints the graphic report specified by reportName.
Parameters:
reportName: A string containing the report name
silentMode: true = silent mode (avoids to show printer settings dialog) project.printGfxReport("Report Graphics 1", true);
printText
void printText( text, silentMode)
Print a fixed text.
Parameters:
text: A string to print
silentMode: true = silent mode (avoids to show printer settings dialog) project.printText("Hello I Am Text Printing",true);
emptyPrintQueue
void emptyPrintQueue()
Empties the print queue. Current job will not be aborted. project.emptyPrintQueue();
Operating Instructions 354 PB610 Panel Builder 600
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:
error: an error occurred during printing
printing: ongoing printing
idle: system is ready to accept new jobs
paused: 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);
Operating Instructions 355 PB610 Panel Builder 600
printActualRAMUsage
project.printActualRAMUsage;
Returns an estimate of RAM usage for printing queues var myVar = project.printActualRAMUsage; alert(" actual ram usage is "+ myVar);
printRAMQuota
project.printRAMQuota;
Returns the maximum allowed RAM usage for printing queues var ramquota = project.printRAMQuota; project.setTag("printRAMQuota",ramquota);
printActualDiskUsage
project.printActualDiskUsage;
Returns the spool folder disk usage (for PDF printouts) var myVar1 = project.printActualDiskUsage; alert(" actual disk usage is "+ myVar1);
printDiskQuota
project.printDiskQuota;
Returns the maximum allowed size of spool folder (for PDF printouts) var diskquota = project.printDiskQuota; project.setTag("printDiskQuota",diskquota);
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
Class for holding state of a variable acquired from the controlled environment. Beside value itself, it contains the timestamp indicating when the value is collected together with flags marking quality of the value.
Follow the list of methods for State Object
getQualityBits
number getQualityBits()
Returns an integer - a combination of bits indicating tag value quality.
Operating Instructions 356 PB610 Panel Builder 600
Return value
A number containing the quality bits. 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).
Remarks
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()
It returns whether value contained within this state object is reliable.
Return value
boolean true if quality is good, false otherwise. var state = new State(); var value = project.getTag("Tag1", state, 0); if (state.
isQualityGood()) {
// do something…
}
Keywords
Global objects are predefined and always available objects that can be referenced by the names listed below.
page
object page
It references the page object for the current page. function btnStd04_onMouseRelease(me) { var wgt =
page.getWidget("rect1"); var name = wgt.objectName;
}
project
object project
It references the project widget. var group = new Group();
project.getGroup("GroupName", group); var value = group.getCount("Tag1");
Operating Instructions 357 PB610 Panel Builder 600
Global Functions
void print( message )
It prints a message to the HMI logger window.
Parameters:
message: A string containing the message to display.
print("Test message");
alert
void alert( message )
It displays a popup dialog with the given message. The user must press the OK button in the dialog to continue with the execution of the script.
Parameters:
message: A string containing the message to display.
The alert function is often used for debugging JavaScript routines.
NOTE
alert("Test message");
Limitations
Widgets cannot be instantiated from JavaScript. The Widgets can only be accessed and changed. If you need additional Widgets on the page, you can add hidden Widgets on the page, and show or position them from JavaScript.
Operating Instructions 358 PB610 Panel Builder 600
Debugging of JavaScript
Panel Builder 600 and Runtime include a JavaScript debugger to allow user to debug problems.
There are two types of debuggers:
Runtime debugger: a debugger running directly in target device (HMI panel)
Remote debugger: a debugger running on a remote PC connected to target device via Ethernet
(usually PC with Panel Builder 600)
To enable the debugging mode, in the “Advanced Properties” of a page, set JavaScript Debug to true.
For schedulers and alarms debugging, enable JavaScript Debug in Project properties.
In runtime, when the events are called, the script debugger will show the debug information. In the box
Locals you can inspect all available variables and elements.
For a complete reference guide about Qt Script Debugger you can open the following link in your browser: http://qt-project.org/doc4.8/qtscriptdebugger-manual.html
.
For UN20 target (WCE MIPS hmi panels), local debugger has been disabled. However, remote debugger is available to debug JS from a PC connected to HMI panel via Ethernet.
NOTE
Operating Instructions 359 PB610 Panel Builder 600
Remote debugger not supported in Windows Client and ActiveX.
NOTE
Remote JavaScript Debugger
Remote JS debugger can be opened directly from Panel Builder 600 Run -> Start JS Remote Debugger or from related icon in toolbar.
To start remote debugging, proceed as follow:
1. Download project with Allow JavaScript Remote enabled in project properties and JavaScript
Debug enable in all pages where debugging is required.
2. Once started, runtime shows waiting for remote debugger as shown below:
3. In JS Debugger window, select IP of the target and click Attach to connect debugger to the target.
Remote JS debugger requires port 5100/TCP in the runtime side.
NOTE
NOTE
For UN20 target (WCE MIPS hmi panels), local debugger has been disabled. However, remote debugger is available to debug JS from a PC connected to HMI panel via Ethernet.
Remote debugger not supported in Windows Client and ActiveX.
NOTE
Operating Instructions 360 PB610 Panel Builder 600
System Settings Tool
System settings tool
The system settings tool is a rotating menu.
Use the navigation buttons Next and Back to scroll between the available options.
On the left side the selected component and function are highlighted.
On the right side, on the “Info” pane, the information about the selected option is shown.
For example the version of the Main OS component.
The system settings tool has two operating modes:
User Mode and
System Mode.
The difference between them is the number of available options.
User Mode
User Mode is a simple interface where users can get access to the basic settings of the HMI panel: The
System Settings tool is accessible at Runtime from the context menu by selecting the item Show
system settings.
When activated in this way, the System Settings tool always starts in User Mode.
The context menu can be activated by pressing and holding down a screen area without buttons or other touch sensitive elements, until the menu is displayed.
Main Items available in User Mode are:
Item
Calibrate
Touch
Display settings
Time
Explanation
To calibrate the touch screen if needed
Backlight and Brightness control
Internal RTC settings
Operating Instructions 361 PB610 Panel Builder 600
Network
Plug-in List
IP address settings
Provides a list of the plug-in modules installed and recognized by the system; this option may not be supported by all platforms and all versions.
System Mode
System Mode is the interface of the
System Settings tool with all the options enabled.
The HMI products support a special procedure for accessing the System Settings tool; the special procedure is required to start the System Settings in System Mode, or when the standard access procedure is not accessible for some reason.
When activated by this special procedure, the System Settings tool always starts in System Mode.
The special access to the System Settings tool can be activated with a tap-tap sequence over the touch screen during the power-up phase. Tap-tap consists of a high frequency sequence of touch activations, done by the simple means of finger tapping the touch screen, performed during the power up and started immediately after the device has been powered.
In addition to the options available in User Mode, the following important features are available:
Feature Explanation
Restore
Factory
Settings
•
•
•
Restore factory settings is used as an alternative option to Format Flash (that´s a slow operation) to restore device factory settings.
Options available are:
Uninstall HMI: removes the HMI runtime from the unit (if present); at the next start the panel will behave as a brand new unit. This command does not reset settings like IP, brightness or RTC.
Clear System Settings: allows you to reset the system parameters (registry settings) Files deleted are:
\\Flash\\Documents and Settings\\system.hv
\\Flash\\Documents and Settings\\default\\user.hv
\\Flash\\Documents and Settings\\default.mky
\\Flash\\Documents and Settings\\default.vol
Also System Mode password is reset.
Clear internal Ctrl App: clear current folders used by CODESYS V2.3 and CODESYS V3 internal controllers for applications
• \Flash\QtHmi\RTS\APP\*.*
\Flash\QtHmi\RTS\VISU\*.*
\Flash\QtHmi\codesys\*
\Flash\$SysData$\codesys\*
Clear sysdata settings: clear \Flash\$SysData$ folder (used by technique support only for problems related to display settings)
Note: Not all targets and BSPs contain all these options.
Resizes the Flash portion reserved to store the splash screen image that is displayed at power up. Default settings are normally ok for all units.
Resize Image
Area
Download
Configuration
OS
Download
Main OS checks the actual version and upgrades the back-up operating system (see relevant chapter, for additional details) checks actual version and upgrades the main operating system (see relevant chapter for additional details)
Operating Instructions 362 PB610 Panel Builder 600
Feature
Download
Splash Image
Download
Bootloader
Download
Main FPGA
Download
Safe FPGA
Download
System
Supervisor
Explanation
Loads a new file for the splash screen image displayed by the unit at power up; the image must be supplied in a specific format. We suggest that you update the splash screen image directly from the Panel Builder 600 programming software.
Checks the actual version of the system boot loader and upgrades the system boot loader.
Checks the actual version and upgrades the main FPGA file; this command may not be available in all platforms and versions.
Checks the actual version and upgrades the back-up (safe) copy of the FPGA file; this command may not be available in all platforms and versions.
Checks the actual version and upgrades the system supervisor firmware (used for the
RTC and power supply handling).
CAUTION!
Important: Operation with the System Settings Tool is critical and, when not performed correctly, may cause product damages requiring service of the product. Ask Technical
Support for further details.
When executed in “System Mode” the System settings also provides the “BSP Settings”. Only when recalled from System Mode, the BSP settings shows an additional tab called “ Password” as shown in the figure below.
This function allows you to protect with password the access to the System settings in “System Mode” so all the advanced and critical functions are not easily accessible to anyone.
To activate the protection, simply mark the check box “Password Protected” and specify the desired password as shown in the following figure.
The password must be at least 5 characters long.
If you are changing a password previously inserted or disabling the protection, you are asked to provide the old password first.
NOTE
Please keep a note of the configured password in a safe place. There is no way to reset the password protection. In case it is lost the unit must be returned to the factory for proper reconditioning.
When the System settings menu is protected by a password, for each critical function that may compromise the proper system operation you try to execute, the HMI will prompt you to enter the password. If correct, the operation will proceed, if wrong, the operation will be aborted.
Operating Instructions 363 PB610 Panel Builder 600
Updating System Components in HMI Panels
Most of the system software components can be easily upgraded by the end users; this ensures a high degree of flexibility in providing updates and fixes to existing and running systems.
This upgrade can be done using USB flash drives, loaded with the new software modules, and by running the procedure, described in detail in this chapter.
Each unit comes from the manufacturing with a "product code" label, which includes all the information related to the factory settings (in terms of hardware, software and firmware components).
Product labeling is the first reference for checking the factory settings and version of the components installed at time of manufacturing.
The update tool on the HMI panel also provides the user with detailed information on the components actually running in the system.
Files required for upgrades depend on the product code. Using the wrong files for upgrade may result in system malfunctions, and may even render the system unusable.
NOTE
Files for upgrades are distributed on demand as a technical support activity.
NOTE
WARNING!
The downgrade of components is a very dangerous operation that could block machine and make it not more usable for HW/FW compatibility problems. Downgrade operations are not allowed and reserved to tech. support only.
Operating Instructions 364 PB610 Panel Builder 600
List of Upgradable Components
The HMI panels support the upgrade of the following components:
Component Explanation
System
Supervisor
Firmware of the system supervisor controller
(sample file name: packaged_GekkoZigBee_v4.13.bin)
Important: The System Supervisor Component can be upgraded only if the actual version on the panel is V4.13 or above. Version V4.08, V4.09, V4.10 and V4.11 MUST NOT be updated, they do not support automatic update from System Settings
Main FPGA
Safe FPGA
FPGA firmware
(sample file name: h146xaf02r06.bin) back-up copy of the Main FPGA that ensures unit booting in case of main FPGA corruption (may be after failed update)
(Sample file name: h146xaf02r06.bin)
Note: When updating FPGA firmware on the panel, the same file must be used for Main and Safe FPGA components
Bootloader
Main OS
Configuration
OS
Loader to handle panel start-up
(sample file name: redboot_UN20HS010025.bin)
Main Operating System
(sample file name: mainos_UN20HS0160M0237.bin)
Back-up operating system that ensures units are recovering in case of main operating system corruption (may be after a failed update)
(sample file name: configos_UN20HS0160C0237.bin)
Operating Instructions 365 PB610 Panel Builder 600
Update of System Components from Panel Builder 600
Panel Builder 600 provides a dialog to update system components by downloading them to the target device using the Ethernet communication interface.
The dialog is available in Run -> Manage Target -> Board.
The first step is to use the Target discovery function to locate the panel IP from the local network. Click on the little arrow symbol and identify the HMI panel from the list of units recognized in the network. In case the panel is not listed, you can try a second time or type the IP directly in the box. Then click out of the box to accept the inserted IP.
NOTE
Discovery service is a broadcast service. When a remote connection is done via VPN or from external networks discovery is not working, so, type directly IP address of target to connect to it.
Operating Instructions 366 PB610 Panel Builder 600
When the device is recognized the Info box shows the target details as shown as an example in the figure below.
In the component list locate the one you need to update, check the box and browse for the file from the
"Source file" box as shown in the figure below.
Then click download and check the progress from the Status box below.
NOTE
In the component selection you can mark more than one check box and provide the related file to be downloaded. The system will then execute the transfer of the all the elements, one after the other, and at the end you will need to cycle the power of the system.
Manage target also allows you to replace the default splash screen image shown by the devices during the power up phase. Image for the splash screen must be provided in bitmap format saved in RGB 565 format.
Splash screen images must NOT be bigger than 500 KB and they must have a black background to ensure the best optical results.
NOTE
Operating Instructions 367 PB610 Panel Builder 600
Update of the System Components via USB Flash Drive
System components can be updated via USB flash drives. For each component a specific file is provided. Checksum file with an .md5 extension is required to be present in the same location as the system file to be upgraded.
To update a system component proceed as follows:
Copy all the files you need to upgrade to a USB Memory and plug this into the USB port of the panel.
Start the System Settings tool with the special procedure for getting this in System Mode, and then locate the desired item in the rotating menu. Click directly on the item (the blue button with white label) and browse to locate the proper file stored on the pen drive (USBMemory). The figure below shows an example of the Main OS components.
Select the "Download" command to transfer files to the panel. Select the "Upload" command to get files from the panel.
NOTE
Then follow the instructions on the screen to proceed with the update. A progress bar on the screen will inform you about the status of the operation. Please make sure to NOT turn off power to the panel while a system component is being upgraded. Some of the components will require some time for the upgrade to complete.
NOTE
Upgrade procedure may change depending on the hardware revision or operating system version from which you start; please contact technical support offices for any detail about the exact sequence.
Operating Instructions 368 PB610 Panel Builder 600
Access Protection to HMI Devices
The following operations can be protected with a password:
Runtime management: Install runtime and update runtime
Board management: replace main BSP components such as MainOS, ConfigOS, Bootloader, etc.
Download and upload of project files
A default value for this password is used by the HMI runtime and Panel Builder 600.
There are three ways to change this password in the HMI runtime:
1. Using the tab Remote in the BSP Settings (in system mode) dialog box in System menu includes
(starting from BSP versions V1.64 UN30/31 and V2.73 UN20).
2. Using the tab Password in Settings from the runtime Context Menu.
Operating Instructions 369 PB610 Panel Builder 600
Panel Builder 600 shows a dialog asking for the password to match the password defined in the HMI device. The new password will be stored in the computer to be used for further connections.
Using Set Target Password in update package. Password is updated by runtime just after update process is completed. If update failed (for example because Old password not match hmi password) a popup inform user about it.
You can enter also the same password in Panel Builder 600 using Manage Target -> Board ->
Connection setting (to allow in Panel Builder 600 to access runtime).
Default port used for this remote service is 2100.
A format of hmi panel reset password.
NOTE
NOTE
For Win32 Runtime, password is saved into
Users\[username]\AppData\Roaming\ABB\buildNumber\server\config\RemoteUpdateConfig.
xml.
Leave “Old password” empty as default if target password is not set.
NOTE
Firewalling
Following ports today are used by Panel Builder 600, Windows Client and ActiveX to access to runtime and should be opened in office firewalls and forwarded to runtime if remote access is required:
80/tcp (or 443/tcp)
21/tcp (FTP in passive mode)
2100/tcp
16384/tcp
5900/tcp (VNC)
5100/tcp (JavaScript remote debugger)
For systems using Codesys 2.3 integrated into HMI device, port 1200/tcp is used.
Following ports are used by the studio in HMI discovery and usually are not necessary for remote access but just in local area networks:
990/UDP broadcast
991/UDP broadcast
998/UDP broadcast
999/UDP broadcast
When broadcast service is not available (ex. in VPN networks), user have to type exact IP Address directly to reach device from Panel Builder 600.
Operating Instructions 370 PB610 Panel Builder 600
Factory Restore
If you´re having problems with HMI device, you can try to restore factory settings from system mode.
To restore factory settings proceed as follows:
1. Enter in System Mode
2. Use one of the following operations available in rotating menu:
Format Flash for cleanup entire flash disk and registry configuration
Restore Factory Settings allows user to select components to cleanup.
Both operations do not manage firmware factory restore (Mains, Congo’s, Boot loader, FPGA images etc.
For more information related to Format Flash and Restore factory Settings please ref. to System Mode.
Operating Instructions 371 PB610 Panel Builder 600
PB610 Panel Builder 600 Functional Specifications and
Compatibility
The scope of this chapter is to provide a clear overview of the supported functions and related limitations for both programming software and HMI Runtime system.
What is listed below in this document is a safe limitation, above which a proper operation and state-ofthe-art performance of the system is not guaranteed.
Table of Functions and Limits
Function \ Feature
Number of pages
Number of basic widgets
Number of tags
Number of dialog pages
Number of objects of any type in one page
Number of recipes
Number of parameter sets for a recipe
Number of elements per recipe
Number of user groups
Number of users
Max allowed
1000 (up to 10k x 10k as resolution based on HMI model)
2000 per page
10000
50 (max 5 can be opened in the same time)
2000
32
1000
1000
50
50
Number of concurrent clients
Number of schedulers
Number of alarms
Number of templates pages
4
30
500/2000 (depends on the control panel model)
50
Number of actions programmable per button state 32
Number of trend buffers 30
Number of curves per trend widget
Number of curves per page
Number of samples 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
5
10
200000
1200000
1024
12
2048
4
16 kB
30 MB
Operating Instructions 372 PB610 Panel Builder 600
Compatibility
Starting from the first official release of PB610 Panel Builder 600 V1.58 (00) we have applied the following policy for compatibility:
PB610 Panel Builder 600 version MUST always be aligned with PB610 Panel Builder 600 Runtime on the Control Panel. The user has the responsibility to update runtime components on the target device together with any PB610 Panel Builder 600 update. A runtime update can be done directly from PB610 Panel Builder 600 using the “Update Target” command available in the “Run\Manage
Target” dialog.
Any version of PB610 Panel Builder 600 newer than V1.58 (00) is able to open and properly handle projects created on an older version, but not older than V1.58 (00).
Projects created with older versions of PB610 Panel Builder 600, but not older than V1.58 (00), opened with later versions and deployed to compatible runtime, are ensured to maintain the performance and functionality just as before.
Compatibility between newer versions of runtime and those projects created and deployed with older versions of PB610 Panel Builder 600 is not ensured.
Do not edit projects with a version of Panel Builder 600 older than the one used to create them. It can result in a damage of the project and to runtime unstability.
Operating Instructions 373 PB610 Panel Builder 600
Operating Instructions 374 PB610 Panel Builder 600
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 AG 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-2014 ABB.
All rights reserved.
Subject to alterations.
ડાઉનલોડ કરો
જાહેરાત