Download as pdf or txt
Download as pdf or txt
You are on page 1of 30

HighPerformance

Extensions Library User's


Manual

Copyright © 2014-2021 Elipse Software Ltda. All rights reserved.


Version 2.0.89 (12/06/2021)
Table of Contents
1 Introduction ................................................................................................................................................ 1
2 Installation in an Application .................................................................................................................... 2
3 Objects ......................................................................................................................................................... 3
3.1 hpXForms Library ................................................................................................................................. 3
3.2 hpXDisplayMedia Library .................................................................................................................... 4
3.3 hpXControls Library ............................................................................................................................. 9
3.4 hpXView Library ................................................................................................................................. 13
4 Faceplate Screen ....................................................................................................................................... 22
4.1 Data Structure .................................................................................................................................... 22
4.2 Generating XML Code ........................................................................................................................ 22
4.3 Configuring Styles .............................................................................................................................. 23
4.4 Configuring Data ................................................................................................................................ 25
4.5 Values Passed to a Screen ................................................................................................................. 25
4.6 Formatting Graphic Symbols ............................................................................................................ 25
4.7 Creating a Custom Icon ..................................................................................................................... 26
4.8 Creating a Custom Tab Button ......................................................................................................... 26
4.9 Configuring a Viewer ......................................................................................................................... 27
4.10 Opening a Faceplate Screen for the First Time ............................................................................ 27

I
CHAPTER
Introduction
1
This document contains information needed to understand the functionality of a set of libraries that are an extension to
HighPerformance Template Library.

The goal of this extension is to allow using and extracting data from an E3 application modeled using the Plant Model
Library, but using the same models and concepts of the HighPerformance Template Library.

The Plant Model Library allows performing the modeling of a supervisory and control process by using standard
objects, such as Analog Measurements, Discrete Measurements, Parameters, Commands, and Interlocks. For more
information about this library, please check the Plant Model Library User's Manual.

The HighPerformance Extensions Library, by its turn, allows displaying and interacting with the Plant Model Library
in several ways, organized in the group of files described on the next table.

Groups of files of the HighPerformance Extensions Library

GROUP FILE DESCRIPTION


Commands hpXForms.lib Command objects

Data View hpXDisplayMedia.lib Bargraphs, Displays, and Setpoints

Data View hpXControls.lib Templates for Faceplate Screens,


block indicators, and protections

Support Objects hpXView.lib Objects supporting Viewer functions,


such as a Faceplate Screen

Project hpXMain.prj Contains instances of


FaceplateTemplate objects

1 Introduction
CHAPTER
Installation in an Application
2
To use the HighPerformance Extensions Library, add to the Domain the file extensions.e3pkg, available on the
Packages folder of its distribution. If users want to add files individually, copy the Extensions folder with all folders and
files to the application's root folder. Then, in Studio, insert in the Domain all library (.lib) and project (.prj) files from the
XLibraries and XProjects folders, respectively. Library and project files of the HighPerformance Extensions Library
always use an hpX prefix, so that they can be easily differentiated from application objects.

Installation in an Application 2
CHAPTER
Objects
3
This section contains information about the objects of the HighPerformance Extensions Library.

3.1 hpXForms Library


This section contains information about the objects of the hpXForms Library.

3.1.1 hpXCommandButton
Allows sending commands to objects of type xfCommandUnit. This object performs permission checks on the object
and its behavior is different, depending on the type of configured command for the linked xfCommandUnit object.
This object contains a vertical rectangle on its right side, which indicates the interlock and feedback statuses.

The Interlocked status is retrieved automatically from the xfCommandUnit object, indicating that there is a process
situation that could block the command. If the Interlocked status is active, a command's effective block happens
depending on the InterlockMode property of the xfCommandUnit object, which can be 0: Do not block, 1: Warns, or
2: Blocks.

The Feedback status, which is optional, is retrieved from a digital status (xfDiscreteInfo) that indicates the return of a
command. It can indicate active (ColorStatusOn), inactive (ColorStatusOff), and invalid (ColorStatusInvalid) statuses
and can be inverted using the InverseFeedBack property.

An interlock indication contains a priority higher than a feedback indication.

Clicking this object performs the next actions.

1. Checks if the command is authorized, that is, if a user's group belongs to the list of authorized groups for the
command or to a higher level (PlantFolder).

2. Checks if the command is blocked due to any interlock.

3. If there is a confirmation and an electronic signature, performs the request and check.

The result, whether it is a success or a failure, is logged to the xoLogger object from Plant Model Library, which must
be instantiated as Logger.LogSvc, with the next parameters in the input array.

· Element 0: "xfCommandUnit"

· Element 1: PathName property of the object that generated the command

· Element 2: Name of the user who requested the command

· Element 3: Result of the operation. Possible values are 0: OK, 1: Failure, 2: Not authorized, or 3: Blocked

· Element 4: Name of the computer from where the command was sent

· Element 5: Requested value

· Element 6: Time

· Element 7: Comments or observations

Properties of the hpXCommandButton object

PROPERTY DESCRIPTION
CmdObject Link to an xfCommandUnit object

3 Objects
PROPERTY DESCRIPTION
EnableClick Enable this object to respond to a mouse click

EnableTranslation Enables translation for this object

EventClick Increments the value from 1 (one) to 9 (nine) when this


object receives a left-click event

FeedbackObject Optional Link to an xfDiscreteInfo object with this


command's return

InverseFeedBack Indicates whether the status of the object indicated in the


FeedbackObject property is inverted

Label Title of this button

StatusEnabled Changes the text color if set to True

StatusInterlocked Enables or disables this button

3.2 hpXDisplayMedia Library


This section contains information about the objects of the hpXDisplayMedia Library.

3.2.1 hpXBarGraphAlarmLimHoriz
The hpXBarGraphAlarmLimHoriz object is a horizontal bar chart that displays the limits of alarms as flags stacked
over an indication bar, and it must be linked to an xfAnalogInfo-type of object for the value and to another one for
the setpoint.

The ways to display it are similar to the hpBarGraphAlarmLimHorizontal object from HighPerformance Template
Library, with the following differences:

· The limits are retrieved from the EURangeHigh and EURangeLow properties of the xfAnalogInfo object

· The engineering unit is retrieved from the EU property of the xfAnalogInfo object

· The Tag name is retrieved from the Name property of the xfAnalogInfo object

· The format is retrieved from the Format property of the xfAnalogInfo object

Properties of the hpXBarGraphAlarmLimHoriz object

PROPERTY DESCRIPTION
AlarmSource Link to an Analog Alarm Source object

AnalogInfo Link to an xfAnalogInfo object with the current value

AnalogInfoSP Link to an xfAnalogInfo or xfParameter object with the


setpoint value

Domain Name of a Remote Domain, if available, in the format


DOMAIN:

EnableClick Enables this object to respond to mouse clicks

EventClick Increments the value from 1 (one) to 9 (nine) when this


object receives a left-click mouse event

Objects 4
PROPERTY DESCRIPTION
HideSPLegend Displays or hides the setpoint's legend

PlantFolder Link to an object passed on as a parameter to the Screen


to open

popName Screen to open, such as "Faceplate?100?0"

popTemplate Template with the visual format of the


hpPopUpTemplate template

ShowFaceplate Displays the configured Screen when clicking or not

ShowFrame Displays or hides a frame around the object

ShowSPIndicator Displays or hides the setpoint's indicator

ShowTag Displays the Name property of the xfAnalogInfo object


or not

ShowTagObj Path to the global Tag, in Viewer.Others.ShowTags,


which enables displaying the name of the xfAnalogInfo
object

Size Size of the object, as a percentage

TextWidth Width of the text, in Himetric

UseXChartColor Enables or disables the manual configuration of the bar


color, regardless of the theme, defined in the
XChartColor property

XChartColor Color used by the bar when the UseXChartColor


property is set to True

3.2.2 hpXBarGraphAlarmLimVert
The hpXBarGraphAlarmLimVert object is a vertical bar chart that displays alarm limits as flags stacked over an
indication bar, and it must be linked to an xfAnalogInfo-type of object for the value and to another one for the
setpoint.

The ways to display it are very similar to the hpBarGraphAlarmLimVertical object, with the same differences listed for
the hpXBarGraphAlarmLimHoriz object.

Properties of the hpXBarGraphAlarmLimVert object

PROPERTY DESCRIPTION
AlarmSource Link to an Analog Alarm Source object

AnalogInfo Link to an xfAnalogInfo object with the current value

AnalogInfoSP Link to an xfAnalogInfo or xfParameter object with the


setpoint value

Domain Name of a Remote Domain, if available, in the format


DOMAIN:

EnableClick Enables this object to respond to mouse clicks

5 Objects
PROPERTY DESCRIPTION
EventClick Increments the value from 1 (one) to 9 (nine) when this
object receives a left-click mouse event

HideSPLegend Displays or hides the setpoint's legend

PlantFolder Link to an object passed on as a parameter to the Screen


to open

popName Screen to open, such as "Faceplate?100?0"

popTemplate Template with the visual format of the


hpPopUpTemplate object

ShowCaption Displays or hides the Caption property of the


xfAnalogInfo object

ShowDisplayBox Displays a box over the display

ShowFaceplate Displays the configured Screen when clicking or not

ShowLegend Displays or hides the limits

ShowLegendAlarm Displays or hides the alarms

ShowSPIndicator Displays or hides the setpoint's indicator

ShowTag Displays or hides the Name property of the


xfAnalogInfo object

ShowTagObj Path to a global Tag, in Viewer.Others.ShowTags, which


enables displaying the name of the xfAnalogInfo object

ShowTagVertical Displays the Tag in the vertical position

Size Size of the object, as a percentage

TextWidth Width of the text, in Himetric

UseXChartColor Enables or disables the manual configuration of the bar


color, regardless of the theme, defined in the
XChartColor property

XChartColor Color used by the bar when the UseXChartColor


property is set to True

3.2.3 hpXDigitalDisplay
The hpXDigitalDisplay object is an indicator for digital variables linked to an xfDiscreteInfo object, and displays the
On, Off, or Bad Quality statuses.

Properties of the hpXDigitalDisplay object

PROPERTY DESCRIPTION
CustomText Text alternative to the text defined in the xfDiscreteInfo
object, that is, the Caption or Name properties

DiscreteInfo Link to an xfDiscreteInfo object

Objects 6
PROPERTY DESCRIPTION
Inverse Toggle statuses for visual indication

ShowCaption Displays or hides the Caption property of the


xfDiscreteInfo object

ShowTag Displays or hides the Name property of the


xfDiscreteInfo object

TextWidth Width of this object's text

3.2.4 hpXDigitalDisplayPopUp
The hpXDigitalDisplayPopUp object is an indicator for digital variables linked to an xfDiscreteInfo object, and
displays the On, Off, or Bad quality statuses.

The difference for an hpXDigitalDisplay object is the possibility of opening a Faceplate Screen when clicking it.

Properties of the hpXDigitalDisplayPopUp object

PROPERTY DESCRIPTION
CustomText Text alternative to the text defined in the xfDiscreteInfo
object, that is, the Caption or Name properties

DiscreteInfo Link to an xfDiscreteInfo object

DataObject Link to an object sent as a parameter to the Screen to


open

Domain Name of a Remote Domain, if available, in the format


DOMAIN:

Inverse Toggle statuses for visual indication

popName Screen to open, such as "Faceplate?100?0"

popTemplate Template with the visual format of an hpPopUpTemplate


object

ShowCaption Displays or hides the Caption property of an


xfDiscreteInfo object

ShowFaceplate Displays or hides the configured Screen when clicking

ShowTag Displays or hides the Name property of an


xfDiscreteInfo object

TextWidth Width of this object's text

3.2.5 hpXDynValueAnalog
The hpXDynValueAnalog object is an indicator of dynamic value, that is, displays the value and the unit of a variable
linked to an xfAnalogInfo object. If that variable's quality is bad, this object displays a "???" indication.

7 Objects
Properties of the hpXDynValueAnalog object

PROPERTY DESCRIPTION
AnalogInfo Link to an xfAnalogInfo object

CustomFormat Alternative format that replaces the content defined in the


Format property of the xfAnalogInfo object

Domain Name of a Remote Domain, if available, in the format


DOMAIN:

EnableClick Enables this object to respond to mouse clicks

EventClick Increments the value from 1 (one) to 9 (nine) when this


object receives a left-click mouse event

FlexControl Displays or hides the default pop-up window with analog


measurements of the FlexControl Library

PlantFolder Linked to an object passed on as a parameter to the


Screen to open

popName Screen to open, such as "Faceplate?100?0"

popTemplate Template with the visual format of the


hpPopUpTemplate object

ShowFaceplate Displays or hides the Screen configured when clicking

3.2.6 hpXDynValueDiscrete
Allows listing the possible statuses of a default xfDiscreteInfo object and listing these values when using an
OperatorSource data source.

Properties of the hpXDynValueDiscrete object

PROPERTY DESCRIPTION
DiscreteInfo Link to an xfDiscreteInfo object

EnableClick Enables this object to respond to mouse clicks

EventClick Increments the value from 1 (one) to 9 (nine) when this


object receives a left-click mouse event

PowerMode True if data comes from an Elipse Power object

StateText Default value to compare, between 0 (zero) and 3 (three)

3.2.7 hpXManualValueIO
This object is used to display and send setpoints linked to an xfParameter object. This indication of manual value
differs visually from the indication of dynamic value of the hpXDynValueAnalog object basically by the color. However,
for some types of visual impairments, both colors can be very similar, making it hard to differentiate them. So, a dot
was added between the value and the unit. If the variable's quality is bad, this object displays a "???" indication.

This object also performs permission checks over an object, logging the result, success or failure, in the xoLogger
object from Plant Model Library, which must be instantiated as Logger.LogSvc, with the following parameters as its
input array.

Objects 8
· Element 0: "xfParameter"

· Element 1: PathName property of the object that generated the command

· Element 2: Name of the user who requested the command

· Element 3: Result of the operation. Possible values are 0: OK, 1: Failure, or 2: Not authorized

· Element 4: Name of the computer where the event was generated

· Element 5: Time

· Element 6: Previous value

· Element 7: New value

Properties of the hpXManualValueIO object

PROPERTY DESCRIPTION
CustomFormat Custom format overwriting the default format of the
linked xfParameter object. If this value is an empty
String, it enables the format configured in the
xfParameter object

EditMode Enables or disables the edition mode of a variable

EnableClick Enables this object to respond to mouse clicks

EventValidate Increments the value from 1 (one) to 9 (nine) when this


object receives an ENTER key after typing or losing focus

IOData Link to an xfParameter object

UnitPosition Position of the engineering unit. Possible values are 0:


Right or 1: Bottom

3.3 hpXControls Library


This section contains information about the objects of the hpXControls Library.

3.3.1 hpXBlockILIndicator
This object displays an icon when the linked Interlock Unit object is blocked and an icon if the linked object is not
blocked.

The available property in this object is InterlockUnit, which indicates a Link to an xfInterlockUnit object.

3.3.2 hpXBlockIndicator
This object displays an icon when the linked Command Unit object is blocked and an icon if the linked object is not
blocked. In addition, it allows opening a new pop-up Screen indicating which Interlocks are active.

Properties of the hpXBlockIndicator object

PROPERTY DESCRIPTION
DataObject Link to an xfCommandUnit object, which is sent as a
parameter to the Screen to open

9 Objects
PROPERTY DESCRIPTION
FaceplateGroupExpand Name of a group to display if the Faceplate Screen is
expanded

LinkMode Displays or not the detail Screen when clicking

popName Screen to open, such as "Faceplate?100?0"

popTemplate Template with visual format of the hpPopUpTemplate


object

3.3.3 hpXBlockIndicatorBypass
This object displays an icon or an icon if the ByPassState property is configured to False or True, respectively.
If the LinkMode property is configured to True, clicking this object allows executing the command linked in the
CommandUnit property to change the by-pass.

Properties of the hpXBlockIndicatorBypass object

PROPERTY DESCRIPTION
ByPassState Link to an object indicating the by-pass status

CommandUnit Link to an xfCommandUnit object, which allows changing


the by-pass

FaceplateGroupExpand Name of a group to display if the Faceplate Screen is


expanded

LinkMode Allows sending or blocking a by-pass command

3.3.4 hpXCollapseExpand
This object is used internally on the Faceplate Screen to control a minimum or expanded display. It is used when
the number of objects exceeds the default size of the Faceplate Screen, thus allowing it to expand all objects.

Properties of the hpXCollapseExpand object

PROPERTY DESCRIPTION
Active Indicates whether the hpXCollapseExpand object is
visible and operational

Expanded Indicates whether the hpXCollapseExpand object is in


expanded mode or not

GroupCollapsed Name of the XControl displayed on the minimum window

GroupExpanded Name of the XControl displayed on the expanded


window

Overflow Indicates whether the number of elements exceeds the


maximum allowed or not

SwapMode Toggles instances of XControls defined in the


GroupCollapsed and GroupExpanded properties

Objects 10
3.3.5 hpXFaceplateTemplate
This object's main functions are to store the configuration of data content to display on a Faceplate Screen (do not
mistake it for the hpPopUpTemplate object, which configures a window style) and to inform the names of the library
and symbol to display for the indication of operational status.

Properties of the hpXFaceplateTemplate object

PROPERTY DESCRIPTION
DeviceControlGallery Name of the library file that contains a device's icon

DeviceControlName Name of the XControl that represents a device inside the


library specified in the DeviceControlGallery property

PopUpCode Contains the configuration parameters of tabs from a


Faceplate Screen. The allowed syntaxes for this property
are described on topics System-Type Tabs, Custom-
Type Tabs, and CustomExpandable-Type Tabs. Defining
the content is performed by a list of codes separated by
semicolons. If the code is invalid, the window displays an
error message

3.3.5.1 System-Type Tabs


System tabs are defined in the Plant Model Library, but they cannot be customized, and assembled based on the
data structure. The syntax in the PopupCode property is a single letter, as described next.

· A: Analog Measurements on folder Measures

· D: Discrete Measurements on folder Measures

· C: Commands on folder Commands

· S: Status on folder Status

· P: Protections, available only for Elipse Power

The order of these letters define how Links appear on the pop-up window. For example, the expression "A;C;S"
indicates the display of Analog, Commands, and Status tabs. Unless explicitly indicated, described on topic Markers,
the window opens and displays the first declared tab, in this case the Analog tab.

3.3.5.2 Custom-Type Tabs


Users can create an XControl and display it on the Faceplate Screen. To do so, users must specify the name of that
XControl and an icon to display on the Links bar. The syntax for the PopupCode property is "U=(XControl,Icon,Tip)".
Consider the next example.
"U=(custom.CustomDisplay1,custom.CustomIcon1,Here comes a custom tip)"

In this case, a custom tab is displayed with the following features:

· The tab displays the CustomDisplay1, object, created in the custom.lib library

· This tab's icon is the CustomIcon1 object, created in the custom.lib library. For more information, please check
topic Creating a Customized Icon

· The button to open this tab contains a help text "Here comes a custom tip"

· This tab does contain a command to expand the window, therefore its size is fixed

11 Objects
3.3.5.3 CustomExpandable-Type Tabs
Users can create an expandable tab, that is, a tab that contains a button on the right side to expand the window and
display more controls. The syntax is the same as the Custom type, but adds a class to the end of the declaration, as in
the next syntax.
U=(XControl,Icon,Tip)|(ExpandedXControl,Size)

Consider the next example.


U=(custom.CustomDisplay1,custom.CustomIcon1,Here comes a custom tip)|
(custom.CustomDisplay2,700x600)

In this case, a custom tab is displayed with the following features:

· The collapsed tab displays the CustomDisplay1 object, created in the custom.lib library

· This icon's tab is the CustomIcon1 object, created in the custom.lib library

· The button to open this tab contains a help text "Here comes a custom tip"

· This tab contains a command to expand the window

· The expanded tab displays the CustomDisplay2 object, created in the custom.lib library

· The window's with when expanding is 700 pixels, while its height is 600 pixels

3.3.5.4 Markers
The * (asterisk) marker indicates the tab that must be displayed when opening the window for the first time and it must
be declared immediately before the corresponding letter. The # (number sign) marker indicates the use of a custom
button that works as a command and not to display content from a regular tab. One usage scenario is when users want
to open another window with a mouse click.

3.3.5.5 Usage Examples


Consider the following declaration in the PopupCode property:
U=(hpXPIDDisplay1,hpIcon1,PID Controls)|
(hpXPIDDisplay2,800x400);*A;D;U=(#,custom.CustomTab,Custom tip);C

In this example, the Link bar is assembled with the next elements.

· The first element is defined by the users on an expandable tab

· The second element is the Analog Measurements tab, which is also displayed when opening the window

· The third element is the Digital Measurements tab

· The fourth element is defined by the users and does not display any object on the tab, indicating that is executes a
function implemented on the CustomTab button from the custom library. For more information, please check
topic Creating a Custom Tab Button

· The last element is the Commands tab

3.3.5.6 Instances
The hpXFaceplateTemplate objects must be instantiated on the folder hpXObjects.FaceplateTemplates, inside the
hpXMain project.

3.3.6 hpXProtection
This object is used to display the name and status of an Elipse Power Protection.

Objects 12
Properties of the hpXProtection object

PROPERTY DESCRIPTION
ProtectionDevice Link to a PowerProtectionDevice object

TextValue Text to display

Value Options for the Protection. Possible values are 0:


Protection included, 1: Protection active (Trip), or 2:
Protection not included

3.4 hpXView Library


This section contains information about the objects of the hpXView Library.

3.4.1 DataObjectBridge
Object used internally on the Faceplate Screen to store and provide XML code from a data object sent to the Faceplate
Screen.

3.4.2 hpXContainer
Object used internally on the Faceplate Screen, its function is to calculate the coordinates of up to 256 grid cells
according to a user configuration, creating and positioning objects automatically as children. It can also be used
outside a Faceplate Screen, in the context of a normal process Screen where users must display a grid of objects. Its
mais functions are the following:

· Receiving all grid settings, such as the number of columns, rows and breaks

· Calculating the coordinates of each grid cell, based on the parameters passed on

· Receiving settings for adding objects, that is, the parameters used in the AddObject method

· Executing the AddObject method internally

· Informing whether a child object was successfully created or not

· Returning a reference to an object just created for use by script

This way, all objects created are children of a container that calculates and places each one of these objects
automatically.

3.4.2.1 Properties
The hpXContainer object contains several properties, which can be grouped by their functions, according to the next
topics.

3.4.2.1.1 Grid Size and Formats

PROPERTY DESCRIPTION
CellHeight Height of a grid cell, in Himetric

CellWidth Width of a grid cell, in Himetric

Columns Number of columns of a grid

Padding Internal margin separating each cell, in Himetric

13 Objects
PROPERTY DESCRIPTION
Rows Number of rows of a grid

SpaceBetweenBreaks Espaçamento, em Himetric, de dois grupos consecutivos


de células após uma quebra de linha ou coluna

3.4.2.1.2 Filling Cells

PROPERTY DESCRIPTION
ColumnBreak Number of rows to fill before a column break occurs

LineBreak Number of columns to fill before a row break occurs

Orientation Orientation to fill cells. Possible values are 0: By column


or 1: By row

3.4.2.1.3 Studio Functionality

PROPERTY DESCRIPTION
ShowOfflineText Displays or hides the text that appears on Studio

Status Indicates the processing status on Studio using the


CustomConfig event. A "Ready" indication means that
calculation was finished

3.4.2.1.4 Creating Objects

PROPERTY DESCRIPTION
ActivateStatus Informs whether an object is created activated or
deactivated

ClassName Informs the class of the object to create

CreateNewObject Informs whether an object must be created or not

Index Informs the number of the next cell to fill, starting at 1


(one) and finishing at the equivalent value of the product
among columns and rows. This value is updated
automatically by the object whenever the
CreateNewObject property is set to True. It can also be
changed by script, thus updating all properties indicated
on topic Tracking Cell Filling

NewObjectPathName Informs the PathName property of the object just


created to use with the GetChildObject method. This
property is useful when accessing an object directly inside
a container and changing its settings

ObjectName Name of the next object to create. If its value is an empty


String, the name of the object is automatically generated
by the hpXContainer object in the format ContainerN,
where N is an integer representing the index that
identifies each cell on a grid

Objects 14
PROPERTY DESCRIPTION
Reset Removes all objects created, returning the object to its
initial condition

3.4.2.1.5 Tracking Cell Filling

PROPERTY DESCRIPTION
CurrentGroupNum Number of the current group. Whenever a column break
or row break occurs, the cells filled immediately before
that break form a group. Each group of cells receive a
progressive number for identification

CurrentColumnNumAbs Absolute number of the current column, that is,


regardless of the column grouping

CurrentColumnNumRel Relative number of the current column, that is, the


number of the column inside the respective group

CurrentRowNumAbs Absolute number of the current row, that is, regardless of


the row grouping

CurrentRowNumRel Relative number of the current row, that is, the number of
the row inside the respective group

Xindex Horizontal coordinate of the cell indicated in the Index


property. For example, if the Index property is equal to
12, this property indicates this cell's horizontal coordinate

Yindex Vertical coordinate of the cell indicated in the Index


property. For example, if the Index property is equal to
12, this property indicates this cell's vertical coordinate

NOTE
All properties indicated in this topic are read-only and are only available at run time.

3.4.2.2 Usage Examples


The general usage of this object is formed by these steps:

1. Configure in Studio the properties regarding Grid Size and Formats and Filling Cells.

2. Execute the CustomConfig event to calculate the coordinates. The Status property indicates the progress of that
calculation.

3. Once all coordinates are generated, save the object.

4. At run time, configure all properties related to the Creation of Objects and execute the command to create objects
in the CreateNewObject property.

5. The object returns the PathName property of the object created in the NewObjectPathName property.

In a scenario of grid filling by script, repeat the steps 4 (four) and 5 (five), adjusting the parameters to create objects.
The next topics contain some scenarios describing the order in which cells are filled in.

15 Objects
3.4.2.2.1 Filling by Column

1. Grid with nine cells distributed on three rows (the Rows property equal to 3) by three columns (the Columns
property equal to 3), completely filling a column before moving to the next one (the Orientation property equal to
zero), without a column break (the ColumnBreak property equal to zero or 3).

Filling by column without a break

2. Grid with nine cells distributed on three rows (the Rows property equal to 3) by three columns (the Columns
property equal to 3), completely filling a column before moving to the next one (the Orientation property equal to
zero), with a column break after filling two cells (the ColumnBreak property equal to 2).

Filling by column with a break

3.4.2.2.2 Filling by Row

1. Grid with nine cells distributed on three rows (the Rows property equal to 3) by three columns (the Columns
property equal to 3), completely filling a row before moving to the next one (the Orientation property equal to 1),
without a row break (the LineBreak property equal to zero or 3).

Filling by row without a break

2. Grid with nine cells distributed on three rows (the Rows property equal to 3) by three columns (the Columns
property equal to 3), completely filling a row before moving to the next one (the Orientation property equal to 1),
with a row break after filling two cells (the LineBreak property equal to 2).

Filling by row with a break

3.4.2.2.3 Script to Create Objects in a Grid

The next script references an hpXContainer object and creates up to 9 (nine) objects of type hpLinkIcon, placing them
on the grid defined in an hpXGridCalc object. When reaching the limit of objects, these are deleted and the counting is
then restarted.

Objects 16
Sub hpCommandButton1_OnEventClick()
Set Container = Screen.Item("hpXContainer1")
With Container
'Deletes objects from the grid
'and restarts counting in the Index property
If .Index > (.Columns * .Rows) Then .Reset = True
'Creates an hpLinkIcon-type object
'already placed on the grid
.ClassName = "hpLinkIcon" 'Class of the object
.CreateNewObject = True 'Creates the object
End With
End Sub

3.4.2.2.4 Accessing Objects Created Previously

If users want to access an object created inside a container previously, use the GetChildObject object of the
hpXContainer object. For more information, please check the NewObjectPathName property.

3.4.3 hpXGridCalc
Object used internally on the Faceplate Screen, its function is to calculate and store the coordinates of up to 256 grid
cells according to a user configuration. It can also be used outside a Faceplate Screen, in the context of a normal
process Screen where users must configure a grid.

This object was created to meet a demand for performance and flexibility relative to the hpXContainer object, but
without the native automation.

The hpXGridCalc object performs the following tasks:

· Receives the whole grid configuration, such as the number of columns, rows, and breaks

· Calculates the coordinates of each grid cell, based on the parameters received

· Provides the calculated coordinates to users, as well as other information about tracking cell filling

The hpXGridCalc object performs the same calculation and passes on the same tracking information of an
hpXContainer object, but does not create any internal object. It is a calculator of coordinates and not a container of
objects.

3.4.3.1 Properties
The hpXGridCalc object contains several properties, which can be grouped by their function, according to the next
topics.

3.4.3.1.1 Grid Size and Formats

PROPERTY DESCRIPTION
CellHeight Height of a grid cell, in Himetric

CellWidth Width of a grid cell, in Himetric

CellsNumber Number of available cells in an object

Columns Number of columns of a grid

Padding Internal margin that separates each cell, in Himetric

Rows Number of grid rows

SpaceBetweenBreaks Space, in Himetric, between two consecutive groups of


cells after a row or column break

17 Objects
3.4.3.1.2 Filling Cells

PROPERTY DESCRIPTION
ColumnBreak Number of columns to fill before a column break occurs

Index Informs the number of the next filled cell, starting at 1


(one) and finishing at the value equivalent to the product
between columns and rows. This value must be updated
by script, thus updating all properties indicated on topic
Tracking Cell Filling

LineBreak Number of columns to fill before a row break occurs

Orientation Fill orientation of cells. Possible values are 0: By column


or 1: By row

3.4.3.1.3 Studio Functionality

PROPERTY DESCRIPTION
ShowOfflineText Displays or hides the text shown in Studio

Status Indicates the processing status in Studio using the


CustomConfig event. A "Ready" indication means this
calculation was finished

3.4.3.1.4 Coordinates

PROPERTY DESCRIPTION
X1, X2, ..., Xn Horizontal coordinate of the cell indicated by the number
of the property. X1 refers to the first cell to fill, X2 refers
to the second cell to fill, and so on

Y1, Y2, ..., Yn Vertical coordinate of the cell indicated by the number of
the property. Y1 refers to the first cell to fill, Y2 refers to
the second cell to fill, and so on

3.4.3.1.5 Tracking Cell Filling

PROPERTY DESCRIPTION
CurrentGroupNum Number of the current group. Whenever a column or row
break occurs, the cells filled immediately before that
break form a group. Each group of cells receives a
progressive number for identification

CurrentColumnNumAbs Absolute number of the current column, that is,


regardless of the column grouping

CurrentColumnNumRel Relative number of the current column, that is, the


number of the column inside the respective group

CurrentRowNumAbs Absolute number of the current row, that is, regardless of


the row grouping

Objects 18
PROPERTY DESCRIPTION
CurrentRowNumRel Relative number of the current row, that is, the number of
the row inside the respective group

Xindex Horizontal coordinate of the cell indicated in the Index


property. For example, if the Index property is equal to
12, this property indicates the horizontal coordinate of
this cell

Yindex Vertical coordinate of the cell indicated in the Index


property. For example, if the Index property is equal to
12, this property indicates the vertical coordinate of this
cell

NOTE
All properties indicated in this topic are read-only and are only available at run time.

3.4.3.2 Usage Examples


The general usage of this object is formed by these steps:

1. Configure in Studio the properties regarding Grid Size and Formats and Filling Cells.

2. Execute the CustomConfig event to calculate the coordinates. The Status property indicates the progress of this
calculation.

3. Once all coordinates are generated, save the object.

4. At run time, write to the Index property the number of a cell, such as 3 (three).

5. This object returns, in its Xindex and Yindex properties, the horizontal and vertical coordinates for the indicated
cell.

In a scenario of grid filling by script, repeat the steps 4 (four) and 5 (five), changing the cell address in the Index
property and reading the coordinates in the Xindex and Yindex properties. The next topics contain some scenarios
describing the order in which cells are filled in.

3.4.3.2.1 Filling by Column

1. Grid with nine cells distributed on three rows (the Rows property equal to 3) by three columns (the Columns
property equal to 3), completely filling a column before moving to the next one (the Orientation property equal to
zero), without a column break (the ColumnBreak property equal to zero or 3).

Filling by column without a break

2. Grid with nine cells distributed on three rows (the Rows property equal to 3) by three columns (the Columns
property equal to 3), completely filling a column before moving to the next one (the Orientation property equal to
zero), with a column break after filling two cells (the ColumnBreak property equal to 2).

19 Objects
Filling by column with a break

3.4.3.2.2 Filling by Row

1. Grid with nine cells distributed on three rows (the Rows property equal to 3) by three columns (the Columns
property equal to 3), completely filling a row before moving to the next one (the Orientation property equal to 1),
without a row break (the LineBreak property equal to zero or 3).

Filling by row without a break

2. Grid with nine cells distributed on three rows (the Rows property equal to 3) by three columns (the Columns
property equal to 3), completely filling a row before moving to the next one (the Orientation property equal to 1),
with a row break after filling two cells (the LineBreak property equal to 2).

Filling by row with a break

3.4.3.2.3 Script to Create and Place Objects on a Grid

The next script references an hpXGridCalc object and creates up to 9 (nine) hpLinkIcon-type objects, placing them on
the grid defined in an hpXGridCalc object. After reaching the limit of 9 (nine) objects, these ones are deleted and
counting is then restarted.
Sub hpCommandButton1_OnEventClick()
Set gridCalc = Screen.Item("hpXGridCalc1")
With gridCalc
'Defines initial coordinates
Xini = .X
Yini = .Y
'Deletes grid objects
'and restarts Index counting
If .Index > (.Columns * .Rows) Then
.Index = 1
For Each obj In Screen
If InStr(obj.Name,"hpLinkIconTestGridA") <> 0 Then
Screen.DeleteObject(obj.Name)
End If
Next
End If
'Creates an hpLinkIcon-type object
'already placed on the grid
Set elm = Screen.AddObject("hpLinkIcon", False, "hpLinkIconTestGridA")
elm.X = Xini + .Xindex
elm.Y = Yini + .Yindex
elm.IconName = "hpIcon" & CStr(.Index)
elm.Activate()

Objects 20
elm.BringToFront()
'Points Index to the next object to create
.Index = .Index + 1
End With
End Sub

21 Objects
CHAPTER
Faceplate Screen
4
A Faceplate Screen reads code specified in the PopupCode property of an hpXFaceplateTemplate object, in the
control structure, and then assembles tabs and controls according to a configuration, as shown on the next figure.

Faceplate Screen

The next topics describe the necessary steps to configure an application for using a Faceplate Screen.

4.1 Data Structure


First, users must create a data structure to be reflected on the Faceplate Screen, according to the definitions of the
Plant Model Library. For more information, please check Plant Model Library User's Manual.

4.2 Generating XML Code


To ensure a better performance, the Faceplate Screen uses XML code instead of directly accessing objects from a data
structure. This way, users must generate XML code that reflects that structure by using an hpXMLCatalog object.

4.2.1 Configuring an hpXMLCatalog Object


After instantiating an hpXMLCatalog object, make sure to configure the properties of this object as described next.

· ExtraProperties: There is no need to configure any parameter

· GetAllChildren: Configure to True

· HideDataType: Configure with the value "ScadaSource;OperatorSource;SimulationSource" (only to shorten source


code)

· InitialPath: Inform here the PathName of the folder to scan

· OutputMode: Configure with the value 1 (one, stores the XML code generated in the xmlData property of each
xfPlantFolder object)

Faceplate Screen 22
· RunOnStart: Configure to False for a better performance when starting Viewer, but requires executing it using the
CustomConfig method

· ScanNodeAfterSave: Configure to False

· ShowRootFolder: Configure to True

· XMLTemplate: Configure with the value 3 (three)

· XRefMode: Configure with the value 1 (one)

These settings allow generating an XML code already optimized for use with the Faceplate Screen, which is saved in
each object on the data structure that represents a device.

4.2.2 Storing XML Code


After the configuration, users must execute the CustomConfig method of the hpXMLCatalog object to save the XML
code of each device on their respective xfPlantFolder folders.

It is important to ensure that the root folder of each device, whose type is xfPlantFolder, have their StoreXML
property configured as True. This allows storing the XML code in the xmlData property, which is read by the Faceplate
Screen during its opening.

4.2.3 External References


Objects with an xfPMRef type (please check Plant Model Library User's Manual) are Links or external references that
work as shortcuts pointing to objects outside the data structure where these Links are.

The Faceplate Screen does not accept XML code containing nodes with an xfPMRef type, that is, nodes referencing
external content. Therefore, when generating an XML file where the XMLTemplate property is equal to 3 (three,
Faceplate), automatically the value of the XRefMode changes to 1 (one), to remove the shortcuts and merge the
external content with the resulting XML code.

4.3 Configuring Styles


Users must define the style used by the Faceplate Screen by using an hpPopupTemplate object. On the
HighPerformance Template Library this object is located on folder hpObjects - ScreenTemplates. This style template
must be informed in the popTemplate property of the hpPopupOpen object responsible for opening the Faceplate
Screen.

4.3.1 Displaying a Button to Close a Window


The Faceplate Screen window can have its style configured to hide the button to close the window or to hide the title
bar. On the next figure, the flagShowCloseButton, flagShowMaximizeButton, and flagShowMinimizeButton
properties are configured to False.

23 Faceplate Screen
Hidden or inactive titlebar buttons

On the next figure, the flagShowWindowTitle property is configured to False.

Hidden titlebar

In this case, users must configure the Internal Tag hShift to a value different from 0 (zero), as shown on the next figure,
to display a Close button on the window's body.

Faceplate Screen 24
Close button instantiated on a window

This Tag is on Faceplate - hpData - Start - Vars, and its value must be less than 0 (zero), because it refers to a
horizontal shifting that starts on the window's right border. The value 0 (zero) refers to the border. On the example of
the previous figure, it was configured with the value -600, which is the recommended value. To keep this button
invisible, configure the value of the hShift Tag with the value 0 (zero).

4.4 Configuring Data


Use an hpXFaceplateTemplate object to inform which data the Faceplate Screen displays, the order of tabs, and which
tab is visible when opening that window.

Users are recommended to create a template for each type of device, such as one for Pumps and another one for
Valves. In some cases, it can be interesting to classify templates by device manufacturer with similar functionality and
symbolism. This, however, is not a fixed rule and every application has their own peculiarities.

Each device must configure the path of the hpXFaceplateTemplate object in the FaceplateTemplate property of the
data object, the same one configured in the DataObject property of device's instances on Screens.

For more information, please check topic hpXFaceplateTemplate.

4.5 Values Passed to a Screen


A Faceplate Screen must receive, in its Arg parameter, the PathName property of its data object, an xfPlantFolder,
and the orientation of a device's graphic symbol. This information must be passed as a String separated by
semicolons, as in the next example.
XCValveB.DataObject.PathName & ";" & XCValveB.Orientation

4.6 Formatting Graphic Symbols


The Faceplate Screen displays a symbol for the device it refers to and, to do so, it reads from the
hpXFaceplateTemplate object what is the name of the symbol, in the DeviceControlName property, and in which
library it is in, in the DeviceControlGallery property.

In addition, every symbol displayed on the Faceplate Screen must obey the next criteria.

· Having a property called DataObject, of type xfPlantFolder, with an initial empty value. This property receives a
Link to the PathName property of the data object

25 Faceplate Screen
· Having a property called Orientation, of type Integer, with an initial value of 0 (zero). This property indicates
whether the object must be represented vertically or horizontally, or else to the right or to the left. For example, a
valve can be represented in four different orientations, defined by the Orientation property with the values 0
(zero), 1 (one), 2 (two), or 3 (three)

· All E3 primitives or images composing a graphical object implemented by an application developer must be
contained in a Group or Animation called Device

· Inside each Device Group or Animation, users must instantiate an hpPopupOpen-type object called
hpPopupOpen1. When opening, the Faceplate Screen automatically disables this object, so that a new instance of
the Faceplate Screen can be opened from the Screen itself

To hide a device icon on the Faceplate Screen, configure the DeviceControlName property of the
hpXFaceplateTemplate object to an empty String.

4.7 Creating a Custom Icon


To create a custom icon, follow these steps:

1. Create an XControl on a user library.

2. Based on any icon from the hpIcons library, copy and paste the primitives and properties to this new XControl.

3. Save the XControl.

Whenever this custom button is declared in the PopupCode property of the hpXFaceplateTemplate object, it must
follow the format Library.Icon, where Library is the name of the library file that contains the icon and Icon is the name
of the object.

4.8 Creating a Custom Tab Button


To create a custom tab button, follow these steps:

1. Create an XControl on a user library.

2. Based on the hpLinkIcon object from the hpMenus library, copy and paste only the primitives to this new
XControl. Exclude properties and scripts from the original object.

3. The Object group can be ungrouped, resulting in only two objects on this XControl's root, MouseArea and
Background.

4. Insert an icon on the XControl's root, which can be any icon from the hpIcons library or similar.

5. Simplify the Link in the Foreground property of the Background object with the next expression.
-1*CInt(Parent.MouseArea.MouseOver)

NOTE
The Links registered on the multiple connections window of this Link must remain unchanged. Only the Source field of
the original Link must be changed.

6. In the MouseArea object, keep only the Link in the FillStyle property.

7. Configure this XControl's script, such as on the Click event of the MouseArea object, with the next code.
Sub MouseArea_Click()
MsgBox "Hello!"
End Sub

Faceplate Screen 26
8. Select the MouseArea object and click Bring to Front.

9. Save the XControl.

Whenever this custom button is declared in the PopupCode property of the hpXFaceplateTemplate object, it must
follow the format Library.XControl, where Library is the name of the library file that contains the XControl and XControl
is the name of the object.

4.9 Configuring a Viewer


Users must configure Viewer's CacheEnable property to True so that a Faceplate Screen works correctly.

4.10 Opening a Faceplate Screen for the First Time


After configuring it, an application is ready to use a Faceplate Screen. An example on how it works can be viewed on
the demonstration application of HighPerformance Template Library.

27 Faceplate Screen
Headquarters Branch in Taiwan
Rua Mostardeiro, 322/Cj. 902, 1001 e 1002 9F., No.12, Beiping 2nd St., Sanmin
90430-000 — Porto Alegre — RS Dist.
Phone: (+55 51) 3346-4699 807 — Kaohsiung City — Taiwan
Fax: (+55 51) 3222-6226 Phone: (+886 7) 323-8468
E-mail: elipse-rs@elipse.com.br Fax: (+886 7) 323-9656
E-mail: evan@elipse.com.br

Check our website for information about a representative in your city or country.
www.elipse.com.br
kb.elipse.com.br
forum.elipse.com.br
www.youtube.com/elipsesoftware
elipse@elipse.com.br

Gartner, Cool Vendors in Brazil 2014, April 2014.


Gartner does not endorse any vendor, product or service depicted in its
research publications, and does not advise technology users to select only
those vendors with the highest ratings. Gartner research publications
consist of the opinions of Gartner’s research organization and should not
be construed as statements of fact. Gartner disclaims all warranties,
expressed or implied, with respect to this research, including any warranties
of merchantability of fitness for a particular purpose.

You might also like