0% found this document useful (0 votes)
173 views

OASYS SCADA HMI Developer Guide

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
173 views

OASYS SCADA HMI Developer Guide

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 36

AVEVA™

Enterprise SCADA HMI

Developer Guide

Release 2021
Month 2020
© 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
The Schneider Electric industrial software business and AVEVA have merged to trade as AVEVA Group plc, a UK
listed company. The Schneider Electric and Life is On trademarks are owned by Schneider Electric and are being
licensed to AVEVA by Schneider Electric.
No part of this documentation shall be reproduced, stored in a retrieval system, or transmitted by any means,
electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of AVEVA.
No liability is assumed with respect to the use of the information contained herein.
Although precaution has been taken in the preparation of this documentation, AVEVA assumes no responsibility
for errors or omissions. The information in this documentation is subject to change without notice and does not
represent a commitment on the part of AVEVA. The software described in this documentation is furni shed under
a license agreement. This software may be used or copied only in accordance with the terms of such license
agreement.
ArchestrA, Aquis, Avantis, Citect, DYNSIM, eDNA, EYESIM, InBatch, InduSoft, InStep, IntelaTrac, InTouch, OASyS,
PIPEPHASE, PRiSM, PRO/II, PROVISION, ROMeo, SIM4ME, SimCentral, SimSci, Skelta, SmartGlance, Spiral
Software, Termis, WindowMaker, WindowViewer, and Wonderware are trademarks of AVEVA and/or its
subsidiaries. An extensive listing of AVEVA trademarks can be found at: https://sw.aveva.com/legal. All other
brands may be trademarks of their respective owners.
Publication date: Monday, July 6, 2020
Contact Information
AVEVA Group plc
High Cross
Madingley Road
Cambridge
CB3 0HB. UK
https://sw.aveva.com/
For information on how to contact sales and customer training, see https://sw.aveva.com/contact.
For information on how to contact technical support, see https://sw.aveva.com/support.
Contents
Chapter 1 Introduction .............................................................................................................5
Chapter 2 Product Configuration Settings ................................................................................7
Before You Begin ................................................................................................................................................................. 7
Modifying Configuration Settings ............................................................................................................................. 7
ezXOS.json Configuration Settings ................................................................................................................................... 9
XE.json Configuration Settings ........................................................................................................................................18
RealTime.json Configuration Settings............................................................................................................................18

Chapter 3 Developer Reference .............................................................................................21


CoordinateConversions ....................................................................................................................................................21
Example: Determining the LocationWCS and SizeWCS of a DNA Button on a Model Using an XEM File .21
Example: Determining the Location and Size of a Static Text on a Model Using an XEM file .....................21
Limitations and Expectations ..................................................................................................................................22
Creating Culture-Specific Satellite Assemblies.............................................................................................................22
Creating Culture-Specific Satellite Assemblies Localizing .NET Resource Assemblies for AVEVA Enterprise SCADA
HMI 2021....................................................................................................................................................................22
Translating .Net Resource (.resx) Files...................................................................................................................22
Creating a New Culture for an Application....................................................................................................22
Retrieving Strings from .resx Files...................................................................................................................23
Translating Strings .............................................................................................................................................24
Merging Translated Strings back into .resx Files ..........................................................................................25
Modifying Sizes and Locations of Forms Objects .........................................................................................26
Localizing .resx Non-Text Resources ..............................................................................................................28
Creating Culture-Specific Satellite Assemblies .............................................................................................28
Implementing a Custom Data Source for Flexible Trend and Flexible Plot Objects..............................................29
Flexible Trend Objects ..............................................................................................................................................29
ITrendSampleSource Interface ........................................................................................................................29
TrendSample Structure .....................................................................................................................................32
Flexible Plot Objects..................................................................................................................................................34
IPlotPointSource Interface ...............................................................................................................................34
PlotPoint Structure ............................................................................................................................................35
Custom Data Source Best Practices........................................................................................................................36

Release 2021 Page 3


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
C HAPTER 1
Introduction
As a Human-Machine Interface (HMI) Developer, you use exposed Application Programming Interfaces (APIs),
public configuration settings, and add-ons to extend the system. These tools enable you to:
 Work with and extend the capabilities of the HMI.
 Modify the configuration of the HMI.
 Create custom graphics and applications.
 Integrate the system with applications you already use.
The AVEVA Enterprise SCADA HMI Developer Guide provides procedures and conceptual topics to help you
extend the AVEVA Enterprise SCADA HMI product. This guide is only intended for advanced users who are
familiar with AVEVA Enterprise SCADA HMI, user interfaces, and application coding.

Release 2021 Page 5


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
C HAPTER 2
Product Configuration Settings
The easy eXtended Operator Station (ezXOS) and the eXtended Editor (XE) allow you to configure certain
product settings using JSON files to customize your environment.

Before You Begin


Modifying Configuration Settings
These configuration settings are saved in the JSON file format, and are installed to %DNAInstallRoot%\<Product
Name>\Config\Settings, where <Product Name> is the name of the product (for example, ezXOS). Do not
modify configuration settings in the %DNAInstallRoot% directory. Instead, you must define override settings in
the %DNADataRoot% directory, as detailed below.
Note: You should always back up your configuration file before you modify it in case you want to roll-back your
changes.
To modify configuration settings

Note: In the procedure that follows, the JSON file you place and customize in the %DNADataRoot% directory is
an override file: any keys defined will override those in the %DNAInstallRoot% directory. As a result, only
include settings you wish to override.
1. Locate the JSON file containing the settings you want to modify in %DNAInstallRoot%\<Product
Name>\config\Settings (the install root).
2. Check if the JSON file already exists in %DNADataRoot%\<Product Name>\Config\Settings (the data root)
and do one of the following:
o If the JSON file already exists, proceed to step 3.
o If the JSON file doesn't already exist, proceed to step 4.
3. Proceed as follows:
a. Do not overwrite the existing JSON file in the data root.
b. Check if the key-value pair you want to modify already exists in the JSON file located at the data root.
c. If the key-value pair you want to modify already exists in the JSON file located at the data root, do
nothing.
d. If the key-value pair you want to modify does not already exist in the JSON file located at the data root,
copy the item from the install root file and paste it into the file at the data root. Do not proceed to step
4.
4. Proceed as follows:
a. Copy and paste the JSON file whose settings you want to modify from the install root to the data root.
b. In the JSON file located at the data root, remove all key-value pairs whose values you don't want to
modify.

Release 2021 Page 7


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 2 - Product Configuration Settings

You can remove whole JSON objects within the file if none of the key-value pair values you want to
modify are contained therein.
5. Change the value of the configuration setting you want to modify to the desired value.
Example 1: JSON file doesn't already exist at the data root
Currently on install root:
{
"OnCall": {
"fromEmail": "TestRegistry@TestRegistry.com",
"emailHost": "localhost",
"SMTPport": 25,
"sleepTime": 20,
"maxSMSlength": 160,
"retries": 5,
"connectionTimeout": 5000,
"SMTPtimeout": 10000
}
}

Currently on data root:


Nothing.
You want to modify the emailHost key's value, so the JSON file on the data root will be:
{
"OnCall": {
"emailHost": "localhost"
}
}
Example 2: JSON file already exists at the data root
Currently on install root:
{
"OnCall": {
"fromEmail": "TestRegistry@TestRegistry.com",
"emailHost": "localhost",
"SMTPport": 25,
"sleepTime": 20,
"maxSMSlength": 160,
"retries": 5,
"connectionTimeout": 5000,
"SMTPtimeout": 10000
}
}

Currently on data root:


{
"OnCall": {
"SMTPport": 25
}
}
You want to modify the emailHost key's value, so the JSON file on the data root will be:
{
"OnCall": {
"emailHost": "localhost",
"SMTPport": 25

Page 8 Release 2021


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 2 - Product Configuration Settings

}
}

ezXOS.json Configuration Settings


This chapter includes information on the external ezXOS.json user-customizable configuration settings.

Key Description Allowed Default Value (if


Value(s) applicable)

ALLOW_BLOCKINGAL Allows you to ignore the Alt key. 0 - Ignore the 0


T_KEY Alt key.
1 – Do not
ignore the Alt
key.
APPLY_XOS_OBJECT The True, False True
_PIXEL_SHIFT APPLY_XOS_OBJECT_PIXEL_SHIFT
configuration setting is set to True by
default to achieve object location
accuracy for all displays under the
default view. This is done by shifting
the rendering of certain elements of
dynamic objects to align and appear in
the correct pixel coordinate.
Objects in displays that allow for
panning and zooming are not intended
to be placed on a particular pixel on the
display. If your display suite intends to
include routine panning and zooming, it
is recommended that you set
APPLY_XOS_OBJECT_PIXEL_SHIFT
to False, as its effect is undesired
under these conditions. When set to
True, the shift on some elements may
represent itself as large graphical
misalignments under high-zoom levels
or slight graphical misalignments under
panned views.

Note: When you modify the


APPLY_XOS_OBJECT_PIXEL_SHIFT
configuration setting, it is applied
system-wide and not to a specific
display.
This setting may shift some objects by
one pixel on displays built with
previous versions of the easy eXtended
Operator Station (ezXOS)/eXtended
Editor (XE). This change might not be
Release 2021 Page 9
© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 2 - Product Configuration Settings

Key Description Allowed Default Value (if


Value(s) applicable)

noticeable on your displays, but you


can set the configuration setting to
False if you do not want this behavior.

Control Room Management (CRM)


objects may have been designed with a
greater degree of placement accuracy
and rely on this configuration setting
being set to True.
AutomaticStatsLo Allows you to define the interval time Integer 10
gInterval to automatically check stats of alarm.
BUTTON_HEIGHT The height of the text on the > = 0 (pixels) 0
_THRESHOLD DNAButton can be reduced when the
DNAButton is scaled below this
threshold.
Also requires:
EXTRA_FONT_SCALING_FACTOR and
FONT_HEIGHT_PERCENTAGE .
CFG_DAL_LOGIN_TI Allows you to modify the login retry > 0 (seconds) 20
MEOUT timeout during a Shift Change login.
CHART_PREFETCH Allows you to define the fractional Float between 0
percentage of additional data over and 0.0 and 1.0
above that specified by a trend data
request. The value specified will be
multiplied with the time range
specified. The resulting value will be
subtracted from the start time
specified in the trend data request and
added to the end time specified in the
trend data request.
ConnectionTimeou Allows you to define the timeout value Integer 75
t in seconds when you log on to easy
eXtended Operator Station (ezXOS) or
execute a system switch.
CONTROL_HEIGHT The height of the text on Windows > = 0 (pixels) 0
_THRESHOLD Controls can be reduced by an
additional factor when the control is
scaled below this threshold.
Also requires:
EXTRA_FONT_SCALING_FACTOR and
FONT_HEIGHT_PERCENTAGE .
CONTROLLABILITY_ Allows you to define which element in ICON, POINTNAME
INDICATOR the Control Room Management (CRM) POINTNAME

Page 10 Release 2021


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 2 - Product Configuration Settings

Key Description Allowed Default Value (if


Value(s) applicable)

object will show the controllability of


the object. There are two possible
values for this configuration setting:
 ICON: An image describing
controllability will be shown in one
data attribute icon when the
flexible data attributes are
configured to show controllability.
 POINTNAME: The PointName in the
Control Room Management (CRM)
object will be shown in a different
color depending whether or not
the point is controllable.
CONTROLLABLECOLO Defines the color to be used to draw Any color Blue
R the PointName of the CRM objects that
are linked to points that are currently
controllable. The showControllability
property must be set to True and the
CONTROLLABILITY_INDICATOR must
be set to POINTNAME so that this color
is used to show controllability.
DEFAULT_ANNUNCIA The default sound used to annunciate String default_alarm
TION alarms. If no audio file is supplied by .wav
_SOUND
the Business Logic Tier (BLT), this sound
is used instead.
DEFER_TRANSLATIO Allows you to tell the drawing update 1 - activate. 0
N_ON_VISIBLE_MOD manager to wait to translate a model if
ELS 0 - do not
that model is currently visible.
activate.
DISABLE_FLEXIBLE This configuration setting allows you to TRUE, FALSE FALSE
DATAATTR disable the Flexible Data Attribute
behavior by using one of the following
options:
 TRUE – The Flexible Data Attribute
is disabled.
 FALSE (or no key configuration
setting created) – The Flexible Data
Attribute is enabled.
DTR_SAMPLES_1_PE Allows you to adjust the desired 1 to 12, 000 1500
N performance of Dynamic Trend
Resolution (DTR) to account for your
system conditions.

Release 2021 Page 11


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 2 - Product Configuration Settings

Key Description Allowed Default Value (if


Value(s) applicable)

This configuration setting represents


the number of samples returned from
the SCADA server for one pen. You can
expect an approximate call-up time of 1
second for a single pen.
Performance is system and
application-dependent. If you want to
increase performance, reduce these
numbers. Alternatively, if you want to
increase trend display resolution,
increase these numbers.
DTR_SAMPLES_MORE Allows you to adjust the desired 1 to 12, 000 300
_THAN_8_PENS performance of DTR to account for
your system conditions.
This configuration setting represents
the number of samples returned for
nine pens or more. Between two and
eight pens, the displayed resolution is a
function of both of these values. You
can expect an approximate call-up time
of 4 seconds or less for multiple pens.
Performance is system and
application-dependent. If you want to
increase performance, reduce these
numbers. Alternatively, if you want to
increase trend display resolution,
increase these numbers.
EXTRA_FONT_SCALI This is a factor that will be applied to 0.0 - 1.0 0
NG _FACTOR the height of the text on the
DNAButton or Control when the
DNAButton or Control is scaled below
a certain size.
Also requires:
FONT_HEIGHT_PERCENTAGE and
either BUTTON_HEIGHT_THRESHOLD
or CONTROL_HEIGHT_THRESHOLD.
FlexibleTrend The FlexibleTrend configuration The allowed  ALARM_COLO
setting has the following components: values can be in R - Red
the form of:  MANUAL_COL
 ALARM_COLOR
 A color OR -
Allows you to define the alarm Magenta
name. For
color that will be used in all Flexible
example,  MISSING_CO
Trend objects on an ezXOS station.

Page 12 Release 2021


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 2 - Product Configuration Settings

Key Description Allowed Default Value (if


Value(s) applicable)

This configuration setting will be Red, Green, LOR -


shown as the Alarm item on the Aqua. Yellow
Data Attributes Legend.
 An RGB  OFFSCAN_CO
LOR - Cyan
 MANUAL_COLOR value. For
Allows you to define the manual example,
color that will be used in all Flexible 127,255,0.
Trend objects on an ezXOS station.
This configuration setting will be
shown as the Manual Override item
on the Data Attributes Legend.
 MISSING_COLOR
Allows you to define the missing
color that will be used in all Flexible
Trend objects on an ezXOS station.
This configuration setting will be
shown as the Unknown item on the
Data Attributes Legend.
 OFFSCAN_COLOR
Allows you to define the offscan
color that will be used in all Flexible
Trend objects on an ezXOS station.
This configuration setting will be
shown as the Offscan/Offline item
on the Data Attributes Legend.
FONT_HEIGHT When the ratio of the text height on 0 - 100 0
_PERCENTAGE the DNAButton or Control and the (percentage)
height of the DNAButton or Control is
greater than this value, the text height
can be scaled by an extra factor in
order to further reduce its height to fit
the button better.
Also requires:
EXTRA_FONT_SCALING_FACTOR and
either BUTTON_HEIGHT_THRESHOLD
or CONTROL_HEIGHT_THRESHOLD.
JIT_DISPLAY_DOWN Allows you to determine if ezXOS ENABLED, If not defined in
LOAD should perform Just-In-Time display DISABLED the configuration
synchronization, taking displays from file, the user
Remote Client Services (RCS). The profile
recommended configuration is to configuration will
enable this for remote ezXOS and be checked. If not
disable it for local ezXOS. defined there
also, the default

Release 2021 Page 13


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 2 - Product Configuration Settings

Key Description Allowed Default Value (if


Value(s) applicable)

is DISABLED.

LogoutMessageDel Specifies the warning duration from the > = 0 120


ay time of the inactivity warning message
box until ezXOS logs out.
MaximumVirtualMe Used on 64-bit operating systems. The value must 3500000000
moryThreshold64 be lower than
Whenever a display is shown, ezXOS
the physical
process virtual memory size is
memory of the
checked. When virtual memory usage
machine.
is above this limit, one unused
background image and/or hidden
display is removed from the cache
before showing the new display.
NO_SYSTEM_MENU Allows you to prevent the System 0 - allow the 0
Menu from being shown on windows. system menu.
1 - prevent the
system menu.
NO_SYSTEM_MENU_2 If enabled, the System Menu will 1 - dismiss 0
dismiss immediately after being called immediately.
up.
0 - allow user
interaction with
the menu.
PERFPLOT_REORDER Allows you to determine if an inverse TRUE, FALSE TRUE
_AGESEQUENCE order will be used for the performance
plots point data list.

Page 14 Release 2021


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 2 - Product Configuration Settings

Key Description Allowed Default Value (if


Value(s) applicable)

RTTABLE_CELL Changes the behavior of how numeric ENABLED, DISABLED


_REFERENCE_BY_IN column indexes are determined. DISABLED
DEX
Prior to 7.5.8, the Visual Basic (VB)
methods for accessing columns and
cells ( GetCellValue, SetCellValue,
GetForegroundCellColor ,
SetForegroundCellColor ,
GetBackgroundCellColor ,
SetBackgroundCellColor ,
GetColumnKeyName) required a
numeric index to specify the column.
This could be confusing, because icon
columns have a separate visible column
position and may appear in a different
column order than their numeric index.
In 7.5.8 and later, new equivalent VB
methods exist which access columns
and cells by a column name instead of
numeric index. These new methods are
the preferred ones to be used.
This configuration setting only applies
to the earlier VB methods that require
a numeric index. In those cases, if this
configuration setting is set to ENABLED,
the numeric column index refers to the
order that the columns are configured
in, and does not use the icon visible
column position (this is pre-7.5.8
behavior).
As well, the ColumnHeaderClicked
event will index the columns in the
same way. If this configuration
setting is set to DISABLED, the numeric
column index uses the icon visible
column position to determine the
column (post-7.5.8 behavior), for both
the VB methods that access columns
and cells as well as for the
ColumnHeaderClicked event.
SYSTEM_SWITCH_PR Allows you to enable or disable the ENABLED - ENABLED
OMPT system switch confirmation. system switch
will prompt the
user for
confirmation

Release 2021 Page 15


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 2 - Product Configuration Settings

Key Description Allowed Default Value (if


Value(s) applicable)

before
executing the
system switch.
DISABLED -
system switch
will run in a
quiet mode and
requires no
action.
TAG_FONT_ADJUST When the tag font point size is below a Any valid 0
certain value, the text may not look floating point
clear enough. value
representing a
This setting allows you to bold text
point size.
when the text size falls below the value
you define.
TREND_CACHE_TIME Allows you to override the default Values great 3
SPAN trend cache time span value. A value of than or equal to
0 means that no trend data (beyond 0.
that which is currently visible) is
cached. If an invalid value is specified, a
default value of 3 is used.
XOS_ACTIVATION_C Allows you to define the border color String Blue
OLOR for an entity which has been control
panel activated.
XOS_EXCLUDE_PATH Allows you to define a list of paths that String
S will be excluded in search operations
for displays and other elements,
separated by a semi-colon.
XOS_ENABLE_FONT_ Defines what the default value of the True, False True
SIZE_SCALING_NON FontSizeScaling property of any .NET
_BUTTONS
Control is, when that object is placed
on a display in XE.

Page 16 Release 2021


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 2 - Product Configuration Settings

Key Description Allowed Default Value (if


Value(s) applicable)

XOS_HOOPS_TEXT On startup of ezXOS/XE, the True, False False


_CALIBRATION HOOPSFontToWinFontPtSizeAdjustme
nt.json configuration file is read once
and used to adjust text size.
It is sometimes necessary to make
changes to this file
during manual calibration of the text
adjustment values.
Setting this value to TRUE allows you to
not have to restart ezXOS/XE everytime
a change is made to this file.
Do not use this on a normal runtime, as
performance will be affected.

XOS_MULTISELECT_ Allows you to define the border color String White


COLOR for an entity which has been
multi-selected.
XOS_PAN_ZOOM_UPD Allows you to define the display update Milliseconds 100
ATE rate during a continuous pan/zoom (positive integer
_OVERRIDE value)
operation.
XOS_PANZOOM_FRAM Allows you to define the pan/zoom Integer 0.0333
E speed during a continuous pan/zoom 0.0167
_ADVANCE
operation. (slow) to
0.0333 (fast)
XOS_SHOW_FLEXTAG Allows you to configure graphic objects True, False True
_COUNT that show a Tag icon to show the tag
count. If this setting is True, the Tag
icon will show a count of the number of
tags on the device; if the setting is
False, the count is not shown.
XOS_TRANSPARENCY Allows you to change the default String 138:101:0
_RGB_COLOR transparency color in GIF files.
Enter the value as a string in the form
of "R:G:B", where R, G, B are integers
from 0 to 255. The integers represent
the red, green, blue components of the
transparency color.

Release 2021 Page 17


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 2 - Product Configuration Settings

XE.json Configuration Settings


This chapter includes information on the external XE.json user-customizable configuration settings.

Key Description Allowed Default Value


Value(s) (if applicable)

DISPLAY_REPOSITORY Allows you to define the path for String


the eXtended Editor (XE) and the
easy eXtended Operator Station
(ezXOS) display repository
location. The XE menu command
Change Display Repository on
the File menu is used to set this
configuration setting.
XE_OPTIONAL_CONTROLS Allows you to specify the legacy Industry names
and industry specific controls to separated by a
load in the XE toolbox. semi-colons; for
example,
LEGACY;PETRO
LEUM

RealTime.json Configuration Settings


This chapter includes information on the external RealTime configuration settings which reside in the RealTime
silo.

Key Description Allowed Default Value


Value(s) (if applicable)

USE_FLEXIBLE_TAGGING When this configuration setting is True, False False


enabled, you can configure the
exclusivity of tags, group tags
together for mass modifications, set
priorities for Flexible Tagging
(FlexTag) types, customize tag icons,
and attach multiple tags to a single
record.
If you enable this configuration
setting, restart RealTime by shutting
it down in the Network
Management Console (NMC), then
starting it again.
The next time you start easy
eXtended Operator Station (ezXOS)
and select the Tags System Display,
the FlexTag Summary will appear

Page 18 Release 2021


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 2 - Product Configuration Settings

Key Description Allowed Default Value


Value(s) (if applicable)
instead of the regular Tag Summary.

Release 2021 Page 19


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
C HAPTER 3
Developer Reference
The following guide provides procedures and conceptual topics to help you use and extend the AVEVA
Enterprise SCADA HMI product. This guide is only intended for advanced users who are familiar with the AVEVA
Enterprise SCADA HMI code and conventions.

CoordinateConversions
Redundant properties are not included in XEM files including Location (as made redundant from
LocationWCS) and Size (as made redundant from SizeWCS). However, XE requires the functionality of both
coordinate systems to be available for customers. This means that a light-weight coordinate conversion API will
need to be provided for customers to calculate between Location and LocationWCS, and Size and
SizeWCS.

Basic structs are created to mimic PointF, SizeF, and RectangleF, but with the precision of a double
instead of a float. CoordinateConverter will require these.
The manual of the API is located in the SmartClientComponents help file located here: <ezXOS
directory>\DNA\Documentation\HelpFiles.

Example: Determining the LocationWCS and SizeWCS of a DNA Button on a Model


Using an XEM File
ToWCS and ToPixel each have overloads to accept either a PointD or a RectangleD. Because a DNA Button
has a size associated with it, it is necessary to call the ToWCS() method, and pass in the bounding RectangleD.

using OASySDNA.SmartClientComponents.Drawing;
using OASySDNA.SmartClientComponents.CoordinateConversion;

CoordinateConverter converter = new CoordinateConverter("SENSORS.XEM");

double x = 123;
double y = 587;
double width = 150;
double height = 50;

RectangleD boundingBoxInPixels = new RectangleD(x, y, width, height);


RectangleD boundingBoxInWcs = converter.ToWCS(boundingBoxInPixels);

MessageBox.Show("Location in WCS: " + boundingBoxInWcs.ToString());


MessageBox.Show("Size in WCS: " + boundingBoxInWcs.ToString());

Example: Determining the Location and Size of a Static Text on a Model Using an XEM
file
using OASySDNA.XOS.Drawing;
using OASySDNA.XOS.CoordinateConversion;
CoordinateConverter converter = new CoordinateConverter("SENSORS.XEM");

Release 2021 Page 21


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 3 - Developer Refer ence

double xWcs = 35.1858;


double yWcs = -245.7521;

PointD locationInWcs = new PointD(xWcs, yWcs);


PointD locationInPixels = converter.ToPixel(locationInWcs);

MessageBox.Show("Location in Pixels: " + locationInPixels.ToString());

Limitations and Expectations


The calculations between world and pixel coordinate systems depend on the following factors:
 Canvas size – The size of the model.
 Client area size – The size of the area that is visible. This is dependent on the canvas size and Windows
theme settings.
 WindowView – Being perspective or stretched.
 Aspect Ratio – The aspect ratio of the model.
 Model’s LocationWCS – The offset in world coordinates. This is dependent on the location of the outer
objects of the model.
By default, LocationWCS is set to 0|0. In removing and adding a model into the graphics database, a new
LocationWCS is calculated based on the objects of the model. When this new LocationWCS is calculated for
the model, the value will only be saved into the XEM file upon the next save.
It is for this reason that, in order to use the API to parse an XEM file, you must save after performing a Picture
Data Translator (PDT) operation.

Creating Culture-Specific Satellite Assemblies


Localizing .NET Resource Assemblies for AVEVA Enterprise SCADA HMI 2021
AVEVA Enterprise SCADA HMI can be deployed to any supported language version of the Windows operating
system (OS). You can provide the necessary translations for any supported language by following the procedure
below. When numbers, dates, and time strings are displayed in the Human-Machine Interface (HMI), they will be
shown using the formatting that follows the regional conventions that are set on the workstation. Refer to the
AVEVA Enterprise SCADA HMI Supported Configurations Guide for information on supported languages.
The following section describes how to configure the project workstations to properly display the language.
AVEVA Enterprise SCADA HMI 2021 applications use .NET resource assemblies to localize message strings and
other resources, such as menus and positional and sizing information for form elements.

Translating .Net Resource (.resx) Files


Follow the procedures in this section to provide translation for applications that use .Net Resource ( .resx) files.
The .resx files contain text, images, and positional and sizing information about elements on a display. The text
is in the specific language (culture) that the .resx file represents.

Creating a New Culture for an Application


During the installation of AVEVA Enterprise SCADA HMI products, the .resx files for those products are installed
under the product's sdk folder. For example: C:\Program Files\AVEVA\DNA\ezXOS\9.0\sdk\ResX\<component
name>.

Page 22 Release 2021


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 3 - Developer Refer ence

When you create a new culture, or modify an existing one, you copy a starting .resx file from the Install Silo
location to the Data Silo location, and do the work in the Data Silo location. Typically, you would copy the
invariant culture .resx file, which contains the default English text strings, and then create a new .resx file with
the text strings translated to your language. You can also modify an existing baseline culture .resx file by copying
it to the Data Silo location, or modify a previously created .resx file in the Data Silo location.

Important: Use the Development computer when creating a new culture for an application.
Before You Begin
 Ensure that Visual Studio is installed on the Development computer.
 Ensure that all of the typical tools from the AVEVA Enterprise SCADA HMI install media are installed and
present in the shared\tools\development folder on the Development computer (select Development Tools
during installation).
To create a new culture for an application
1. Log on to the Development computer.
2. In the Install Silo location, locate the invariant .resx file of interest.
For example, the easy eXtended Operator Station (ezXOS) pangrfxStrings.resx file is located in the following
directory: %DNAInstallRoot%\ezXOS\9.0\sdk\ResX\libpangrfxResources
Where: %DNAInstallRoot% is similar to C:\Program Files\AVEVA\DNA.
3. Copy the invariant .resx file from the Install Silo location and paste it into the corresponding Data Silo
location.
In the case of the sample file above, you would paste it into the following location:
%DNADataRoot%\ezXOS\9.0\sdk\ResX\libpangrfxResources
Where: %DNADataRoot% is similar to C:\AVEVA\DNA.
4. Change the name of the .resx file to <resx filename>.<culture>.resx.
Where <culture> is the culture abbreviation as per the Language tag column in the table at the Microsoft
Open Specifications
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8
b0cdb9c page.
For example, to create a Portuguese culture pangrfxStrings.resx file, change the file name to
pangrfxStrings.pt.resx.

Note: Within a product component, there may be multiple .resx files for each language. All the .resx files of a
single language within the component folder will get built into a single culture assembly. Therefore, you should
translate all the invariant culture .resx files within the component folder to your new language, thereby ensuring
that the resulting culture assembly is completely translated to the new language.

Retrieving Strings from .resx Files


The .resx files contain additional information that a translator will not require, including positioning information
for the visual objects.
Using the ResStringSplitter utility, you can retrieve the language strings from the .resx file and give only these
strings to a translator. When these strings have been translated, you can merge them back into the .resx file
using the ResStringMerger utility.

Release 2021 Page 23


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 3 - Developer Refer ence

To retrieve strings from .resx files


1. On the desktop, double-click the Windows PowerShell for DNA shortcut.
Windows PowerShell opens.
2. Navigate to the location of your new .resx file in the Data Silo.
For example:

3. Run the ResStringSplitter utility.


This utility takes a -i argument, indicating the input .resx file from which to gather the strings. The utility
creates a Unicode text file with the extension “.strings”, which you can then send to the translator.
For example:

Translating Strings
The .strings file takes the following format:
NAME: < Resource Name>
<value>
.

Page 24 Release 2021


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 3 - Developer Refer ence

NAME: < Resource Name>


<value line 1>
<value line 2>
.
For example:
NAME: AnnounceReady
Hello {0}, you look {1}
.

Notes: The translator should only translate the lines between the NAME: line and the line with the single period.
The NAME: line should not be translated.

Resources may have multiple lines. The {0}, {1}, etc. characters indicate words that AVEVA Enterprise SCADA
HMI inserts when the system displays the text.

Each Resource is terminated with a single period at the beginning of the last line, with no other text on the line.

This file is Unicode using UTF8, and can therefore contain characters from any language.

Merging Translated Strings back into .resx Files


Once the translation is complete, you can then merge the strings back into the .resx file using the
ResStringMerger utility.
To merge translated strings back into .resx files
1. Copy the translated strings file back to the resx folder in the Data Silo path.
2. On the desktop, double-click the Windows PowerShell for DNA shortcut.
Windows PowerShell opens.
3. Navigate to the location of the translated strings file in the Data Silo.
4. Run the ResStringMerger utility.
This utility takes an -m argument, which indicates the .resx file to merge. By default, the utility reads a
.strings text file of the same name.

Release 2021 Page 25


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 3 - Developer Refer ence

For example:

Modifying Sizes and Locations of Forms Objects


After translating your strings, you may need to resize some Forms objects. This may involve, for example,
enlarging a button to adjust for text that is longer or shorter than the original.
The Microsoft WinRes utility enables you to resize .resx form objects outside of the original Visual Studio
environment.

Notes: Since some culture-specific .resx files rely on the culture-invariant version of that .resx file, WinRes might
only be able to load the culture-invariant version. When you saved the .resx file, you chose the culture to save it
as. In such cases, open the culture-invariant .resx file in WinRes, edit it for your culture-specific sizing and
positioning, and save it to the culture you desire. For all other cases, you can directly open the culture -specific
.resx file.

WinRes works on .resx files generated from a Windows Form or Control, and allows you to position and size
objects on that Form. Many of the AVEVA Enterprise SCADA HMI .resx files are not generated from Windows
Forms and Control: if you attempt to open these in WinRes, the system generates an error message. Only use
WinRes on Forms-based .resx files when you want to position or size objects on the Form.
To modify sizes and locations of Forms objects
1. Launch the WinRes tool.
2. Select File > Open.

Page 26 Release 2021


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 3 - Developer Refer ence

The Open dialog box appears.

3. In the Files of type field, select ResX File(*.resx).


4. Open the .resx file containing the objects that you need to resize.
For example:

5. Resize individual elements or set properties as required.

Release 2021 Page 27


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 3 - Developer Refer ence

For example:

Localizing .resx Non-Text Resources


The procedure of creating new language text strings and assembling them for use in AVEVA Enterprise SCADA
HMI applications does not preserve culture-specific images or other non-text resources. Only culture-specific
text is supported—not culture-specific images or other non-text resources.

Creating Culture-Specific Satellite Assemblies


After updating your .resx files to be culture specific, you must generate the compiled Satellite Assemblies that
will contain the new culture-specific text resources.

Important: Use the Development computer when creating culture-specific satellite assemblies.
Before You Begin
 Ensure that Visual Studio is installed on the Development computer.
To create culture-specific satellite assemblies
1. Click Start, and, in the Search box, type Developer Command Prompt for Visual Studio .
2. Press Enter.
The Visual Studio Developer Command Prompt window opens.
3. Execute the following commands to run the MakeResources tool:
cd %DNADataRoot%\<Product Name>\<Product Version>\sdk\resx\
"%DNAInstallRoot%\Tools\bin\MakeResources" /name: <Component>

Page 28 Release 2021


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 3 - Developer Refer ence

For example:

This will generate one satellite assembly dynamic link library (DLL) for each culture. The DLL contains all the
compiled .resx files for the culture that exist in the specified Component folder. These DLLs are created in
the %DNADataRoot%\bin\<culture> folders, as shown in the example above..
4. Copy these Satellite Assembly DLLs to the %DNADataRoot%\bin\<culture> folder on all computers that run
AVEVA Enterprise SCADA HMI with the given regional setting (culture).

Implementing a Custom Data Source for Flexible Trend and Flexible Plot
Objects
The following sections describe how to implement a custom data source for Flexible Trend and Flexible Plot
objects.

Flexible Trend Objects


ITrendSampleSource Interface
Application specific trend data sources can be included in charts within easy eXtended Operator Station (ezXOS)
without having to develop Business Logic Tiers (BLTs). Trend data source can implement this interface to provide
custom trend data for individual pens. This can be set for a pen in a display’s Visual Basic (VB) code via the trend
pen’s TrendSampleSource property.

Note: There are no extra security requirements for this interface.


The following tables list the members exposed by ITrendSampleSource.
Public Methods
Name Description

Release 2021 Page 29


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 3 - Developer Refer ence

Name Description

QueryTrendSamples Query data from the trend source for a particular


time range.
Refer to QueryTrendSamples Method
(ITrendSampleSource) on page 30 for more
information.
Public Events
Name Description

NewDataAvailable Occurs when new data is available in the trend


source.
Refer to NewDataAvailable Event
(ITrendSampleSource) on page 30 for more
information.

QueryTrendSamples Method (ITrendSampleSource)


The QueryTrendSamples method is used to query data from the trend source for a particular time range. This
method will be called periodically based on the refresh rate of the chart.
C# Syntax
System.Collections.Generic.List<TrendSample> QueryTrendSamples(
System.DateTime startTime,
System.DateTime endTime
)
Parameters
startTime
Data start time.
endTime
Data end time.
Return Value
List of TrendSample structures. The TrendSample list should be sorted based on the Time property from the
earliest to latest timestamp. Refer to TrendSample Structure on page 32 for more information.

NewDataAvailable Event (ITrendSampleSource)


Occurs when new data is available in the trend source.

Note: It is not necessary to raise this event. The QueryTrendSamples method will be called periodically based
on the refresh rate of the chart regardless of whether this notification is raised. It is only provided as a
mechanism to present data immediately even when it comes in between refresh periods.
C# Syntax
event NewDataAvailableHandler NewDataAvailable

Page 30 Release 2021


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 3 - Developer Refer ence

Example
To implement a custom trend data source, create an assembly with a class that implements the
ITrendSampleSource. In this example, the assembly is compiled to create CustomTestFlexTrendSource.dll
with the namespace CustomTestFlexTrendSource, and the class is named CustomTestTrendSource.
To implement a custom trend data source
1. Implement the QueryTrendSamples interface.
/// <summary>
/// Query data from the trend source for a particular time range.
/// </summary>
/// <param name="startTime">Data start time.</param>
/// <param name="endTime">Data end time.</param>
/// <returns>List of TrendSample structures</returns>
public List<TrendSample> QueryTrendSamples(DateTime startTime, DateTime endTime)
{
etc…
}
On initial display call up containing a Flexible Trend object, each pen configured to use the custom trend
source makes a call to QueryTrendSamples() to retrieve the initial set of trend samples.
2. Implement the NewDataAvailable interface.
a. Create a class member.
private event NewDataAvailableHandler newDataAvailable;
b. Implement the NewDataAvailable event. The trend pen attaches itself to this event when the Flexible
Trend object is displayed.
/// <summary>
/// Indicates that new data is available.
/// </summary>
public event NewDataAvailableHandler NewDataAvailable
{
add => newDataAvailable += value;
remove => newDataAvailable -= value;
}

c. When new data is available for the trend source, call the event:
newDataAvailable?.Invoke(this);

This makes a call back to the trend pen and in turn, the pen will make a call to QueryTrendSamples()
to retrieve the updated data.
To use the custom trend data source in the easy eXtended Operator Station (ezXOS)/eXtended Editor (XE)
1. Copy the CustomTestFlexTrendSource.dll to the %DNADataRoot%\ezXOS\<silo>\bin folder (for example,
C:\AVEVA\DNA\ezXOS\9.0\bin).
2. Create (or add) to the file %DNADataRoot%\ezXOS\<silo>\config\Settings\ AssemblyList_custom.json (for
example, C:\AVEVA\DNA\ezXOS\9.0\config\Settings) the following:
{
"XE": {
"Assemblies": {
"Custom": [
"CustomTestFlexTrendSource"
]
}
}
}

Release 2021 Page 31


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 3 - Developer Refer ence

3. Create a display with a Flexible Trend object, and name it (for example, flexTrend).
4. Open the Visual Basic (VB) code tab and add code to configure a pen with the custom trend data source:
a. Import the assembly.
Imports CustomTestFlexTrendSource
Imports OASySDNA.XOS.FlexibleChart
b. Create a pen and set the trend data source.
Dim pen1 As New TrendPen()
Dim customTrendSource As New CustomTestTrendSource()

‘ Optional: provide customTrendSource context by assigning properties values, etc…

‘ so that it can retrieve data on the provided context.

pen1.Name = "test1"

‘ assign the pen the trend source


pen1.TrendSampleSource = customTrendSource

‘ optional
pen1.LineColor = Color.DarkCyan
etc…

‘ add the pen to the flexible trend


flexTrend.AddPen(pen1)

TrendSample Structure
The TrendSample data structure represents a data sample for the Flexible Trend object.
C# Syntax
public struct TrendSample
Public Constructors
Name Description

TrendSample constructor Constructor.

Refer to TrendSample Constructor on page 33 for


more information.
Public Fields
Name Description

Time Trend sample timestamp.

Value Trend sample data value.

DataAttribute Trend sample data attribute.

Continuation Indicates that this sample is the same as the last but
with an updated timestamp.

Page 32 Release 2021


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 3 - Developer Refer ence

TrendSample Constructor
C# Syntax
public TrendSample(
System.DateTime time,
System.double value,
char dataAttribute,
bool continuation = false
)

Parameters
time

Trend sample timestamp.


value

Trend sample data value.


dataAttribute

Trend sample data attribute.


continuation

Indicates that this sample is the same as the last but with an updated timestamp. Default value is false.
TrendSample Fields

Field Name Description C# Syntax

Time Trend sample timestamp. public System.DateTime Time

Value Trend sample data value. public System.double Value

DataAttribute Trend sample data public char DataAttribute


attribute. Values can be one of the following characters:
 A – Alarm

 M – Manual

 O – Offscan

 X – Unknown / Missing data

 <single space character> – Data value


is fresh and in the normal range
Continuation Indicates that this sample is public bool Continuation
the same as the last but If false, then a marker is drawn for the data
with an updated point on the chart.
timestamp.
If true, no marker is drawn for the data point.

Release 2021 Page 33


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 3 - Developer Refer ence

Flexible Plot Objects


IPlotPointSource Interface
Application specific plot data sources can be included in charts within easy eXtended Operator Station (ezXOS)
without having to develop Business Logic Tiers (BLTs). Plot data source can implement this interface to provide
custom plot data for individual pens. This can be set for a pen in a display’s Visual Basic (VB) code via the plot
pen’s PlotPointSource property.

Note: There are no extra security requirements put on this interface.


The following tables list the members exposed by IPlotPointSource.
Public Methods
Name Description

QueryPlotPoints Query data from the plot source.


Refer to QueryPlotPoints Method (IPlotPointSource)
on page 34 for more information.

QueryPlotPoints Method (IPlotPointSource)


The QueryPlotPoints method is used to query data from the plot source. This method will be called
periodically based on the refresh rate of the chart.
C# Syntax
System.Collections.Generic.List<PlotPoint> QueryPlotPoints()
Return Value
List of PlotPoint structures. Sort the values by X in ascending order for better presentation of the data in the
Flexible Plot object. Refer to PlotPoint Structure on page 35 for more information.
Example
To implement a custom plot data source, create an assembly with a class that implements the
IPlotPointSource. In this example, the assembly is compiled to create CustomTestFlexPlotSource.dll with
the namespace CustomTestFlexPlotSource, and the class is named CustomTestPlotSource. Refer to
%DataInstallRoot%\ezXOS\<product version>\sdk\Examples\CustomFlexibleChartSource for an example of
retrieving data from a Microsoft Excel spreadsheet.
To implement a custom plot data source
 Implement the QueryPlotPoints interface.
/// <summary>
/// Query data from the plot source
/// </summary>
/// <returns>List of PlotPoint structures</returns>
public List<PlotPoint> QueryPlotPoints()
{
etc…
}
On initial display call up containing a Flexible Plot object, each pen configured to use the custom plot source
makes a call to QueryPlotPoints() to retrieve the initial set of plot points.

Page 34 Release 2021


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 3 - Developer Refer ence

To use the custom plot data source in the easy eXtended Operator Station (ezXOS)/eXtended Editor (XE)
1. Copy the CustomTestFlexPlotSource.dll to the %DNADataRoot%\ezXOS\<silo>\bin folder (for example,
C:\AVEVA\DNA\ezXOS\9.0\bin).
2. Create (or add) to the file %DNADataRoot%\ezXOS\<silo>\config\Settings\ AssemblyList_custom.json (for
example, C:\AVEVA\DNA\ezXOS\9.0\config\Settings) the following:
{
"XE": {
"Assemblies": {
"Custom": [
"CustomTestFlexPlotSource"
]
}
}
}
3. Create a display with a Flexible Plot object, and name it (for example, flexPlot).
4. Open the Visual Basic (VB) code tab and add code to configure a pen with the custom trend data source:
a. Import the assembly.
Imports CustomTestFlexPlotSource
Imports OASySDNA.XOS.FlexibleChart
b. Create a pen and set the trend data source.
Dim pen1 As New PlotPen()
Dim customPlotSource As New CustomTestPlotSource()

‘ Optional: provide customPlotSource context by assigning prope rties values, etc…

‘ so that it can retrieve data on the provided context.

pen1.Name = "test1"

‘ assign the pen the plot source


pen1.PlotPointSource = customPlotSource

‘ optional
pen1.LineColor = Color.DarkCyan
etc…

‘ add the pen to the flexible plot


flexPlot.AddPen(pen1)

PlotPoint Structure
The PlotPoint data structure represents an X, Y pair for the Flexible Plot object.
C# Syntax
public struct PlotPoint
Public Constructors
Name Description

PlotPoint constructor Constructor.

Release 2021 Page 35


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.
AVEVA™ Enterprise SCADA HMI Developer Guide
CHAPTER 3 - Developer Refer ence

Public Fields
Name Description

X X value (position on the horizontal axis).

Y Y value (position on the vertical axis).

PlotPoint Constructor
C# Syntax
public PlotPoint(
System.double x,
System.double y,
)
Parameters
x
x value
y
y value

PlotPoint Fields

Field Name Description C# Syntax

X X value (position on the public System.double X


horizontal axis).
Y Y value (position on the vertical public System.double Y
axis).

Custom Data Source Best Practices


The following items are recommendations to consider when implementing your custom data source for Flexible
Trend and Flexible Plot chart objects:
 The data source interface does not add any additional latency; however, your implementation of the
external data source interface can affect the performance of the Flexible Trend and Flexible Plot chart
objects. For example, the chart will only show data when data is made available. Therefore, you should
make sure that you do not have time consuming calls when the chart asks for data.
 For Flexible Trend objects, the TrendSample list should be sorted base on the Time property from the
earliest to latest timestamp.
 For Flexible Plot objects, the PlotPoint list should be sorted by the X value in ascending order for better
presentation of the data in the Flexible Plot object.

Page 36 Release 2021


© Copyright 2020 AVEVA Group plc and its subsidiaries. All rights reserved.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy