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
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
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
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
– Alarm management
– 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:
– Allocation metering
– Terminal automation
– Calibration facilities
– Tank depots
– Leak detection
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.
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.
– Data is encrypted
– NMi approved
E XL E RAT E | LEV EL 1 + 2 | TR AI NI NG MA NUA L 9
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.
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:
• Introduction
• Tutorial
• Application development
• Report Generation.
• Programming topics,
• Wizards, Tools,
• Alarm Management Control,
• Trending Controls,
• Relational Databases,
• Redundancy,
• Multiple Languages,
• Terminal Services,
• Customization
• Troubleshooting.
– 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
Installation
As eXLerate is running on top of Excel, you need to set-up your computer according the following
requirements prior to installing eXLerate:
– Microsoft Windows:
– Microsoft Office:
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
License
Before you can start eXLerate, you need obtain a valid license.
– Software license:
Start the eXLerate License Manager and
– Hardware dongle
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.
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.
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.
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.
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.
– System
– Event logging
– Startup
• User name & password automatically used when eXLerate (Control Center) is started
• Minimum idle time when user is logged off
– Trending
– Miscellaneous
– 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
– Calculations
– Displays
– Animations
– Reports templates
– Report files
– Trend data
– 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:
– 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
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
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).
– Real-time communication
– Trending of data
– Alarm management
– Database
– List views
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
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.
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).
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
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.
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.
– Select Shapes from the menu bar and select the shape to insert
– Select Pictures from the menu bar and select the file with the picture to insert
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
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.
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.
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:
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
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
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
– Clock (serial)
– UNIFORM
– SLIP+
– 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.
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.
– ID Unique internal reference number- this ID will be used in the Query Table
– 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
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.
– 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
– SleepTime Suspend communication for this period when all retries have failed
– Size Item size (bits) per register: 1 (bits/coils), 16, 32, 64, 128
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.
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.
The configuration is not defined yet for xlConnect. Its database is still empty.
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.
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:
– Communication settings
– Live values
– Alarm settings
– Trending
The Tag & Object Wizard automatically creates cell names for reference.
– TagName Unique name for the tag – will be used to auto-generate reference (cell) names
Communication fields
You have already seen the xTagDB sheet. In this section, we dive deeper into the communication-related
columns of this sheet:
– Address Specific address (Modbus register, Flow-X/OPC Tag name) in the query for live value
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.
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
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”).
– 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.
Running the Tag & Object Wizard automates the naming. It will:
• Live values
• Alarm settings
• Alarm statuses
• Average values
• Latched values
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
– 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)
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:
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
– Cells with (fixed) text / referring to live values / referring to calculated values
– Pictures
– Charts
– Alarm controls
– Trend controls
– ActiveX components
Metering System Stream Details Totals Maintenance Trending Historical Alarms New Display
Reports
Overview Overview Events
Metering Overview
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
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:
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
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:
– Edit level Minimum user level required to edit values on display in run-time
Style Table
This table is used to define the format/style of displaying (live) values on displays and reports. It
contains the follow
– 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
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
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.
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
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.
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).
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
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.
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.
– 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:
– User calculations
• Value… your own references and (pre-) calculations of values to use for live animation
• 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…”
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
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.
– Worksheet Name of the sheet with the button -applicable for all displays when left empty
– 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
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:
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.
– (Only for backwards compatibility) Set buttons (1-12) position/layout according the Template
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.
Run the Tag& Object wizard after changes to the tag database. It automatically generates the names for
tags with alarm properties defined:
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.
-3 Alarm is active and blocked (too many alarm changes without acknowledgement)
-2 Alarm is inactive and blocked (too many alarm changes without acknowledgement)
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.
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.
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
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.
– 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”.
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:
These Trend Controls can be added to a display sheet from the eXLerate menu “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
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:
– Scaling
• Auto
• Fixed
• Dynamic
– 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:
– 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.
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.
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.
– 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. 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
– 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 …”.
– 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.
– exEditTarget Set the target location, e.g. where to write the new value
– exEditAccess Sets and checks if editing is allowed (enabled and security level)
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.
The exUpdate…Ex() functions perform the actual update towards the xlConnect control performing the
actual communications. These functions require the following arguments
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)
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
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.
– 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.
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.
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.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).
9:00 20 0 0 0
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:
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.rPeriods range with all latched live values for the number of periods
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
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
– Workbook Obsolete
– 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;
– 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.
When you have designed your reports, check if the report sheet is printed correctly:
– Visual Basic
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.
– 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
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).
– OnUserInit(...) Called when it detects a reset of your instance’s VBA global data.
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().
– Avoid synchronous (blocking) functionality when possible. Use asynchronous and non-modal
functions when possible: :
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:
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)
• 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 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.
– Tag database contains one set of tags, with the following columns:
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.
– Tag database contains one set of tags with the following columns:
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
– …
– …
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
– 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:
Application properties
Retrieve the training application from the trainer
– Relocate the data table to a proper location on the display (Design mode)
– Verify in Preview mode
Safe a new version of your application
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
– Meter temperature
– Meter pressure
– Gross volume flow rate
– Base volume flow rate
– Start Matrikon OPC Explorer Mobile and search for the eXLerate tags
– Piping
– Flow, Pressure and Temperature transmitters
Add animations for the new objects:
Calculations
Calculate the Station flow rates
– Fault
– Open
– Closed
– Travel
Add shapes for Stream 2 on the Metering Overview display
– Remove existing logo and put your own logo on all displays
Create RunTime access to the Maintenance display
– 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
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
Reports
Insert a new “Hourly” report into your project
– 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
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:
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).
• 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
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).
You can also access event viewer manually. In order to do this, use the following steps:
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
Licenses for eXLerate are available depending on the following factors. Please contact ABB BV for
details.
• 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.
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.
– 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
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.
– IntervalTable Period definitions for calculating averages, latch values and generating reports
– ReportTable List with sheets that are templates for generating report
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