Sie sind auf Seite 1von 80

AB B M E A S UR E ME N T & AN A LY T I C S | TR A IN I N G M AN UA L

SpiritIT eXLerate
Level 1 + 2 training

Authors Eric van Boxtel, Peter van Deurzen


Version 2.1
Date February 2019

© Copyright ABB. All rights reserved.


E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 3

Content
Shapes ............................................................... 38
Introduction............................................................. 5
Animations ............................................................. 39
Features ..................................................................... 5
Application examples ............................................. 6 Displays: Buttons and Navigation........................ 41
SmartCen .................................................................. 8 Button objects ........................................................41
Flow-Xprint ............................................................... 8 Configure Button Table ........................................41
References............................................................... 10
Alarming ................................................................ 43
Installation .............................................................. 11 Defining alarms ..................................................... 43
Installation options ................................................ 11 Grouping alarm ...................................................... 44
License ..................................................................... 12 Display alarms ....................................................... 45
Historical alarms & events .................................. 46
Control Center ........................................................13
User Accounts ........................................................ 13 Trending..................................................................47
Control Center Options ........................................ 14 Defining trend tags .............................................. 47
Applications ............................................................ 15 Display trends ........................................................ 48
Application Shortcuts .......................................... 16 Trend Chart ...................................................... 49
Open a (new) application .................................... 16 Trend Pen Selector .......................................... 49
Trend Navigator............................................... 49
Application Basics ................................................ 18
Excel functionality ................................................. 18 Editing values ........................................................ 50
eXLerate Application Modes ............................... 21 Allowing user input ............................................... 50
eXLerate Worksheets............................................ 22 Editing table ........................................................... 50
Cell & object names............................................... 24 Configuration ................................................... 50
Run-time functions .......................................... 51
Communication ..................................................... 25
Writing values to devices .................................... 52
Protocol Table ........................................................ 26
Display editing ................................................. 52
Query Table ............................................................. 26
Tag Database updates ................................... 52
xlConnect ................................................................ 27
Visual Basic updates....................................... 53
Tag Database ......................................................... 29
Intervals, Periods and Events .............................. 54
Names & Reference fields .................................... 29
Interval table .......................................................... 54
Communication fields .......................................... 29
Periodic data .......................................................... 55
Alarm fields ............................................................. 30
Latch values ...................................................... 55
Trend fields ............................................................. 31
Weighted average values ............................... 56
Average & Latch fields .......................................... 31
Combining averaging and
OPC Server .............................................................. 31
latching .............................................................. 57
Tag & Object Wizard ............................................. 31
Reports .................................................................. 58
Calculations ........................................................... 32
Design vs. runtime ................................................ 58
Calculation sheets ................................................. 32
Report table ........................................................... 59
Calculation wizard ................................................. 32
Designing reports ................................................. 59
Volatile functions................................................... 33
Visual Basic for Applications ................................ 61
Displays, Shapes and Animations ....................... 34
Buttons actions ......................................................61
Configuration tables ............................................ 34
Event based actions ..............................................61
User Table.......................................................... 35
Interval & period based actions ......................... 62
Worksheet Table .............................................. 35
Good engineering practice ................................. 62
Style Table ......................................................... 35
Color table ......................................................... 36 Redundancy ........................................................... 64
User displays .......................................................... 37 Redundant communication ................................ 64
Template display.............................................. 37 Redundant devices ............................................... 65
Creating a new display ................................... 37 Redundant servers ................................................ 65
Text, live values and units .............................. 38
Exercises .................................................................67
4 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Installing eXlerate.................................................. 67
eXLerate user management ................................ 67
Control Center options ........................................ 67
Application properties ......................................... 68
eXLerate application modes ............................... 68
Communication protocols .................................. 68
Tag Database values ............................................. 69
Display live values .................................................. 69
Display animated object ...................................... 69
Calculations ............................................................ 70
Displays, buttons & navigation .......................... 70
Alarming ...................................................................71
Trending ...................................................................71
Editing.......................................................................71
Interval, Events & Periods .................................... 72
Reports .................................................................... 72
Redundancy ............................................................ 72

Document Control ................................................. 73

Appendix A: Troubleshooting .............................. 74


Diagnostic tools .................................................... 74
Retrieving reports ................................................. 74
Troubleshooting MODBUS .................................. 74
Troubleshooting OPC server .............................. 75
Windows event viewer.......................................... 75

Appendix B: License Model .................................. 76

Appendix C: Sheet Types...................................... 77


xComms Sheet ................................................. 77
xTagDB Sheet ................................................... 77
xTables Sheet ................................................... 77
Calculation Sheets........................................... 77
Display Sheets .................................................. 77
Report Sheets................................................... 78
Animation Sheet .............................................. 78
Editing Sheet .................................................... 78
Other Sheets..................................................... 78

Appendix D: Constants ......................................... 79


Data types ......................................................... 79
Periods ............................................................... 79
Pre-defined colors ........................................... 79
Query table options ........................................ 79
Update constants ............................................ 79
Editing constants ............................................ 79
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 5

Introduction
eXLerate is the supervisory software package of ABB. eXLerate is an environment that enables the
creation of full-featured real-time HMI applications. It is based on Microsoft Excel, giving you a user-
friendly and well-known environment to work in, as well as giving you access to all the powerful Office
features

Figure 1 Control systems layers

Features
SpiritIT eXLerate has the following functionality:

– Communication with and control your devices, e.g. flow computer, PLC
using different communication protocols like Modbus, OPC, HART

– Displays for visualizing field status and values

– Real-time & historical trending

– Reports generation and printing

– Alarm management

– Security, audit trail and event log

– Database storage and retrieval

– User defined calculations

– Fluid properties and flow calculations

– Redundant systems with data transparency

– Virtual printer Flow-Xprint

– Multi-lingual
6 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Application examples
eXLerate applications are used in different field areas:

– Custody transfer metering

– Allocation metering

– Virtual flow computing

– Terminal automation

– Ball/Piston/Master meter proving

– Calibration facilities

– Tank depots

– Leak detection

Figure 2 Example of a liquid metering system with a compact prover

Figure 3 Example of a Fiscal gas metering system


E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 7

Figure 4 Example of a rail car loading system

Figure 5 Example of a volume prover

Figure 6 Example of a calibration system


8 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Figure 7 Example of a leak detection system

SmartCen
A very special eXLerate application is called SmartCen. SmartCen is a Smart Centralized and online real-
time metering supervisory system designed for all metering operations, that can monitor, diagnose and
troubleshoot metering systems. SmartCen is jointly developed with Petronas, based on the eXLerate
HMI/SCADA platform.

Additional SmartCen functionality:

– Asset management (information via database, spare part ordering)

– Tank storage, pipeline & sea line inventory management

– Integrated validation software

– Advance metering alarm management

– Mis-measurement management (logs, trending, alarms, VFC, reports)

– Auto billing correction

– Integrated Virtual Flow Computers

– Meter factor control chart

Flow-Xprint
Flow-Xprint is the NMi-certified eXLerate virtual printer feature. It is a replacement for hardware ticket
printers. It receives print commands from (serially) attached devices (flow computers) and stores the
data as a report to disk. These report files are encrypted files that can’t be altered.

– Replacement for a printer to print (fiscal) reports

– Detects serial reports data automatically

– Data of different devices can be stored in different folders

– Data is encrypted

– Data can be shown/reprinted using Virtual Printer Viewer on different systems

– NMi approved
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 9

Normally the following situation

Figure 8 Existing situation to print hourly/daily reports

Can be replaced by:

Figure 9 Flow-Xprint added to store reports

The Virtual Printer Viewer is used to show or reprint your encrypted reports stored on hard disk. This
viewer can be installed on different systems.

Figure 10 Virtual Printer Viewer


10 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

References
This training manual is designed to complement the eXLerate Basic Training. Besides this manual, there
are two reference manuals, which are delivered with the product:

– Reference Manual I – Application Reference Manual:

• Introduction
• Tutorial
• Application development
• Report Generation.

– Reference Manual II – Advanced Topics Reference:

• Programming topics,
• Wizards, Tools,
• Alarm Management Control,
• Trending Controls,
• Relational Databases,
• Redundancy,
• Multiple Languages,
• Terminal Services,
• Customization
• Troubleshooting.

Contact information for our customer support:

– Knowledge base http://www.spiritit.com/support

– e-mail: TechSupport@SpiritIT.com

More information on items that are non-specific for eXLerate can be found on the internet:

– Flow-X: http://www.spiritit.com/Products/flow-computer

– Modbus protocol: http://www.modbus.org/

– OPC protocol: http://www.opcfoundation.org/

– Excel Easy: http://www.excel-easy.com/

– VBA in Office: https://docs.microsoft.com/en-us/office/vba/library-


reference/concepts/getting-started-with-vba-in-office
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 11

Installation
As eXLerate is running on top of Excel, you need to set-up your computer according the following
requirements prior to installing eXLerate:

– Administrator rights on your computer!

– Decimal symbol set to be a point “.” (Windows Regional settings)

– Microsoft Windows:

• Windows 7 (32/64 bits)


• Windows 8.1 (32/64 bits)
• Windows 10 (32/64 bits)
• Windows Server 2008 R2 (64 bits)
• Windows Server 2012 (64 bits)
• Windows Server 2012 R2 (64 bits)
• Windows Server 2016 (64 bits)

– Microsoft Office:

• Office 2010 (32 bits)


• Office 2013 (32 bits)
• Office 2016 (32 bits)
• Office 365 (32 bits)
• Visual Basic for Applications installed

Preferable your regional settings are set to English-US. The Regional Settings can be found in “Control
Panel”, “Clock, Language and Region”, “Windows Live Language Settings”.

When a time- or date format is used like “yyyy/mm/dd hh:mm:ss” it is important the language is set to
English.

Installation options
To install the software onto your hard disk run the eXLerate setup program. The user is opted for various
choices

– Complete All program features, including examples

– Typical Program features, except sample projects

– Minimal Only files necessary for running the product

– Custom Select the components to be installed

• Main Files Required program files


• Help Files Reference manuals
• Sample Projects Examples
• Tools Additional support tools
• Hasp HL Driver Hardware dongle
• Installation directories
Software C:\Program Files (x86)\eXLerate 2016
Application C:\XLRX
12 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

License
Before you can start eXLerate, you need obtain a valid license.

– Software license:
Start the eXLerate License Manager and

• Enter details for


End-User
Company
System
• Export license file with
Machine ID Code
License number / Purchase order
• Send license request to license@spiritIT.com
• Wait for the e-mail with license information
• Enter received license information
Authorization key
License number

– Hardware dongle

• Approved System Integrators


• Commissioning- and service personal USB key
• Install Hasp HL Driver
• Insert USB key with the license information
• Overrules the software-based licenses

After entering the software license information / inserting the hardware dongle you should see the word
“Authorized” in green at the top of the License Manager dialog.

For further information about the license model behind eXLerate, see Appendix A.
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 13

Control Center
Start eXLerate by clicking on “eXLerate 2016” in the Start menu. This opens the eXLerate Control Center.
The Control Center consists of the System Menu, a list of Application Shortcuts, a Log Window, and a few
buttons to login, start, stop and exit.

Figure 11 eXLerate Control Center

User Accounts
Users need to log in before creating, opening or running applications. Different users can have different
access rights. For instance, not all operators may be allowed to acknowledge alarms. Similarly, not
everybody might be allowed to edit the application.

After installation, the following user accounts are preconfigured. It is highly recommended to change
their initial passwords. Each user has a Level number which is a measure of what the user is allowed to
do. The higher the level, the more the user is allowed to do.

Table 1 Pre-configured User Accounts

User Password Level Typical use

guest guest 10 View display pages

operator operator 500 Print out reports

engineer engineer 1000 Alter process data

administrator admin 2000 User management

Editing users can be done from the System Menu (see Figure 19) when logged in at Administrator
(2000) level. Right-click the System Menu and click Edit Users. When you are logged in with an account
with insufficient access level, the option is disabled.
14 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

You get a dialog with all currently configured user accounts where you can add, modify and delete users.

Figure 12 User Account Configuration

The “Low Level” setting is typically left to 0, as a user should be able to perform all actions a lower-level
user is able to do.

The users are applicable on the local computer for the eXLerate system. Different computers can have
different users. The security in eXLerate applications is based on the User Level (number); running an
application on another computer will use the users as defined on that computer.

Control Center Options


The eXLerate Control Center allows you to change several options that are applicable on the local
computer for the eXLerate system

The Options dialog is reachable from the System Menu when logged in at Administrator (2000) level.
Right-click the System Menu and select Edit Options. When you are logged in with an account with
insufficient access level, the option is disabled.

Figure 13 The Control Center Options Dialog

– System

• System name for (redundant) eXLerate systems Default = Windows name


• Report printer for printing the reports Default = Windows default printer
• Number of project archive files stored when developing the application
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 15

– Event logging

• Printer for Alarms & Events (optional)


• File location for daily events log file (text file)
• Days to keep log files on disk

– Startup

• Install as Shell (Windows locked)


• Application to start
• Command line (backward compatibility):
xlcenter.exe -user {Username} -pswd {Password} -exec {Application} -open {Application} -wait {Delay}

– Automatic logon / logoff

• User name & password automatically used when eXLerate (Control Center) is started
• Minimum idle time when user is logged off

– System security options

• User levels required to perform certain (Windows) tasks

– Trending

• Days to keep trend files on disk


• Warning when disk is getting full
• Suspend trending when disk is full

– Miscellaneous

• Alarm idle time at start-up


• After cell kill focus (on-screen keyboards)

– Terminal services

Applications
Each eXLerate application is contained within a single configuration file. The file extension is .xlrx. This
application file includes:

– Tag definitions

– Communication settings

– Live values (when communication is active)

– Calculations

– Displays

– Animations

– Reports templates

Additional files are created for live data

– Report files

– Trend data

– Alarms & Events (database)

– Event logs

– Retentive data
16 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

eXLerate is careful with storing your work. When an application is opened, a temporary working copy is
created in your %TEMP% directory preventing file corruption on an unintended shut-down. When it is
saved, a backup is first stored in the \XLRX\Archive directory. This way, you can always go back to
previous versions.

Application Shortcuts
The Control Center contains a list of Application Shortcuts of your applications, as well as other
programs (e.g. a word processor). The latter is handy in a production environment where the user does
not have access to the Windows Program Manager. Each shortcut has a set of properties that can be
altered by right-click on the shortcut and select Properties:

– Shortcut Name Name to show in the Control Center shortcut list

– Application type Type of application to run, either one of the following:

• eXLerate project An eXLerate application


• Windows application Specify the path and program file to run
• Windows Explorer The program Explorer.exe
• Task manager The program TaskMgr.exe
• Microsoft excel The program Excel.exe (as specified in the Excel Edition)

– File locations

• Program (optional) Program file to run - set for other Windows programs
• File path Folder and file of the (eXLerate) application
• Presentation picture Folder and file of picture to present in Control Center
• Reports output path Folder to store report files
• Trending output path Folder to sore historical trend files
• Database Folder to store (alarm & events) internal database tables

– Security level Minimum user levels to Run/Design/Close the application

– Watchdog protection Watchdog settings for runtime systems

Open a (new) application


You can open an existing application from the Control Centre. Select the desired Application Shortcut
and click the Design button. Note that you must be logged in with a sufficient access level to be able to
click the Design button. Excel now opens with your application in Design Mode. If you want to run your
application rather than edit it, you click the Run-time button instead of the Design button.

When the application shortcut does not exist, you can add new shortcut by right-clicking the Shortcuts
List and clicking “New Shortcut”. You can now fill in a name for the shortcut and select the type and what
it should start. By default, you already have several shortcuts available that open example applications
outlining certain features or protocols.

The most common way of opening a (new) application is by opening an existing (template) application
file. Double-click this file in Windows Explorer to open it. The application shortcuts will be set
automatically based on the file location.

At the training, you have received a template called MyTraining.xlrx. When you open a template
application, you get presented with the dialog in Figure 22.
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 17

Figure 14 Create New Application Dialog

You can enter a project reference, company name, location and short name as you like. The Short name is
used in an Application Shortcut that is automatically created for you. Also, change the file name to
MyFirstApp.xlrx

It is important to select a screen resolution that matches the target computer. This will be rather
difficult to change later.

Warning: When you are done, click the Create New Application button to go ahead and let eXLerate
create the new application for you. While the application is created, Excel briefly disappears.
18 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Application Basics
eXLerate is integrated with Microsoft Excel. It allows to use all the available Excel functionality and adds
features to Excel in various ways. The most visible and important part while developing an application is
the eXLerate toolbar (ribbon).

Figure 15 eXLerate toolbar ribbon

Additional functionality that is available with eXLerate is:

– Ribbon with Wizards

– Real-time communication

– Buttons for navigation and control

– Animation of shapes & objects

– Trending of data

– Alarm management

– Database

– List views

– Additional worksheet functions

– Additional VBA functions

The use of the eXLerate features is all explained in the subsequent chapters.

Excel functionality
While developing an application you make use of Excel’s features. While this training is not intended to
teach you how Excel works, we do present some of the basics here.

Worksheets
A worksheet is a collection of cells where you keep and manipulate the data. Each Excel workbook can
contain multiple worksheets. Within an eXLerate applications, multiple worksheets are available, all with
their specific functionality like configuration settings, calculations, displays, reports.

Cell data
In Excel cells can contain (numerical) data. This data can be presented in different formats (styles), like
numbers with different decimal places, date, time, text, etc.

Named cells
You can give cells a (logical) name in Excel. This makes it easier to understand what the meaning is of a
value in your application. To give a cell a name, you can use the Name input on the eXLerate ribbon
(Figure 16), or you can use the Name Definition Tool. The Name Definition Tool is accessible by pressing
[Ctrl]+[E] or by selecting the menu eXLerate | Tools | Name Definition Tool.
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 19

Figure 16 Name definition

With the eXLerate ribbon tools are available that automatically generates most names that you will use
in your application. You don’t have to generate these names yourself. The Tag & Object wizard generates
names for communication sheets, tag database and configuration tables. The Calculation Wizard
generates names for calculation sheets.

Figure 17 eXLerate Wizards generating names

Reference to other cells


You can refer to data in other cells and on other sheets to be used within formulas

– G10 Relative references to cells on the same sheet


Cell references changes when formula is copied

– $G$10 Absolute references to cells on the same sheet


Cell references don’t change when formula is copied

– xTagDB!G10 Relative references to cells on another sheet


Cell references changes when formula is copied

– xTagDB!$G$10 Absolute references to cells on another sheet


Cell references don’t change when formula is copied

– Calc.Stn_GVR_CUR References to named cells


Cell references don’t change when formula is copied

Formulas
By using a formula in a cell, you can make calculations. A formula always starts with an equals sign (=). In
a formula, you can use operators, Excel functions and additional eXLerate functions to make your
calculation. eXLerate adds many functions to use in your formulas, for instance functions for Oil and Gas
calculations.

In the example below, cell A3 contains the formula to add cells A1 and A2. When you enter the formula, it
is immediately evaluated, and the result will be visible (second picture). Changing cell A1 or A2 changes
the result (third picture).

Figure 18 Excel formulas

Rather than use cell numbers (A1, A2 etc.) in formulas, you can also use the cell names. like

– =xSTR1_GVR_CUR.Value + xSTR2_GVR_CUR.Value

The automatic calculation of formulas is disabled in eXLerate to prevent a torrent of calculations in


runtime. When you want to see the result of a change you made, press the [F9] key. In Runtime eXLerate
evaluates formulas once a second.
20 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Array Formulas
Most formulas produce a single result. Some formulas however produce an array of results. To enter an
array formula, select as many cells as necessary to show the array. Then enter the formula and press
[Ctrl]+[Shift]+[Enter] instead of pressing [Enter]. Excel will automatically enclose your formula in curly
brackets ({}). You do not have to type these brackets yourself.

Figure 19 Example of an Array Formula

Volatile functions
A volatile function ensures that a cell is always recalculated, resulting in a torrent of calculations.
Recalculation occurs regardless of whether the precedent data has changed or not.

Do not use volatile functions, but the available alternatives:

– Now() -> exNow()

– Today() -> exNow()

– Offset() -> Index()

– Indirect() -> (No alternative)

– Rand() -> eXLerate simulation

– Cell() -> exCellProperties()

– Info() -> (No alternative)

Shapes & Pictures


Excel allows you to put shapes and pictures on sheets. With these shapes you can create drawings that
can be a graphical presentation to be used as displays in runtime eXLerate application.

Shapes and pictures may be added using:

– Select Shapes from the menu bar and select the shape to insert

– Copy some existing shapes

– Select Pictures from the menu bar and select the file with the picture to insert

– Imported via other software packages (like Microsoft Visio)

Figure 20 Insert Shapes & Pictures

You can give shapes a (logical) name the same as you can give a cell a name in Excel. This makes it easier
to understand what the meaning of an object is in your application and easier to use for animations. To
give an object a name, you can use the Name Input on the eXLerate ribbon (Figure 16),
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 21

Visual Basic for Applications


Excel has a built-in scripting language called VBA. You can use this VBA to create your own forms (pop-
ups) and functions, or to automate making changes to your workbook. You start the VBA editor by
pressing [Alt]+[F11] or by going to menu eXLerate | Visual Basic.

Figure 21 Visual Basic

eXLerate adds many functions you can call from VBA. You will see some of them in use in this training
manual. You can find a help file with all available functions by clicking Help | Function Reference. These
functions allow you to manipulate eXLerate-specific items such as e.g. alarms.

Warning: in an eXLerate application, there are some VBA modules present which are automatically
generated. You should not change these modules, for your changes will get automatically overwritten.
An example is the module modButtons. All such modules have a comment at the top indicating that they
are automatically generated.

eXLerate Application Modes


Developing an eXLerate application happens in phases: you configure your application, you test if it
works, and eventually it is put in production. eXLerate can operate in four different modes to facilitate
every step. Switching between modes is done by clicking the buttons on the eXLerate ribbon:

Figure 22 Mode buttons

Design Mode
Design Mode is what you see when you open your application from the Control Center by clicking the
[Design] button. You can edit your application, worksheets are not protected, and you don’t have real-
time updates from your connected devices.

Preview Mode
In Preview Mode, you see the application as your user would see it, i.e. only the display pages. Sheets are
protected against making changes, but real-time communications are still disabled.

To enter Preview Mode, press the [Preview] button. Press [ESC] followed by [Design Mode] button that
appears to exit Preview Mode.

Verify Mode
Verify Mode is for debugging your application. Real-time communication with devices is enabled but
sheets are unprotected, so you still see all the worksheets and can make modifications.

To enter Verify Mode, press the [Start] button. To exit Verify Mode, press the [Stop] button.

Warning: do not edit cells or VBA code or save your workbook with communications active.

Runtime Mode
Runtime mode is for normal operations. This is what end-users will use on live systems. You only see the
display screens and real-time communications are enabled.
22 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

To enter Runtime mode, you can either open your application by clicking the [RunTime] button on the
eXLerate Control Center, or from Design Mode by first clicking [Start] and then clicking [Runtime]. Exit
Runtime Mode by pressing [ESC] and clicking [Verify Mode] button that appears.

Mode Overview
The table below lists all four modes and their properties. Note that in a production environment,
typically only Runtime Mode is available.

Table 2 Mode Overview


Design
mode
Mode Communication Sheets protection

Preview Inactive Unprotected


Preview Verify
Design Inactive Unprotected mode mode

Preview Active Protected

Runtime Active Protected Runtime


mode

eXLerate Worksheets
An eXLerate application is configured by inserting appropriately formatted worksheets into the
workbook. Several sheets are interpreted by eXLerate in a special way to produce e.g. user interface
displays or reports at runtime. By convention, we use the following colors for these sheets:

Table 3 Standard Sheet Colors

Sheet Color Sheet Type Description

■ Black Tags/Comms Communication with devices

■ Red Internal Automatically generated by Wizards

■ Blue Design Configuration settings

■ Orange Calculation Calculation formulas

■ Yellow Display A user interface display

■ Green Report Template for a report

■ No Color Info Information (not used at runtime)

Figure 23 Colored sheet tabs in eXLerate

It is easy to get overwhelmed when first opening an eXLerate application. However, most applications
follow the same pattern. Figure 24 below shows how the sheets in an application relate. Not all possible
sheets are shown.
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 23

Figure 24 Typical application sheets

Communication sheets
The backbone of an application are tag database and the communication set-up. The sheet xComms
contains the configuration for communication with external devices like the COM/IP ports, baud rates
etc. The tag database sheet xTagDB lists all the (live) values and related properties of the tags that are
communicated with external devices. Run the Tag & Object Wizard to let eXLerate automatically
generate the cell names after modifications.

Internal sheets
Running the Tag & Object Wizard will also automatically generated the internal sheets based on the tags
and related properties defined. These internal sheets will have named cells with values that will be
updated with live values when the communication is running.

Calculation sheet
When you need to calculate values from existing tag values, you use a calculation sheet. You can use the
Excel functions and additional eXLerate functions in formulas to calculate the new values. Run the
Calculation Wizard to let eXLerate automatically generate the cell names after modifications.

Design sheets
An eXLerate application contains additional configuration sheets that influence the behavior or the
looks of displays and reports. The xAnimations sheet is the configuration for animating shapes and
objects on display sheets, based on live/calculated values. For example the color of a valve changes
when the valve is open or closed. The xEditing sheet contains the configuration to allow user input
(settings, etc.) from display sheets when application is started in runtime mode. The xTables sheet
contains the tables with configurations like which sheets are displays (available in runtime), which
sheets are report templates, interval & periods for events like averaging and automatic report
generation, definitions for buttons, and more. It contains the following configuration tables:

• Alarmgroup table
• Interval table
• Report table
• Style table
• Color table
• User table
• Worksheet table
• Button table

Displays & reports


You can use the values from the tag database, internal sheets and calculations on display sheets and in
report sheets by referring to the (automatically generated) cell names. Objects on displays can be
animated based in live/calculated values using the design sheets.
24 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Cell & object names


A very frequently-used feature in application development is the used of named cells, shapes and
ranges. Names make your application easier to develop and understand. We already touched on the
subject in section Excel functionality.

Automatic generation of cell names


eXLerate has wizards to automatically generate cell names. The Tag & Object Wizard generates the cell
names for the sheets with the tag database xTagDB, communications xComms and configuration tables
xTables. The Calculation Wizard automatically generates the cell names for a calculation sheet.

Figure 25 Automatic naming

Manual generation of names


You can manually set a name for a cell or shape using the eXLerate ribbon:

Figure 26 Manual naming

Quick Search
When you select a cell that refers to a name, e.g. which contains a formula =xS1_TT.Value, then you can
press [Ctrl]+[Q] to jump to the cell with that name. Press [Shift]+[Ctrl]+[Q] to go back.
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 25

Communication
eXLerate enables real-time communication with external devices like flow computers, PLCs, DCS, etc.
The following protocols are available (depending on license):

– Flow-X Client

– Modbus TCP Client / Server

– Modbus Serial Master / Slave

– OPC Client / Server

– HART Master / Slave

– Virtual Printer (serial)

– Clock (serial)

– UNIFORM

– SLIP+

Real-time data communications in an eXLerate project is configured in two worksheets

– xComms

This worksheet contains the Protocol Table with the definitions for the (physical) connections, the Query
Table with the message queries for each protocol and the ActiveX control xlConnect responsible for real-
time data communications is present.

– xTagDB

The tag database worksheet contains all definitions for an individual, including the properties needed
for data communications, and the live values.

Figure 27 eXLerate data communication layout


26 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Protocol Table
The Protocol Table is list that contains the definitions of the protocols to communicate with the devices.
Multiple protocols are available, all running in parallel. For each protocol, a thread is created in Windows
to ensure optimum system performance. For redundancy, a device can have multiple protocols defined
for communication with eXLerate.

The following Protocol Table columns are especially relevant:

– ID Unique internal reference number- this ID will be used in the Query Table

– Protocol Tupe of communication protocol


e.g. FlowXClient, ModbusMaster, ModbusSlave, ModbusServer, ModbusClient, OPCClient

– Type (optional) additional type definition, e.g. ASCII or RTU for Modbus master/Slave

– Options (optional) Protocol options depending on protocol type like timing settings

– MoreOptions (optional) More driver dependent options

– Device Port settings of the device (e.g. Com5:19200,n,8,1 or 192.168.0.44)

– DeviceOptions (optional) Additional settings like IP port number

– DeviceMoreOptions (optional) More settings like for connection and timing

Protocols and their options are described in the eXLerate manuals. In the training, we use the
FlowXClient and ModbusClient protocols to communicate with the flow computer.

Query Table
The Query Table defines poll blocks (message queries) of the data to read from/write to the devices.
Each row in the Query Table is linked to one protocol (refers to the ID the Protocol Table), each protocol
can have 1 or more queries.

The important columns in this table are:

– ID Unique internal reference number- this ID will be used in the xTagDB

– Protocol ID of the associated protocol

– Device Device/Slave ID that should be specified in each message (for multi-drop), e.g.
Modbus, this is a number. For OPC, this is a group name;

– Interval The time between two consecutive polls - entered in 100 ms, e.g. “30” = 3.0 s

– Timeout Max. time to wait for a response - entered in 100 ms

– Retries Number of retries after a communication timeout.

– SleepTime Suspend communication for this period when all retries have failed

– Row Row in xTagDB of the first value in the query


Usually, the MATCH Excel functions are used to automate the lookup of these values;

– Col Column in xTagDB where the values should be written.


Usually, the COLUMN Excel functions are used to automate the lookup of these values;

– Sheet xTagDB (always)

– Options Advanced read and write options.


Search for the Query Options section in the Function Reference, using e.g. a search on xNewDataOnly.
Or see table 6.7 in the eXLerate Reference Manual I.

Additional protocol specific fields. For Modbus:


E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 27

– Type Data type 1:bits/coils 2:Registers

– Address Starting address

– Length Number of items

– Size Item size (bits) per register: 1 (bits/coils), 16, 32, 64, 128

– SW/MW/MR Modbus function codes

xlConnect
The AxtiveX control xlConnect is performing the actual communications.

Note: Run the Tag & Object Wizard after making changes to the Protocol Table or the Query Table to
load these changes into xlConnect. Otherwisecommunications will proceed to use the old settings.

Figure 28 xlConnect ActiveX control

Communications are controller by the “Start” and “Stop” buttons on the ribbon. You will see the icons in
the top-right of xlConnect change depending on the communication status.

The communication settings are correctly configured, real-time data are currently updating Excel.

Communications are stopped, because the user has clicked on this icon, or stopped from the
menu. Communications may be resumed by clicking again on the status icon, or via the eXLerate
menu.

Communications is programmatically paused, and may be continued.


Usually not visible for the user, unless communications are set up via VBA.

There was a warning issued when communications were set up.


Communications are configured when the user issues ‘Apply changes’ from the eXLerate menu.

The configuration has been programmatically set up correctly.


Normally not visible for the user, unless communications are set up via VBA.

The configuration is not defined yet for xlConnect. Its database is still empty.

There was a fault issued during communication configuration.


Correct the problem, of which details are logged in the system event logger, and try again.

This control also provides communication debugging facilities: it allows you to log and monitor all
communications as it happens. To start debugging the communications, click on the Options… button
on the xlConnect control. This opens a dialog where you can specify that all kinds of information be
28 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

logged to the xlConnect log window, the eXLerate Control Center log window, a file, or to a printer. To
change log settings, select one or more protocols, add checkmarks to the “Log events to” section, and
select Rx or Tx data in the “Logging options” section.

When communication is running, the requested information is logged. With this option, you always know
if eXLerate receives and sends proper values, and you can tell whether a problem originates from your
application or from the outside world.

Figure 29 Debug Options Dialog

Figure 30 Raw data in log screen


E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 29

Tag Database
The tag database sheet xTagDB is the beating heart of an eXLerate application. It contains the
configuration for (live) tags. Each row corresponds to one tag, each column represents a property for
the tag like:

– Naming & reference

– Communication settings

– Live values

– Alarm settings

– Trending

– Averaging & Latching

The Tag & Object Wizard automatically creates cell names for reference.

Names & Reference fields


Each tag in the application is internally referenced by an ID and an (unique) name. The following fields
(columns) define the naming and descriptions of a tag:

– Group (optional) name to group tags e.g. per query or device

– ID Internal reference number – automatically generated by eXLerate.

– TagName Unique name for the tag – will be used to auto-generate reference (cell) names

– Alias(optional) tag name to display in alarms & trends

– Location (optional) the physical (device) location for the tag.

– Description Full description of the tag.

Communication fields
You have already seen the xTagDB sheet. In this section, we dive deeper into the communication-related
columns of this sheet:

– Value (live) value read from device

– WriteValue Value to write to the device (optional)

– Query ID of the Query used for communication

– Address Specific address (Modbus register, Flow-X/OPC Tag name) in the query for live value

– DataType Type of Data (see below)

– Min / Max For trend limits and simulation

– Initial Value at application start

– ScaleMin/ScaleMax Scaling of device values to internal values


TagValue = ScaleMin+DriverValue*(ScaleMax-ScaleMin)
DriverValue = (TagValue-ScaleMin)/(ScaleMax-ScaleMin)

– Update Function to write data to external device

– OPCmode Read (R)/ Write (W) mode for OPC Server


30 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

The data type specifies how to interpret the bytes on the communication link. It specifies the number of
bits used for a value and the byte order for least significant/most significant byte. The data type should
be entered as a formula, like “=xFloat”.The most commonly used data types are in Table 4 Data types. A
full list of data types is available in the Function Reference.

Table 4 Data types

Datatype Value Description

xBit 1 Coil (in 16 bit word)

xByte 2 8 bit unsigned integer

xShort 3 16-bit signed integer (C WIN32 short)

xWord 4 16 bit unsigned integer

xLong 6 32-bit signed integer (C WIN32 long)

xDWord 7 32 bit double word (unsigned integer)

xFloat 16 32 bit single precision IEEE floating point, ‘standard’ byte order 4321

xRevFloat 17 32 bit single precision IEEE floating point, reversed byte order 2143

xDouble 18 64 bit double precision IEEE floating point

xShortFloat 19 16 bit integer to scaled floating point

xIntelFloat 20 32 bit single precision floating point, byte order 1234

xRevDouble 22 64 bit (double precision) IEEE floating point – byte order 21 43 65 87

xString 69 A null-terminated string

xString8 70 An 8-byte character string

xString16 71 An 16-byte character string

Alarm fields
Alarms are used to inform users about problematic conditions such as faulty equipment or out-of-range
measurements. Alarms are shown prominently in the user interface. The tag database contains the
following columns for alarm:

– AlarmDesc Description of the alarm that will be shown – when omitted, the tag description is used.

– AlarmGroup Grouping alarms (tree-views in the user interface) – using location when omitted.

– Priority Alarm priority – used for filtering and sorting alarms in the user interface.

– Salarm A status alarm is associated to the tag. Specifies if value “0” or “1” is the alarm status.

– LLalarm Low-Low alarm level for the tag. The alarm is active when the value is below this limit

– Lalarm Low alarm level for the tag. The alarm is active when the value is below this limit

– Halarm High alarm level for the tag. The alarm is active when the value is above this limit

– HHalarm High-High alarm level for the tag. The alarm is active when the value is above this limit

– Deadband Deadband for return to “normal” – to prevent jittering when value is close to the limit.

– Delay Delays activation of an alarm – the alarm condition should exist for this period (seconds)
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 31

Trend fields
– TrendNorm The (minimum) change in value before it is stored values in the historical trend file.

– Format The format to show the numerical data into the trend labels (like “0.00”).

Average & Latch fields


– WeighFactor Tag to use as weight factor for averaging – “xNow.Time” for time-weighted averaging.

– P_[name] Period related fields to define if values should be averaged/latched for this period.

OPC Server
Given you have an OPC server license, you can specify tags to be available in the eXLerate OPC Server
and accessible by other OPC Clients. To enable tags in the OPC Server, simply add an “R” (read only), “W”
(write and read) or “H” (hidden) in the OPCMode column for the specific tag. Note that accessibility may
depend on DCOM security settings on both computers.

Tag & Object Wizard


To display a tag value to the user on a display or report, you make a reference on your sheet to the cell
with the tag value. As seen in Application Basics - Cell & object names, you preferably make the reference
by a descriptive cell name.

Running the Tag & Object Wizard automates the naming. It will:

– Removes invalid names

– Creates cell names (for use in application)

• Live values
• Alarm settings
• Alarm statuses
• Average values
• Latched values

– Creates the actual alarm list

– Creates trend tags

– Checks the entire application for errors

Figure 31 Automatic naming

After running this wizard, a number of cell reference names are available to you. These names are based
on the name you specified and prefixed by a lowercase “x”. If you define a tag with the name “MyTag”,
the reference names “xMyTag.xxx” will be created, with xxx being the specific property/field of the tag.
32 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Calculations
Sometimes you want to combine (live) values into a formula to calculate a new value. As example, you
want to calculate the total station flow rate based on the flow rates of the individual streams. Or you
want to determine a valve position (open/closed/travelling/fault) out of two digital tag values (valve
open: yes/no and valve closed: yes/no). When you want to display/report these values in your
application, you’ll put the calculations in a central place and refer to the outcome in the various displays
and animations. This central place is provided by the calculation sheets.

Calculation sheets
The calculation sheets provide the location to put your custom calculations and additional (modifiable)
parameter values. An application can have multiple calculation sheets. All calculation sheet names start
with “xCalc”, enabling the Calculation Wizard to automatically generate cell names for reference in your
application displays and reports.

Each calculation sheet can contain multiple rows with calculations. Row #3 contains the column
definitions for the calculations:

– Group Optional name for grouping your calculations – for structuring your application

– CalcTag Unique name for the calculation tag.


By convention, the calculation tag name starts with “Calc.”.

– Description Explanation of the calculation

– _Value Formula for the calculated value, or a custom parameter value


Cell name generated by the calculation wizard: CalcTag

– _... Additional calculations / parameters that can be referred to in the application.


Wizard generates additional names for columns starting with an underscore: CalcTag_…

– Store Function (exStoreValue) to make parameters retentive and synchronize values

– … Optional descriptions, references, functions or intermediate calculations

In the calculation you can use

– references (named) cells


like =D5+D6+D7 or =xSTR1_GVR_CUR.Value+xSTR2_GVR_CUR.Value

– excel functions
like =AVERAGE(D5:D7) or =VLOOKUP(D6,E5:F8,2)

– eXLerare functions
like =exInterpolate(E5:E8,F5:F8,D8) or =exKeypad(E5,E6,E7,E8)

– VBA User Defined Function


like =MyVbaFunction(…)

Calculation wizard
The Calculation Wizard allows you to automatically generate names for the cells on calculation sheets.
The cell names are a combination of the tag name defined in the CalcTag column and the column name
when the column name starts with an underscore.
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 33

Figure 32 Calculations

In the example Figure 32 Calculations, the cell with the calculation in the column _Value of the calculation
tag Calc.Str1_MOV1 will be named Calc.Str1_MOV1 (without _Value) and the cell with the calculation in
the column _ Position of the calculation tag Calc.Str1_MOV1 will be named Calc.Str1_MOV1_Position
(with _Position). You can show the calculated values on display and reports by referring to these cell
names, like =Calc.Str1_MOV1_Position.

Note: unlike the xTagDB names, the names generated by the Calculation Wizard are not prefixed with “x”
and they do not have a suffix of “.Value”.

As you can see, first the values of the input tags are copied to the xCalc sheet. This is not strictly
necessary but it makes the calculations better understandable.

Volatile functions
Do not use volatile functions as they are recalculated even without any changes to their inputs and cause
a cascade of calculations slowing down your application responsiveness. Use the available alternatives
instead:

– Now() -> exNow()

– Today() -> exNow()

– Offset() -> Index()

– Indirect() (no alternative)

– Rand() -> Simulation

– Cell() -> exCellProperties()

– Info() (no alternative)

DON’T put Application.Volatile in your own VBA function code as it creates the VBA function to become
a volatile function
34 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Displays, Shapes and Animations


The User Interface (or Human Machine Interface, HMI) of your application consists of a number of
displays. Each display is configured as a separate Excel sheet in an application.

Display sheets can contain a number of powerful components such as:

– Cells with (fixed) text / referring to live values / referring to calculated values

– Pictures

– Shape with animations based on live values

– Charts

– Alarm controls

– Trend controls

– ActiveX components

User: Spirit IT This PC: NL-L-7002463 1/Feb/2018


Level: Administrator Duty PC: None 13:28:06

Metering System Stream Details Totals Maintenance Trending Historical Alarms New Display
Reports
Overview Overview Events

Metering Overview

FT-101 PT-101 TT-101


54.0 4000.2 40.00
m³/h kPa °C
MOV-101 MOV-102
Unknown FT PT TT Unknown

FT-201 PT-201 TT-201


54.0 4000.3 40.00
m³/h kPa °C
MOV-201 MOV-202
Unknown FT PT TT Unknown

Stream 1 Stream 2 Station

Gross volume 54.0 54.0 108.0 m³/h


Standard volume 2126.8 2127.0 4253.8 Sm³/h
Mass 1445.9 1446.0 2891.9 t/h

Pressure 4000.2 4000.3 4000.3 kPa


Temperature 40.00 40.00 40.00 °C

Figure 33 Application display example

Configuration tables
The xTables contains configuration tables of which the following tables are used for displays and
animations:

– User table

– Worksheet table

– Style table

– Color table

Animations of shapes and ranges are defined in the xAnimations sheet.


E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 35

User Table
The security levels in your application is based on numerical values, linked to the user levels as in the
eXLerate Control Center. When a user logs in, the Control Center checks the user name and passwords
and assigns the numerical user level. This numerical value is available for security checks in your
application. The rUserTable defines the numerical levels as named user groups so you can refer to these
group names instead of numerical values when defining security levels in your application. This table
contains three columns:

– Level Numerical value for user group level

– Group name Cell name of user level for reference use

– Comments Description of the user group

UserTable
Level GroupName Comments
0 Accesslevel.Guest Guest
500 Accesslevel.Operator Operator
750 Accesslevel.TechnicianTechnician
1000 Accesslevel.Engineer Engineer
1500 Accesslevel.SupervisorSupervisor
2000 Accesslevel.Administrator
Administrator

Figure 34 User table

Worksheet Table
The table rWorksheetTable is a list with the sheets available as displays in Run-time. Only sheets defined
in this table are visible in Runtime mode. The table defines the following properties for the displays:

– Worksheet Name of the (display) sheet

– Visible level Minimum user level required to show display in run-time

– Edit level Minimum user level required to edit values on display in run-time

– UI range User interface range (visible/edit range)

Figure 35 Worksheet table

Style Table
This table is used to define the format/style of displaying (live) values on displays and reports. It
contains the follow

– Name (unique) name of the style

– Format Format for showing values – reference “xf_[ Name]”

– Units Engineering units for values of this style – reference by “xu_[ Name]”

– Scale Scaling for values (for use in xTagDB) – referenced by “xs_[ Name]”

– Offset Offset for values (for use in xTagDB) – referenced by “xo_[ Name]”
36 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Figure 36 Style table

Color table
In eXLerate 64 colors are available to use for animating shapes based on (live) values in runtime. The
color table defines the colors (RGB values) for these 64 colors. First 8 colors are fixed and you can refer
to these colors by using the color ID (number 0 – 7) or the color names:

• xBlack
• xWhite
• xRed
• xGreen
• xBlue
• xYellow
• xMagenta
• xCyan

The other 56 colors are user definable. You can change these colors by changing the RGB (red, green
blue) values. These values should be between 0 (absent) and 255 (100 present). Run color wizard after
modifications have been made to this table.

You can use these colors for animations by using the color ID (number 0 – 63).
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 37

Figure 37 Color table

User displays
Template display
When you start with an application, define the display resolution of the project (runtime computer) as it
is time-consuming to convert your displays to a different resolution. To avoid repetitive work, it is
recommended you define a Template sheet that contains the default look of all your displays, including
navigation buttons, logo’s. The objects on this Template sheet only have to be defined once and can be
updated automatically on all your displays.

Creating a new display


To create a display sheet, just make a copy of the Template sheet. Right click the worksheet tab. Make
sure the “Create a copy” checkbox is ticked and select “Move or Copy…”.

Figure 38 Copying the Template Sheet

After copying the sheet, rename it so that its name starts with a lowercase “s” and the rest of the name
is unique. The final thing to do is to register the new display in the Worksheet Table.
38 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Text, live values and units


To add (fixed) text to a display, just type the text into a cell. For live/calculated values, type the reference
to the cell with the value (in the tag database or other sheet) into a cell, starting with “=”, like
“=xSTR1_PT_CUR.Value”. To set the numerical format, select the cell and select the style format from the
ribbon Style box. When you want to show engineering units, you can refer to the units of the tag in the
tag database (reference like “=xSTR1_PT_CUR.Units”) or the units in the style table (reference like
“=xu_Pressure”).

Figure 39 Set cell numerical style format

Shapes
Shapes are used to visualize the field layout. The valves that you see in the Metering Overview display,
for example, are shapes. You can add shapes to your display by selecting them from the Shapes button
on the ribbon, copying existing ones, or importing them from packages like Microsoft Visio.

Figure 40 Using the Shapes Button

After adding a shape, you can give the shape a name using the Name input on the eXLerate ribbon. Note
that the Name Definition Tool is not available for shapes. Once a shape has a name, you can use it in
animations (see below).

Figure 41 Set shape object name

You can modify the look & feel of a shape using the Format Picture window (Ctrl+F1), the Shape selection
window (Ctrl+F10), and the Shape Properties Tool from the Tools button in the ribbon.
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 39

Figure 42 Formatting shape tools

When you design displays, you can choose (fixed) colors from the standard Excel colors and the Excel
Theme colors. For changing colors based on live values, use the animations with the IDs of the Color
Table.

Figure 43 Standard and Theme colors in Excel

Animations
In eXLerate, you can animate shapes and cells (ranges). This means that the properties of a shape are
automatically changed based on live values and calculations. Based on live values, you can have the
following animations.

– Change fill and line color *

– Enable blinking between two colors *

– Change visibility (show/hide object) **


40 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

– Set position on sheet **

– Set size **

– Rotate **

* Colors for animations of shapes is limited to the 64 colors of the eXLerate Color Table located on the
xTables worksheet (see section Color table).

** For range animations, only the color and blink can be set by animations,

The animations are defined on the xAnimations worksheet. This sheet contains 4 sections:

– Identification Name of object (shape) or cell to animate

• Class for grouping purposes


• Shape/Range Name of the shape or range to animate
• Description Descriptive text for maintainability of your application

– User calculations

• Value… your own references and (pre-) calculations of values to use for live animation

– Animation values Actual (calculated) values to use for animations

• Fill Color Color Table ID number of the color to use as fill (shape) / background (cell) color
• Line/Text Color Color Table ID number of the color to use as line (shape) / text (cell) color
• Blink Color Color Table ID number of the color to use as blink color
• Blink Boolean value (TRUE/FALSE) to enable or disable blinking
• Visible Boolean value (TRUE/FALSE) to show or hide the object
• Left / Top Position (in points) form top-left corner
• Width / Height Size (in points) of the object
• Rotate Rotation (in degrees) of the object

– Animation functions eXLerate functions to change shape / cell properties according the animation
values in runtime.
For shapes, these functions start with “exShape…”. For cells, these functions start with “exRange…”

Figure 44 Animations Table

Note: when adding rows to the Animations table, be sure to copy the animation functions in the dark-
grey columns from existing rows as these functions should be the same for each shape to animate.
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 41

Displays: Buttons and Navigation


You can add buttons to your application displays to navigate through the different displays and to
perform your own control actions (like starting a proving sequence). Creating buttons on your displays,
you need to put shapes on the displays and assign functionality to these shapes so they act like buttons
in runtime.

Button objects
To add a button to a display, simply add a shape to the display and give it a (logical) name as described
in section Displays, Shapes and Animations– User displays – Shapes.

When you have created a template sheet, you can add the buttons that are similar to all displays (e.g.
display navigation buttons) to this Template sheet. You then only have to define these buttons once and
these will be updated on all your displays when running the Button Wizard.

Configure Button Table


The rButtonTable on sheet xTables contains the configurations of the button objects. Per button you
can configure the action to perform, the required security level, the text on the button, and an
associated key combinations.

Figure 45 Button table

The Button Table has the following columns:

– Worksheet Name of the sheet with the button -applicable for all displays when left empty

– Button Name of the shape that acts as a button

– Text (Fixed) text to be placed on the button.

– Key Associated key (combination)

• {F1} Function key F1


• +{PgUp} Shift-key and PageUp-key
• ^l Ctrl-key and L-key
• %q Alt key and Q-key

– Procedure VBA procedure to execute when the button or key combination is pressed
42 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

– Macro/Command Automatically generated by the Button Wizard. This macro contains the security
check for the procedure to execute

– Access Level Required user access level to press the button

– Enabled Set TRUE to enable the button

You have to enter a VBA procedure that is available in your application in the Procedure column. You can
enter a user defined procedure or form or a predefined eXLerate procedure. The following procedures
are predefined/automatically generated and available in your application when you run the Button
Wizard:

– Load_{SheetName} Shows the specified worksheet as a display page

– exLoadPrevPage Shows the previous loaded display

– exPrintCurrent Print the current worksheet display

– exShowLoginDialog Show the Login/Logout dialog

– exAboutBox Show the ‘About’ box of eXLerate

– AcceptEditGroup_{ } Accepts the new values for a group of editable cells

Figure 46 Button Wizard

After modifications in the Button Table, you need to run the Button Wizard. It automatically fills out the
Macro column and it creates the macros in the VBA module modButtons. When you start the Button
Wizard, it presents you with three options.

– Updates caption text and assigns macros to the buttons.


Doesn’t copy items from Template sheet.

– (Only for backwards compatibility) Set buttons (1-12) position/layout according the Template

– Updates caption text and assigns macros to the buttons.


Also copies all items from Template sheet to all sheets.
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 43

Alarming
Alarms are used to inform users about problematic conditions such as faulty equipment or out-of-range
measurements. Alarms are shown prominently in the user interface. Alarms need to be acknowledged –
even when a problematic condition disappears. An alarm remains visible until the user has indicated that
he is aware that it has happened.

In eXLerate you configure alarms in design and you define the user interface(s) to monitor alarms and
control alarms in runtime. For the latter one, a simple to configure control is available.

Defining alarms
Alarms are defined in the tag database. See section Tag Database - Alarm fields for the xTagDB columns
defining the alarms.

Figure 47 Alarm configuration columns in xTagDB

Run the Tag& Object wizard after changes to the tag database. It automatically generates the names for
tags with alarm properties defined:

– x{TagName}.SAlarm Status alarm limit

• x{TagName}.SAlarm.Raised Status alarm active


• x{TagName}.SAlarm.Status Status alarm status

– x{TagName}.LAlarm Low alarm limit

• x{TagName}.LAlarm.Raised Low alarm active


• x{TagName}.LAlarm.Status Low alarm status

– x{TagName}.LLAlarm Low-low alarm limit

• x{TagName}.LLAlarm.Raised Low-low alarm active


• x{TagName}.LLAlarm.Status Low-low alarm status

– x{TagName}.HAlarm High alarm limit

• x{TagName}.HAlarm.Raised High alarm active


• x{TagName}.HAlarm.Status High alarm status

– x{TagName}.HHAlarm High-high alarm limit

• x{TagName}.HHAlarm.Raised High-high alarm active


• x{TagName}.HHAlarm.Status High-high alarm status

– x{TagName}.Deadband Deadband value for limit alarms

– x{TagName}.Delay Delay for alarms

– x{TagName}.AlmCount Number of active alarms

– x{TagName}.AlmUnack Number of unacknowledged alarms


44 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

For each status/limit alarm defined, the wizard generates two additional names “…Alarm.Raised” and
“…Alarm.Status”. The first one is a boolean that indicates if an alarm is active, the last one is a value
corresponding to a state listed in the table below.

Table 5 Alarm state values

Status value Description

-6 Alarm status undefined

-5 Alarm is active and unacknowledged

-4 Alarm is active and unacknowledged

-3 Alarm is active and blocked (too many alarm changes without acknowledgement)

-2 Alarm is inactive and blocked (too many alarm changes without acknowledgement)

-1 Alarm is inactive and unacknowledged

0 Alarm is inactive and acknowledged

1 Alarm is active and suppressed (by operator)

2 Alarm is inactive and suppressed (by operator)

3 Alarm is disabled (by the system)

Grouping alarm
Alarms can be grouped so these are shown in a tree structure in the user interface. Users can view and
acknowledge alarms in a group at once. You define the alarm groups in the Alarm Groups Table on the
xTables sheet.

AlarmgroupsTable Alarm summary tree:


Parent Child  All
System Communication  Stream 1
System Stream 1  Flow meter 1
Stream 1 Flow Meter 1  Pressure transm. 1
Stream 1 Temperature Transm. 1  Temperature transm. 1
Stream 1 Pressure Transm. 1  Stream 2
System Stream 2  Flow meter 2
Stream 2 Flow Meter 2  Pressure transm. 2
Stream 2 Temperature Transm. 2  Temperature transm. 2
Stream 2 Pressure Transm. 2
Figure 48 Alarm Groups Table

This table consists of two columns: parent and child. The root node of the alarm group tree is the
“System” group. The first level of groups are “children” of this “System” group so you have to add these
to the Alarm Group table by rows that have “System” in the Parent column and the group name in the
child column. You can add subgroups by adding the name of the main group in the Parent column and
the subgroup in the child column. Note that each group name can only have one parent.

To put an alarm into a group, take the group name that you defined in the “Child” column of the Alarm
Group Table, and insert it into the AlarmGroup column in the xTagDB sheet.
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 45

After running the Tag & Object wizard alarms are sorted on a hierarchically way with parent and child
groups. To check your alarm groups without going to runtime, use the Alarm Tree Tool from the Tools
menu or by pressing [Ctrl]+[M]. It shows both the alarm groups and the individual alarms.

Display alarms
The eXLerate Alarm Summary control is an easy to implement control to handle your user interface
needs for alarm control and overview of the runtime status. You can add an alarm summery to a display
sheet, just select it from the Controls menu.

Figure 49 Selecting the Alarm Summary Control

Figure 50 The Alarm Summary Control

The Alarm Summary Control is easy customizable. You can change look and feel for runtime systems, like
the available toolbar buttons, position, size and availability of columns, security settings for
acknowledging and suppressing alarms, colors of the alarm states, add filters, and more. To change
these properties, disable the Design Mode from the eXLerate menu “Insert” section and click the
button of the control (or double-click on the top toolbar).

To position and resize a control on a sheet, enable the Design Mode from the eXLerate menu “Insert”
section.

Next to an alarm summary, many applications feature an alarm history. eXLerate facilitates two ways of
loading events to show here: you can load them from stored log files, or from the embedded database.

Your training application contains an event history. To include an event history in your own applications,
the best way is to work from an example project.
46 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Historical alarms & events


Alarms & Events are stored in internal database when the application (communication) is running. Your
application contains a pre-defined display with ListView control that shows the historical alarms &
events data retrieved from this database. A user can select date/time, scroll, sort data on a run-time
system.

Figure 51 Historical alarms & events


E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 47

Trending
eXLerate comes with the ability to trend and show values over time in charts. You define the tags that
need to be trended in design and create the user interface that allows to select and view these trended
values in runtime. eXLerate has Trend Controls that are simple to configure and used for runtime
operations to shows trend charts.

Figure 52 eXLerate trending page

Defining trend tags


You have the tags that need to be trended in Tag Database, using thoe following two columns:

– TrendNorm
This column contains the minimum change to store values in the historical trend database. E.g. 0.1
means if the difference between the current- and previous value is higher than 0.1, the value is stored
into the database. When a value of 0 is used, every change is stored into the database.

– Format
This column contains the format to show the numerical data into the labels. E.g. “0.0” or “0.000”.

Figure 53 Trend chart definition in the tag database

Run the Tag& Object wizard after changes to the tag database to update the tags to be trended and the
trend norm to use.
48 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Display trends
The user interface for trending in eXLerate is easy to build using three controls:

– Trend Chart Visualizes the trend-data in a chart

– Trend Pen Selector Selection of trend tags for trend chart

– Trend Navigator Visualizes a larger portion of the trend-data

These Trend Controls can be added to a display sheet from the eXLerate menu “Controls”

Figure 54 Insert trend controls

To position and resize a control on a sheet, enable the Design Mode from the eXLerate menu “Insert”
section. In the figure below is an example of a combination of trend controls

Figure 55 Trend chart

You can change look and feel of the controls for runtime systems. To change the properties of a control,
disable the Design Mode from the eXLerate menu “Insert” section and click the button of the control
(or double-click on the top toolbar).
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 49

Trend Chart
The main trend chart is the graphical visualization of the (selected) tag values over the selected period.
For the main Trend chart, you can set properties like:

– Toolbar buttons available in runtime

– Background for the chart and plot area

– Pen labels and layout

– Time axis and value axis layouts

– Scaling

• Auto
• Fixed
• Dynamic

– Show or hide alarm limits

Trend Pen Selector


The Pen Selector allows a user to select the different tags to be shown in the Trend Chart. An application
can have multiple trend charts showing different trends, so you have to link the pen selector to a specific
trend chart. This relation and other properties of the pen selector can be modified by clicking the
button of the control. The main properties are:

– Related Trend chart

– Tag selection availability and filters

– Pen sets availability and security

– Pens section

• Availability
• Toolbar buttons
• Columns to show

Trend Navigator
The Trend Navigator is an optional control for data inspection and navigation. It shows the same pens as
the Trend Chart but for a longer period. The position of the Chart is displayed in the Navigator and can
be moved and resized. The Trend Navigator makes it possible to select a part of the data to view in the
Trend Chart. You have to link the trend navigator to a specific trend chart as an application can have
multiple trend charts showing different trends. This relation and other properties of the pen selector
can be modified by clicking the button of the control. The main properties are:

– Related Trend chart

– Zoom factor

– Toolbar buttons
50 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Editing values
At runtime, all display worksheet are locked to prevent users to make modifications and overwrite (live)
values. This chapter describes how to allow users to enter or modify values (user input) in runtime mode.

Allowing user input


Default all cells on the display sheets are locked so a user cannot enter and type in values during runtime.
This is what you want for most cells as otherwise users could start writing all over your display screens.
However for certain values (cells) you want the user to be able to input new values in runtime (user
input). To allow the user to enter values into a cell in runtime, you have to unlock these cells and make
sure they are in the UI Range.

In design mode you can unlock or lock cells from the eXLerate ribbon. When the indicator is highlighted
the cell is locked and not modifiable in run-time. When the indicator is not highlighted the cell is
unlocked and modifiable in run-time.

Figure 56 Lock Button on eXLerate Ribbon

Any editable cell must be within the “UI Range” of display worksheet configuration defined in the
Worksheet Table and the minimum edit level required for the display.

Figure 57 UI Range
WorksheetTable Display size 1920 x 1080
Worksheet Visible level Edit level UIRange
sOvw 0 0 A1:Q59
sSysOvw 0 0 A1:Q59
sTotals 0 0 A1:Q59
sMaint 0 0 A1:R59
sLegend 0 0 A1:Q59

Editing table
The xEditing worksheet contains the Editing Table with the configuration of handling the user input of
these unlocked cells. It checks required security level, the entered values for data type, minimum and
maximum. When the newly entered value of the editable cell on the display matches all criteria, the new
value is written to the target, which can be an internal parameter (calculation tag), alarm limit, or an tag
of a connected device.

Configuration
Each editable cell on a display corresponds to one row in the Editing Table. The Editing Table has the
following columns:

– Class (Sheet) name to combine similar editing cells – for structuring your application.

– Cell The editable cell on the display.

– Target Reference location where the entered value should be written to.

– Target Type Location type of the target for writing the new value:
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 51

1. xTargetNone Don’t write the new value


2. xTargetCell Write the new value to the specified cell address
3. xTargetName Write the new value to the specified named cell
4. xTargetComm Write the new value to the specified communication tag
5. xTargetAlarmLimitWrite the new value to the specified eXLerate Alarm limit

– Group Group-wise acceptance of values:


VBA macro “AcceptEditGroup_{GroupName}”

– Edit Type Data type allowed to enter:

1. xWholeNumber Integers
2. xDecimal Floating points
3. xText Strings
4. xList Select from list
5. xDate Date values
6. xTime Time values

– Edit list Range with the drop-down list to use when Edit Type is xEditList – see below

– Edit Type Alert Message to show when data type is incorrect.


Default message is like “Value does not match the specified datatype”.

– Min Minimum value allowed for the new value.

– Max Maximum value allowed for the new value.

– Min/Max Alert Message to show when user enters new value outside limits.
Default message is like “Value should be less/greater or equal to …”.

– Enabled Enables or disables cell editing based on live values.


Enter a Boolean formula.

– Access Level Minimal security level required for user tob e able to enter a new value.

– Confirm msg Confirmation text to show (optional) when user enters a new value.

A special case for the Edit Type is the xList. You can use it to present the user with a drop-down list of
values to choose from. To make a list, set the Edit Type to “xList” and define a table with two columns:
the 1st column contains the value for the target location and the 2nd column contains the corresponding
text to display in the drop-down list. The user can select one of the strings of the 2nd column and the
corresponding value of the 1st column will be written to the target.

You can enter a list in the Edit List cell as an unnamed range (xLists!G5:H7), a named range
(rMyDropDownList) or as text with “:” (columns) and “|” (rows) separators (like 1:GC-A|2:GC-B|3Keypad).

Run-time functions
On the right side of the configuration section you can find the eXLerate functions that handle the
editing in runtime.

– exEditID Registers a cell for run-time editing

– exEditTarget Set the target location, e.g. where to write the new value

– exEditType Sets and checks the data type

– exEditValidation Sets and checks min/max limits

– exEditAccess Sets and checks if editing is allowed (enabled and security level)

– exEditConfirmation Sets and shows the confirmation message


52 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Writing values to devices


With eXLerate it is possible to write values to a connected devices in three different ways:

– Display Editing functions


Operator entries from displays, e.g. override values, alarm limits, settings

– Tag Database update functions


Live/calculated data available in application, e.g. selected gas composition, updates to DCS

– Visual Basic functions


Control signals from VBA procedures, pop-up forms, e.g. valve commands, proving commands

Make sure that eXLerate is allowed to be able to update the device value over the communication link.
For Modbus Master/Client protocols the single write (SW) and/or multiple write (MW) function codes
should be enabled in the query table (and also in the connected device). For Modbus Slave/Server
protocols the multiple read (MR) function codes should be enabled in the query table (and also in the
connected device).

Display editing
When you want a user input from a display to be written to a device, you can use the editing functions as
defined in section Editing values above. Unlock the cell(s) on the display to allow user input in runtime,
and configure the Editing Table for these cell(s) with the Target Type set to “xTargetComm” and the
Target to the tag value in the tag database (like xTagName.Value).

After the user changes the value in runtime, the value is sent directly to the communication device.

Tag Database updates


When you want to update live or calculated values to a connected device, you should use the update
functions from the Tag Database. Define (a reference to) the value to write in the WriteValue column and
add in the Update column an exUpdateEx() (numerical values), exUpdateStrEx() (string values) or
exUpdateVarEx() (variant values) function to trigger the data update to the external device.

Figure 58 Add value to write in the tag database

The exUpdate…Ex() functions perform the actual update towards the xlConnect control performing the
actual communications. These functions require the following arguments

– Query ID ID (number) of the query to use for communication.


Set reference to the corresponding xTagDB Query column

– Tag ID Tag database ID (number) of the tag


Set reference to the corresponding xTagDB ID column

– Value (New) value to write to the device


Set reference to the corresponding xTagDB WriteValue column

– Update mode Mode to use for update

• xUpdateNever Don’t update


• xUpdateAlways Always update value when triggered
• xUpdateConditionally Update according to set conditions (VBA function exSetUpdateMode)

– Trigger Optional trigger for executing an update.


When omitted the update is triggered when the write value changes.
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 53

Example
To write a new value for the tag with ID 71 on row 73 (methane value), the function looks as follows:

=exUpdateEx(L73,B73,H73,xUpdateAlways)

Whereby L73 Reference to the cell with the Query number


B73 Reference to the cell with the Tag ID
H73 The value to write
xUpdateAlways Always update

Visual Basic updates


When you want to update values to a connected device from a user form or VBA procedure that you
create, you use the exUpdateEx() (numerical values), exUpdateStrEx() (string values) or
exUpdateVarEx() (variant values) similar to these worksheet functions. You have to specify the Query ID,
Tag ID, the value to write and the update mode.

In VBA you have an additional function exUpdateForce() that writes a value to a device, even if the value
has not changed. This function requires as arguments the tag name like xTag.Value (instead of the
Query ID and Tag ID) and the value to write. As optional argument you can set that the value in the tag
database should also be updated (default) or not.
54 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Intervals, Periods and Events


In your eXLerate applications you can define recurring intervals you can use to perform periodical
calculations and to trigger events, like periodic averages, latching totals, generating periodic reports.

Interval table
The Interval Table on the xTables sheet contains the definitions for intervals, periods and events.
Existing intervals can be changed and new intervals can be added to this table. You have to run the
Tag&Object Wizard after making modifications to this table.

Figure 59 Interval Table

The following fields are available:

– ID Interval ID number
– Name (Optional) unique name for the interval.
When a name is entered, it can be used in the application for periodic data and report generation.
– Type Period time type:
1. xSec seconds based
2. xMin minutes based
3. xHour hourly based
4. xDay daily based
5. xWeek weekly based
6. xMonth montly based
7. xQuarter 3-monthly based
8. xYear yearly based
– Count Type counts. E.g. count 5 with type xSec is an interval of 5 sec
– MM Start month of the interval
– DD Start day of the interval
– hh Start hour of the interval
– mm Start minute of the interval
– ss Start second of the inverval
e.g hh mm ss=06 00 30, interval starts at 06:00:30 a.m.
– Periods Number intervals in an historical range.
e.g. 24 periods with count 1 and type xHour creates 24 hourly intervals in a range.
– StartOn Starting period for interval range
Mostly used for hour periods, e.g. start on 6 is 24 hours from 6 am till 6 a.m. (next day)
– ResetBy (Optional) Name of another interval that resets all periodical data when event occurs
– Previous Previous interval number (related to the type) – automatically set when application runs
– Current Current interval number (related to the type) – automatically set when application runs
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 55

Periodic data
When a name is entered for an interval, it can be used in the application for automatically calculate
periodical data. Periodic data is live data gathered and processed during an interval. It can be used to
calculate an average process value or store totals during a period so these values can be shown and put
on reports.

Named intervals create related columns in the Tag Database to enable these automatic calculations and
storage. The column names will be the interval name prefixed with “P_”, e.g. an interval named “Hourly”
will have a related column named “P_Hourly” in the xTagDB.

Figure 60 Period columns in xTagDB

In these period columns, you can enter a “W”, “L” or both for any tag to indicate that the live data should
be averaged during the period (W) and/or be latched at every period change (L). These results are stored
and available in the application and can be used to show on displays and reports.

Latch values
A latched value acts as a sample and hold register. It takes the current value of a tag at a period change,
and stores that value in memory for the duration of the associated period. When the period elapses a
new value is sampled for the duration of this period.

In the figure below, the red line gives the tag live value and the blue line the latched value.

Figure 61 Latched Values

When you enter an “L” for a tag in a period column and you run the Tag&Object wizard, it automatically
creates internal names that will hold the latched data so you can use it in your application. The names
56 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

will be based on the tag name and the period name. When you have a tag named STR1_GVF and a period
named Hour the following names will be created:

– xSTR1_GVF.Hour.Current last latched value (i.e. NOT the current actual value of the input);

– xSTR1_GVF.Hour.Previous second-last latched value;

– xSTR1_GVF.Hour.rPeriods range with all latched values for the number of periods as defined in the
interval table. The whole range will be reset every time the first interval period elapses. E.g. when the
interval is defined as hourly interval with 24 periods that start on 6 a.m., the range is reset just before
7 a.m.

The last value, rPeriods, is an array. To use this value, enter an Array formula (see section Excel
functionality).

Weighted average values


The average in eXLerate is calculated as a weighted average of a real-time value. The weighted average is
similar to an ordinary average, except that instead of each of the data points contributing equally to the
final average, some data points contribute more than others. The contribution of the process parameter
to the resulting average depends on the weight factor. This weight factor has to be specified in the
WeighFactor column of the xTagDB, without an equals sign. A weight factor has to be based on an
accumulative value, like a totalizer, with which the difference between the previous and the current value
is calculated. For a time-weighted average, enter “xNow.Time” into the column.

An example of a weighted average is shown in Table 6.

Table 6 Weighted Average

Time Value (P) WeighFactor Increment (Q) P*Q

7:00 15 200 200 3000

8:00 30 210 10 300

9:00 20 0 0 0

10:00 20 220 10 200

11:00 15 320 100 1500

Sum 320 5000

The value 20 reported during 9:00 is not used for the averaging process, because the weight factor
increment was zero during that hour. The value 15 during 7:00 contributes 20 times as much to the
weighted average as the value 10 during 8:00 because the increment is 20 times more. The weighted
average is calculated by dividing the sum of the values multiplied by the increments (5000) by the sum
of the increments (320). This yields to an weighted average of 15.625 while the arithmetic average is 20.

When you enter an “W” for a tag in a period column, enter a WeighFactor and you run the Tag&Object
wizard, it automatically creates internal names that will hold the average data so you can use it in your
application. The names will be based on the tag name and the period name. When you have a tag named
STR1_PT_CUR and a period named Hour the following names will be created:

– xSTR1_PT_CUR.Hour.WAvg weighted average value of the running interval


E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 57

Combining averaging and latching


When you specify both “W” and “L” in the Period column, latches and weighted averages will be
automatically combined allowing you to latch the period average on a period change. It allow you to have
a range of period averages, e.g. 24 time an hourly averages stored at hour changes.

When you run the Tag & Object Wizard, extra tag names become available that contain the combined
results. When you have a tag named STR1_PT_CUR and a period named Hour the following names will be
created:

– xS1_PT_CUR.Hour.Current last latched live value

– xS1_PT_CUR.Hour.Previous second-last latched live value

– xS1_PT_CUR.Hour.rPeriods range with all latched live values for the number of periods

– xS1_PT_CUR.Hour.Wavg weighted average value of the running interval

– xS1_PT_CUR.Hour.Wavg.Hour.Current last latched weighted average

– xS1_PT_CUR.Hour.Wavg.Hour.Previous second-last latched weighted average

– xS1_PT_CUR.Hour.Wavg.Hour.rPeriods range with all latched weighted averages


58 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Reports
Youi can generate and print reports from your eXLerate applications. The reports can be generated
automatically on an event like a period change (e.g. every hour or day) or another event, like proving
completion or batch end, and on user request.

Company
Location
Daily Report
20/Nov/2018
Stream 1
Pressure Temperature Gross volume Std. volume Mass Energy
kPa °C m³ Sm³ t GJ
7:00 0. 0.00 0.00 0.00 0.00 0.00
8:00 0. 0.00 0.00 0.00 0.00 0.00
9:00 0. 0.00 0.00 0.00 0.00 0.00
10:00 4000. 40.00 7.20 338.40 230.00 12.80
11:00 4000. 40.00 7.20 338.40 230.00 12.80
12:00 4000. 40.00 7.20 338.40 230.00 12.80
13:00 4000. 40.00 7.20 338.40 230.00 12.80
14:00 4000. 40.00 7.20 338.40 230.00 12.80
15:00 4000. 40.00 7.20 338.40 230.00 12.80
16:00 4000. 40.00 7.20 338.40 230.00 12.80
17:00 0. 0.00 0.00 0.00 0.00 0.00
18:00 0. 0.00 0.00 0.00 0.00 0.00
19:00 0. 0.00 0.00 0.00 0.00 0.00
20:00 0. 0.00 0.00 0.00 0.00 0.00
21:00 0. 0.00 0.00 0.00 0.00 0.00
22:00 0. 0.00 0.00 0.00 0.00 0.00
23:00 0. 0.00 0.00 0.00 0.00 0.00
24:00 0. 0.00 0.00 0.00 0.00 0.00
1:00 0. 0.00 0.00 0.00 0.00 0.00
2:00 0. 0.00 0.00 0.00 0.00 0.00
3:00 0. 0.00 0.00 0.00 0.00 0.00
4:00 0. 0.00 0.00 0.00 0.00 0.00
5:00 0. 0.00 0.00 0.00 0.00 0.00
6:00 0. 0.00 0.00 0.00 0.00 0.00

Figure 62 Example Report

Design vs. runtime


A report in an eXLerate application is a worksheet containing references to data in the application. The
worksheet acts as a template for the actual reports generated in runtime. The report data can be live
data, periodical data and calculated values that are continuously changing.

The actual reports are stored as separate Excel files on disk in the report path defined in the Control
Center application shortcut properties (see section Control Center – Application Shortcuts). Upon
generation of the actual report, a snapshot of the actual values is stored. The references and calculated
data of the template are replaced by the actual values.

In design mode, the reports can be manually generated from the eXLerate ribbon to test the layout and
functionality. In runtime, the reports are created on events as defined in the Report Table, VBA code or
by a user action like pressing a button that you have defined in your application.
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 59

Report table
All reports have to be registered in the Report Table on the xTables sheet. It contains the definitions for
the reports, like the report name, worksheet used as template, the file and sheet name to be used for
generating the report and the number of initial copies to be printed.
ReportTable
Report Period Workbook Worksheet Trigger StartDate FileName SheetName
Copies Options Password Printer Status
Alarms rAlarms 11/05/2016 10:03 Alarms\Alarms20190111 09.36.00 0 0
Daily Hour rDaily 10/12/2018 13:00 Daily\20190111 09.36 0 0
Monthly Day rMonthly 10/12/2018 13:00 Monthly\20190111 Jan 11 0 0

Figure 63 Report table

– Report Name for the report

– Period Interval name for automatic generation of the report


When left empty, reports can be generated manually or by VBA events

– Workbook Obsolete

– Worksheet Name of the worksheet to use as template

– FileName Name of the workbook to store the report when created.


You can use Excel functions to include the date and/or time in the workbook names.
This way, separate files are created for reports generated at different times.

– SheetName Name the sheet inside the workbook to store the report when created.
Again, you can use excel functions to generate different worksheets.
If a report with the file name already exists, new sheets are added;

– Copies Number of copies to print when report is generated.


When number of copies is set to 0, the report file is still generated and stored on disk.

– Options Enter “1” to set the “Read only” flag.

– Password Pass word for the report to prevent accidental modifications of the report when opened.

– Printer Name of the printer (as in Windows) to use for printing the reports.
When left empty, the printer as specified in the Control Center will be used.

– StartDate Date/time when reports was last generated (automatically update by eXLerate).

– Status Indication if last reports was generated successful (=0) or failed (=1).

Designing reports
When you design a report worksheet, you may use constant values or text, live values, formulas, periodic
data, shapes, pictures, and everything else that Microsoft Excel supports.

To insert a value from the application into your report, you use the simple ‘=’ sign, and point to the value
in your application. When you have created periods in an application, for example an hour period
containing 24 periods, using the Interval Table and setting the latch for the tag in the Tag Database (see
section Intervals, Periods and Events Latch values). To enter (the reference to) the range with 24 values,
select 24 cells and enter the reference to the range (like =xTag.Interval.rPeriods) and press
[Ctrl]+[Shift]+[Enter] instead of pressing [Enter]. Excel will automatically enclose your formula in curly
brackets ({}). You do not have to type these brackets yourself.

When a report is generated, all formulas are replaced by values. When you want to use a formula to be
present on the generated reports, you have to define the formula in between quotes so it is considered
as text. For example, when you want to display the current date/time, using the function =NOW() will be
replaced by the value and result in the date/time of when the report was generated. You should use the
60 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

syntax ="=NOW()" as when this formula is converted into a value, it’s result is =NOW() so when this
report is re-printed or previewed, the formula is recalculated and the current date/time is displayed.

For a picture, shape, chart or any other type of object placed on a report, set the format properties to
‘Move and size with cells’ and enable ‘Print object’. If these settings are not correct, the object may not
appear correctly or not appear at all on the generated report.

Charts should always refer to source data on the same worksheet.

When you have designed your reports, check if the report sheet is printed correctly:

– excel menu File | Print

– eXLerate - Generate Report Dialog

Figure 64 eXLerate - Generate report tool

– Interval as defined in the Report Table

– Visual Basic

• exGenerateReport(…) generates a report


• exReprintReport(…) reprints an existing report
• exPrintCurrent(…) prints the current worksheet
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 61

Visual Basic for Applications


Excel has built-in support for VBA macros, user defined functions (UDF), user forms (pop-ups). This VBA
functionality can be used in eXLerate applications as well. On top of the functions available in excel,
eXLerate provides additional VBA functionality.

– control of real-time data communications in VBA

– Use/access eXLerate controls (e.g. trending, alarming)

– eXLerate specific routines

Buttons actions
Each eXLerate application contains a VBA module names modButtons. The code in this module is
automatically generated based on the Button Table configuration when you run the Button Wizard.

This module will contain the procedures for:

– Load_{Sheet name} Switch to the specified worksheet; Used for navigation buttons
in run-time to loada display page

– AcceptEditGroup_{Group name} Accepts the new values for a group of editable cells

– Call_{Procedure name} Calls the procedure defined in the Button table with check on
user access level. This can be calls to

• Direct calls to VBA functions like exLoadPrevPage, exShowLoginDialog, etc.


• User defined procedures {Your procedure}
• Show the user form (VBA) {Your user form}.Show

Don’t make changes as the module will be overwritten when you run the Button Wizard. Put the VBA
code of your own procedures in separate module(s).

Event based actions


The VBA module modEvents, contains a number of procedures that are called by the eXLerate program
when certain events occur. You may add calls to your own functions and procedures in these procedures
that you want to be executed when a certain event occurs.

The module contains the procedure for the following events:

– OnProjectOpen(...) Called when the application is opened


It should at a minimum call ‘exProjectInit()’ to initialize the xlConnect ActiveX control.

– OnBeforeApplyChanges(...) Called just before worksheet changes are applied.

– OnBeforeActiveMode(...) Called just before data communications are started

– OnBeforePassiveMode(...) Called just before the communications are suspended.

– OnBeforeReport(...) Called just before the report is to be generated.

– OnDaylightSavingChange(...) Called when the daylight saving time changes.

– OnUserCalculate(...) Called at every calculation update.

– OnUserInit(...) Called when it detects a reset of your instance’s VBA global data.

– OnWatchdog(...) Periodically called by the eXLerate to check the VBA dataspace.


62 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Interval & period based actions


A special procedure in the module modEvents is the procedure OnEvent(). This procedure is called by
eXLerate each time a period/interval change-over as defined in the Interval Table occurs. The ID, Name
and Current period corresponding to the interval that is triggering the OnEvent() are passed as the
iEventID, strPeriodName and iPeriod arguments.
You may modify the events in this procedure to subsequently call other procedures, should these
procedures be periodically executed. The code that you insert must be fall-though, so avoid blocking
program like by using (infinitive) loops, modal forms or message boxes etc. Don’t activate user forms or
message boxes on an interval as no other VBA will be executed while the dialog is active. Also prevent
calling time-consuming code as it might decrease the performance and responsiveness of your
application.

Good engineering practice


Almost everything is possible using VBA, especially when using external functionality like Windows APIs.
Lots of examples can be found on the internet.

BE CAREFUL WHEN USING COPIED/EXTERNAL CODE

Inserted functionality may be a black box with no guarantees on stability. You need to take care of your
VBA code and have to make sure that externally allocated memory/handles are released in order to
prevent memory leakages and system instabilities.

eXLerate specific functionality can only be used after eXLerate initialization by exProjectInit() in the
procedure OnProjectOpen().

When writing your code, apply the following engineering practices:

– Use eXLerates exRange()instead of native Range() method

– Use eXLerates exMessageBox() instead of native MessageBox() method

– Avoid synchronous (blocking) functionality when possible. Use asynchronous and non-modal
functions when possible: :

• SQLCmd.ExecuteAsync instead of SQLCmd.Execute


• Non-modal forms (Form1.Show vbModeless) instead of modal forms (Form1.Show vbModal)
• Non modal message boxes instead of modal message boxes

A message box or modal form waiting on user input could take very long if no-one is actually monitoring
the system. For example the following code:

Function GetInput() As Boolean


On Error goto errHndl
exMsgBox "This will block the application until OK pressed", vbOKCancel
exMsgBox "This will block the application for 10 sec", vbOKCancel, , 10
exMsgBox "This will be shown for 10 sec but doesn't block code",
vbOKCancel, , 10, , False
GetInput = (exMsgBox("You have 5 sec to answer this question: 1+1=2?",
vbYesNo + vbDefaultButton2, , 5, , True) = vbYes)
errHndl:
If err.Number <> 0 Then
err.Clear
Resume endOfRoutine
End If
endOfRoutine:
End Function
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 63

The 1st message box will block the application infinite until a user presses the OK button; The 2nd
message box will block the application form max. 10 seconds; The 3rd message will be shown for 10
seconds, but code execution is continued immediately (the last argument ‘ False’) The last message box
will be shown for 5 seconds and code execution is blocked for this time; if no button was pressed, it
continues as if ‘No’ was pressed (vbDefaultButton2)

– Use at the start of each module/worksheet/class/form

• Option Explicit Ensures you need to define variables explicitly


(prevents strange behavior when variable names contain typos)
• Option Compare Text Allows string comparison being independent of lower/upper case

– Use error handling in all procedures

– Check inputs on validity

Sub SayHello(sDest As String)


On Error goto errHndl
If sDest = "" Then Exit Sub
exMsgBox "Hello " & sDest
errHndl:
If err.Number <> 0 Then
exLogEvent …
err.Clear
Resume endOfRoutine
End If
endOfRoutine:
End Sub

– Take care of user defined (worksheet) functions (UDF)

• These are called every time any of its arguments are triggered
• UDFs can only be defined in modules
• UDFs can only return to the cells from which they are called, not write to another cell
64 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Redundancy
eXlerate support different types of redundancy to allow a system to continue functionally running when
a single point of failure occurs. The following redundant setup are available:

Redundant communication Redundant devices Redundant servers

Figure 65 Redundant configurations

Redundant communication
Redundant communication consist of having two (network/serial) communication links to a single
device. The data originates from a single source (device) and is transferred over two different physical
links. If one link fails, the data is communicated over the second link.

To setup redundant communication in an eXLerate application, you have to configure two protocols for
communication, e.g. “192.168.1.100” and “192.168.2.100” and corresponding queries for both protocols.
Both protocols will communicate the full data set.

Perform the following configuration steps to setup the redundant communication:

– Two protocols, one for each link

– Two sets of queries, one set for each protocol.


The sets update the tag database either in the same column or in two different columns.

– Tag database contains one set of tags, with the following columns:

• Link1 (optional) Values from link 1


• Link2 (optional) Values from link 2
• Value Value in use; either set by both links or select in-use link if queries use separate columns
• Query Queries to use of both devices separated by comma, e.g. “5, 13”
• Query1 (optional) Query for link 1
• Query2 (optional) Query for link 2
• Update Function to write data using 1st link (Query1)
• Update2 Function to write data using 2nd link (Query2)

– Determine primary link (optional)


=IF(NOT(xFX1_LAN1_STS.SAlarm.Raised),1,2)
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 65

Redundant devices
Redundant devices consist of having two devices performing the same task (measurement). The data
originates from a two sources (devices) which might or might not be synchronized by the devices their
selves. In eXLerate the data is considered as a single set of tags, each tag containing values of both
devices. The communication with both devices will be the full data set at high frequent intervals. One of
the devices is set as the “Duty” device and the other as the “Standby” device. The data of the “Duty”
device will be used for alarming, trending, latching etc. If a device fails, the other device will turn into the
“Duty” device.

To setup redundant devices in an eXLerate application, you have to configure two protocols for
communication, e.g. “192.168.1.100” and “192.168.1.101” and corresponding queries for both protocols.
In the tag database the corresponding tags will have three values: value of 1st device, value of the 2nd
device and the value selected based on the “Duty” device selection. eXLerate needs to be configured to
switch the “Duty” device based on communication and/or Duty status reported by devices.

Perform the following configuration steps to setup the redundant devices:

– Two protocols, one for each device

– Two sets of queries, one set for each protocol.


The sets update the tag database in two different columns.

– Tag database contains one set of tags with the following columns:

• Value Value in use (Duty device)


• Value2 Values from device 1
• Value3 Values from device 2
• Query Queries to use of both devices separated by comma, e.g. “5, 13”
• Query1 (optional) Query for link 1
• Query2 (optional) Query for link 2
• Update Function to write data to 1st device (query)
• Update2 Function to write data to 2nd device (query)

– Determine Duty device. For example:


=IF(AND(NOT(xFX1_LAN1_STS.SAlarm.Raised),xFX2_LAN1_STS.SAlarm.Raised),1,
IF(AND(xFX1_LAN1_STS.SAlarm.Raised,NOT(xFX2_LAN1_STS.SAlarm.Raised)),2,
xFX1_Duty_Sts.Value2))

Redundant servers
eXLerate supports fully synchronized redundant servers and clients. The “Duty” server communicates
with devices, generates reports, generates alarms and maintains the databases. The “Standby” servers
do not communicate, generate reports, etc. Instead, they copy the data from the “Duty” server.

The “Standby” becomes automatically the “Duty” server when the “Duty” server fails (hot-standby). It
takes over communication, reports, database, etc. The data is continuously synchronized, meaning the
“Standby” servers continuously update themselves with the data of the duty server. This allows eXLerate
to perform “bump less” transitions when switching from one duty server to another.

Client systems can’t communicate with the devices and don’t maintain the data locally. Instead they read
all the data from the “Duty” Server.

An eXLerate application for a Server/Client system requires the xNet sheet. It is a ready-to-use
configuration sheet and only requires setting up the computer names and IP addresses. No additional
configuration is required for multiple servers as opposed to a Standalone system.

The xNet sheet allows you to setup up to 4 Servers, 8 Clients - Up to 4 network addresses each – and 4
printers. It contains pre-defined cell names, like:
66 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

– Net.Server1.Name Computer name

– Net.Server1.IP1 Link 1 IP address

– Net.Server1.Status1 Link 1 status

– …

It contains pre-defined animations, like:

– Server1 Visibility based on computer name set

– Server1.Lnk1 Visibility based on IP address set

– Server1.Flt1 Visibility based Link 1 status

– …

Figure 66 xNet Server/Client configuration sheet


E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 67

Exercises

Installing eXlerate
Install the eXLerate program on your computer:

– Make sure you have installed a supported Microsoft Excel versions prior to installing eXLerate
– Copy the eXLerate installation file from the USB to your computer or download from our website:
https://www.spiritit.com/support/downloads/
– Run the Complete installation (including the sample files) (Double-click eXLerate_....exe)
Request for an development license

– Run the License Manager


– Export the license file and e-mail this file to: license@spiritIT.com
– Enter the Authorization key and License number received
– Check in the license manager that eXLerate is “Authorized”
Check the USB maintenance dongle

– Attach a USB dongle to your computer


– Check the license in the License manager.

eXLerate user management


Start eXLerate and log in as operator and try to edit users

– User name operator / Password operator


– User name administrator / Password admin
Add a new user with administrator rights

– User name your own name


– Password ****
Set automatic logon/logoff

– Enable automatically log for the newly created user


– Set that the user is log-off when no activity has been detected for 15 minutes

Control Center options


Set a new printer for reports:

– Add a new (local) printer in Windows Devices & Printers named Reports
– If a port NUL: already exists, select this port, otherwise create a new local port named NUL:
– Set eXLerate to use the newly added printer as default printer for reports
– Set the reports to be stored forever
Set that trending that:

– The data is stored for at least a year


– A warning is generated when disk is 90% full
– Trending is stopped when disk is 95% full
68 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Application properties
Retrieve the training application from the trainer

– Open “MyTraining.xlrx” in Design mode


– Enter a project name and application name
– Set correct display resolution (of your target computer)
– See that the application is resized and opened with the name you specified
Set for the new application that:

– Everybody is allowed to start the application in Runtime


– Enable watchdog
– The new application is automatically started when eXLerate is started
– Restart the eXLerate control center and verify that the new application is started automatically

eXLerate application modes


See how your training application will appear to the customer

– Switch to Preview mode


– Go to the Metering Overview display (sheet sStnOvw)
– Notice that the data table is not properly placed on the display
Correct the table position

– Relocate the data table to a proper location on the display (Design mode)
– Verify in Preview mode
Safe a new version of your application

Check application functionality in Verify mode

– Go to the sheet sStnOvw


– Start the communications
– Try to edit the Gross Volume Flow Rate of Stream 1
– Notice that the formula is automatically overwritten with the value
– Press [ESC] to cancel
Check application functionality in Runtime mode

– See how the application will appear to the customer

Communication protocols
Configure Protocol 1 for Modbus communication with the Flow-X

– ModbusClient
– IP-addresses 192.168.1.100 / 192.168.2.100
– Start and debug the communication
– Find the error in the Query Table and fix it
Configure Protocol 2 for Flow-X communication with the Flow-X

– FlowXClient
– IP-addresses 192.168.1.100 / 192.168.2.100
– Start and debug the communication
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 69

Tag Database values


Check live values and compare with the values in the Flow-X

– Notice that values different for Meter temperature, Meter pressure, …


– Find the error(s) in the tag database fix it
Configure your application so an OPC Client can connect and read tags:

– Meter temperature
– Meter pressure
– Gross volume flow rate
– Base volume flow rate
– Start Matrikon OPC Explorer Mobile and search for the eXLerate tags

Display live values


– Add the live values for stream 2 in the table on the Overview display:
• Gross Volume Flow Rate
• Pressure
• Temperature
– Set correct formatting for the numerical values;
– Change the units for pressure from bar into kPa;
– Change the number of digits for pressure values to display no digit after decimal point.

Display animated object


Add shapes for Stream 2 on the Metering Overview display

– Piping
– Flow, Pressure and Temperature transmitters
Add animations for the new objects:

– No Comms (40) Gray


– Normal (41) Green
– Lo/Hi alarm (42) Yellow
– Failure (44) Red
– In override (43) Blue
Check the animation of the transmitters in runtime by changing the status/override mode in the Flow-X

Change the color for Valve positions

– Open Green (RGB 0, 160, 0)


– Closed Red (RGB 210, 0, 0)
– Travel Yellow (RGB 210, 210, 0)
– Fault Purple (RGB 160, 0, 160)
(Optional) Add a needle indicator to the transmitters corresponding to the transmitter values

– Remove text (FT) (PT) (TT) on the transmitter symbols


– Add Arrow shapes
– 45° - 335° for zero scale to full scale
– Change the (simulated) values and check the animation of the transmitters
70 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Calculations
Calculate the Station flow rates

– Add new Group on Calculation sheet xCalcStation


– Add (unnamed) entries referring to the flow rates of stream 1 & 2
– Add (named) calculation tags with calculating the station flow rates
– Put the station flow rates on the overview display
Create calculations for (flow weighted) station pressure and temperature

– Add (unnamed) entries referring of stream 1 & 2 values


– Add (named) calculation tags with calculating the weighted average
– Put the station pressure and temperature on the overview display
Create calculations for textual valve positions

– Fault
– Open
– Closed
– Travel
Add shapes for Stream 2 on the Metering Overview display

– Inlet & outlet valves


– Include the position of the valves
– Add valve animations
Create calculations for “in-use” meter run

– Add new Group on Calculation sheet


– Add (unnamed) entries referring to stream 1 process values and transmitter statuses
– Add (unnamed) entries referring to stream 2 process values and transmitter statuses
– Add (named) calculation tag for indication of selected “in-use” meter stream
– Add (named) calculation tags selecting the “in-use” values and statuses

Displays, buttons & navigation


Change the logo on all displays

– Remove existing logo and put your own logo on all displays
Create RunTime access to the Maintenance display

– Access only for Engineer level or above


– Go to Preview or Runtime mode and logon at different levels and browse the display
Add a new display sheet showing “in-use” stream details “sDetails”

– Put live values on this new display referring to the “in-use” calculation tags
– Put transmitter shapes on this new display and name these like “STR_IU_...”
– Create animations for the shapes when needed
– Create button(s) to navigate to this new display in RunTime
– Create button(s) to switch between Stream 1 and Stream 2 for the “in-use” stream
– Go to Preview or Runtime mode and browse the new display
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 71

Alarming
Add a new display sheet with an Alarm Summary

– Set the position and resize the control


Modify the layout of the Alarm Summary

– Set font size


– Select columns to show and change width/order
– Add filter(s)
• Show suppressed alarms
• Show alarms with priority …
Go to Preview/Runtime mode and check the Alarm Summary display

Add alarms for Stream 2

– Flow Meter failures


– Temperature Transmitter failures
– Pressure Transmitter failures
– Flow Meter process alarms
– Temperature Transmitter process alarms
– Pressure Transmitter process alarms
Go to Preview/Runtime mode and check the Alarm Summary display

– Locate your alarms in the Alarm Summary


– View / change alarm limits

Trending
Insert a new worksheet with Trending Chart and Pen Selector controls

– Change the properties of the controls to designing your own trend control
Add trending for tags of stream 2

– Meter temperature
– Meter pressure
– Flow rates
– Check the available trend pens in the Pen Selector

Editing
Set-up editing on the Maintenance display

– Low / high limits for Flow rate, Pressure, Temperature


– Set that the new values are written to the device (Flow-X)
– Change values (in run-time) and check if new values are received by the device
Set-up editing on the Maintenance display

– low / high limits for Flow rate, Pressure, Temperature


– Set target that the new values are written to the eXLerate alarm limits
– Change values and check new alarm limits in the alarm summary
Set-up editing on the Maintenance display
72 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

– Keypad Gas Composition values


– Set target that the new values are written to the calculation tags
– Add button to Accept the new Gas Composition as set
– Configure the tag database that the gas composition calculation tags are written to the device
– Change values and check if new values are received by the device

Interval, Events & Periods


Create a new interval period to obtain 60 times 1 minute data during an hour

– Insert new entry in the Interval Table


– Latch the daily flow totals every minute
– Put a table with the minute values during an hour of the daily totals on the “Totals” display
Create flow weighted averages for pressure and temperature values

– Latch the flow weighted values every minute during an hour


– Put a table with the minute values during an hour on the “Totals” display
Start your application in Runtime and check the Totals display.

Reports
Insert a new “Hourly” report into your project

– The report contains the records with the minute data:


• Time stamp
• Daily totals every minute
• Flow weighted average process values during these minutes
– Every minute the report file is updated

– Check you can generate the report manually in design;

– Let the computer run and check if a report is generated at an hour change-over

Redundancy
Set-up the application for redundant eXLerate servers

– Insert the xNet sheet into your training application


– Configure 2 Servers – names and IP addresses
– Put the network status on the xTagDB and add alarms
– Put the server names and textual status on the System Overview
Create redundant communication channels for the Flow-X:

– Protocol Table 2 protocols


– Query Table 2 sets of queries – 1 for each protocol
– Tag Database 1 set of tags with the following columns
• Value Value in use (both links)
• Query Queries to use of both devices separated by comma
• Query1 Query for link 1
• Query2 Query for link 2
• Update Function to write data using 1st link (Query1)
• Update2 Function to write data using 2nd link (Query2)
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 73

Document Control
Version 0.1
Author: Rogier Schouten
Date: February 2014
First version

Version 0.2
Author: Eric van Boxtel
Date: March 2014
Updated version

Version 0.3
Author: Eric van Boxtel
Date: March 2014
Next updated version

Version 1.1
Author: Eric van Boxtel
Date: April 2014
Next updated version

Version 2.0
Author: Eric van Boxtel
Date: February 2017
eXLerate 2016 version

Version 2.1
Author: Peter van Deurzen
Date: February 2019
Update to be in accordance with the presentations.
74 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Appendix A: Troubleshooting
There are circumstances in which you need to troubleshoot an application. This could, for example, be
due to issues with communication or issues with the computer hardware. There are several things you
could do in these cases.

Diagnostic tools
After you have installed eXLerate, you will find a subfolder ‘Diagnostics’ in the eXLerate product
installation folder. Inside here, there is a file ‘diagnostics.bat’ which you can run. It will create a set of
cabinet (.CAB) files in c:\tmp containing diagnostic system information:

• Log files (last month)


• Drive information
• Windows event entries
• Application
• Crash logs

The contents of these files can help in finding out what is wrong with the system. E.g. the windows
events entries could indicate an issue with the hard disk or network adapter.

The example application contains a formthat can be used to trigger the diagnostic tools from within a
(running) application.

Retrieving reports
Typically, one of the most important tasks of the HMI is to generate the fiscal reports based on values
coming from the flow computer. In case the system is down or eXLerate/your application has issues, you
can still access the reports in case you have sufficient privileges to access the file system.

All reports are stored below the folder that was specified in the properties of your application’s shortcut
in control center. You can browse to this folder and copy the (applicable) .xlsx report files.

Note: In case you have a duty/standby server setup, the contents of their respective reports should be
the same.

Troubleshooting MODBUS
Communication between eXLerate and devices (e.g. flow computers, gas chromatographs) can be
monitored via the xlConnect control. You just need to select the protocol and/or queries of interest.
Additionally, you can can specify the details of interest (e.g. reads only).

You have the option to output the result to the:

• Local interface
• Event logger in control center
• Write to (log)file

Typically, the local interface suffices in case you understand MODBUS messages. For cases where you
want to analyze the communication separately, or let someone else do that, it is advised to have the data
written to a file.

Warning: Once you are done with writing relevant data to a logfile, please make sure to turn off the
option.
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 75

Troubleshooting OPC server


Given you have an OPC server license and OPC tags configured in your application, an OPC server icon
shows up in the task tray whenever you start communications - see the figure below.

Figure 67 Task tray showing OPC server icon

This icon can be double clicked, after which the eXLerate OPC server interface is shown. This interface
shows the number of connected OPC clients, number of applications that are currently connected, as
well as the number of tags that are being handled. The show tags button extends this interface with the
relevant per tag data: name, application, value, last updated, status, and mode).

Figure 68 eXLerate OPC server interface

Figure 69 eXLerate OPC server interface

Windows event viewer


It was already mentioned that the diagnostic tools will, amongst others, extract the Windows event
viewer logs. Entries from these logs could indicate issues with Windows, particular applications, or
hardware (drivers).

You can also access event viewer manually. In order to do this, use the following steps:

• Get a run prompt (Windows key + R)


• Type ‘eventvwr’ (without the quotes) and press <enter>

Alternatively, you can find a shortcut to the event viewer via the administrative tools.
76 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Appendix B: License Model


A development license is provided to you as part of the eXLerate training. This license does not cover
actual runtime use of the applications in production environment. This means that you can develop
applications, but you cannot run them for more than one hour. Applications will automatically stop
communicating after running one hour.

Licenses for eXLerate are available depending on the following factors. Please contact ABB BV for
details.

– Type of eXLerate use:

• Development License: This allows to develop applications and run them for up to one hour.
• Runtime License: This allows to run a single application but not to change it.
• Development + Runtime license: You use this for maintaining in-use applications.

– Number of I/O tags in your application.

In short, each value communicated by an eXLerate application from or to an external party (FC, PLC,
DCS) is a tag. Tags are discussed in Chapter 9.

• Lite Edition 75 I/O tags


• Basic Edition 150 I/O tags
• Standard Edition 300 I/O tags
• Extended Edition 750 I/O tags
• Pro Edition 1500 I/O tags
• Plus Edition 3000 I/O tags
• Large Edition 6000 I/O tags
• Full I/O Edition 32k I/O tags

– Communication Protocols:

• FlowX (client)
• Modbus TCP (Client / Server)
• Modbus Serial (Master / Slave)
• OPC (Client / Server)
• HART (Master / Slave)
• SLIP+
• Serial clock
• Uniform

– Type of application:

eXLerate applications can be stand-alone or they can comprise multiple computers working together
(e.g. to form a redundant system).

• Stand-alone
• Server
• Client

– Specific features used:

• eXLerate Flow-Xpert Libraries


• Virtual Flow Computer
• External Database
• NMi-approved Flow-Xprint Printer Manager
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 77

Appendix C: Sheet Types


xComms Sheet
The xComms sheet defines the communication with external devices connected to your application. It
includes the protocol definition of port to use, baud rates, parity etc. It also contains the “query”
definitions for polling / writing the data blocks, like starting addresses, number of registers, etc.

The status of the individual protocols and queries will be automatically updated when communication is
active. It also contains debugging facilities for the communications.

xTagDB Sheet
The xTagDB is the lists all values that are communicated with external devices. Each tag is located on a
single row and contains the live values (when communication is active), configuration for the
communication (query and address), formats, units, alarm limits, latching and averaging.

eXLerate Tag & Object Wizard automatically assigns names to the values for easy referencing from other
worksheets.

xTables Sheet
The xTables sheet contains a number of configuration tables that define the behavior of your
application.

– AlarmgroupsTable Definitions for grouping alarms

– IntervalTable Period definitions for calculating averages, latch values and generating reports

– ReportTable List with sheets that are templates for generating report

– StyleTable Style definitions for formatting values on reports and displays

– ColorTable Available colors for animating shaped

– UserTable Available user groups and related levels

– WorksheetTable List with sheets that are available as display in runtime

– ButtonTable Definitions and related action of buttons used on displays

Calculation Sheets
Calculation sheets hold intermediary calculations for use on other sheets. For example, calculating a
valve status (open/closed/travelling/faulty) from two Boolean inputs (opened, closed), calculation of
station flow rates from two or more stream flow rates, etc.

You can have multiple calculation sheets. Their names must start with xCalc. eXLerate Calculation Wizard
automatically assigns names to the values for easy referencing from other worksheets.

Display Sheets
These sheets are the runtime user interface presenting the status and values to the user. It can contain
references to live and calculated values, shapes and object displaying the field status, buttons for
navigation and control.

Display sheets are registered in the Worksheet Table on the xTables sheet.
78 E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L

Report Sheets
Report sheets serve as a template for generation of reports. It contains references to live and calculated
values. When a report is generated, a snapshot of these values are taken and stored in separate report
files ion disk.

Report sheets are registered in the Reports Table of the xTables sheet.

Animation Sheet
The xAnimation sheet contains the definitions to animate shapes. You can have tag values and
calculated values affecting the colors, position, size or visibility of a shape on your display sheets. The
animations are applied and updated in runtime based on these live values. The definitions for
animations refer to the name of the shapes.

Editing Sheet
The xEditing sheet contains the definitions to allow users to change values (settings) on a display in
runtime. These new values can be used in the application internally and also be send to connected
devices. The definitions for editing refer to the source location, destination (internal or external) and
additional checks and limitations like user level and minimum and maximum allowed vales.

Other Sheets
The other available sheet types are outside the scope of this training manual. Please refer to the
advanced eXLerate training or to the eXLerate manuals.
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 79

Appendix D: Constants
Data types Pre-defined colors Editing constants
xBit 1 xBlack 0 Types
xByte 2 xWhite 1 xWholeNumber 1
xShort 3 xRed 2 xDecimal 2
xWord 4 xGreen 3 xText 3
xUInt24 5 xBlue 4 xList 4
xLong 6 xYellow 5 xDate 5
xDWord 7 xMagenta 6 xTime 6
xChar 8 xViolet 7
xRevDWord 9
Min/max
xFloat 16 Query table options xMinimum 1
xRevFloat 17
xBlockWrites 1 xMaximum 2
xDouble 18
xShortFloat 19 xNewDataOnly 2
xIntelFloat 20 xTransparentRead 4 Targets
xWordFloat 21 xForcedWrites 8 xTargetNone 1
xRevDouble 22 xNoReadOnce 16 xTargetCell 2
xBCD 32 xItemUpdates 32 xTargetName 3
xTimeDate 33 xNoSleepAll 64 xTargetComm 4
xTimeStamp 34 xWriteOnly 128 xTargetAlarmLimit 5
xAdcFloat 37 xWriteAll 512 xTargetAlarmDeadband 6
x10kFloat 38 xTargetAlarmDelay 7
xBitInQWord 39 Update constants
xLowQWord 40
xUpdateNever 1 General
xString6 64
xUpdateAlways 2 xAddress 1
xString12 65
xUpdateConditionally 3 xFormat 2
xString24 66
xRawFormat 3
xString10 67
xFormula 4
xString80 68
xValue 5
xString 69
xString8 70
xString16 71
xVariant 80
xVarArray 81

Periods
xSec 1
xMin 2
xHour 3
xDay 4
xWeek 5
xMonth 6
xQuarter 7
xYear 8

Das könnte Ihnen auch gefallen