samc 2013 breakout session ppt...

94
Slide 1

Upload: phungnguyet

Post on 18-Apr-2018

241 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Slide 1

Page 2: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

WW TSS-17WW TSS-18ArchestrA Graphics: DesignGuidelines for Top Performance

Presented by: Mirko CanelSenior Embedded TAM

@InvensysOpsMgmt / #SoftwareRevolution

/Wonderware HMI

social.invensys.com

© 2013 Invensys. All Rights Reserved. The names, logos, and taglines identifying the products and services of Invensys are proprietary marks of Invensys or its subsidiaries.All third party trademarks and service marks are the proprietary marks of their respective owners.

Presented by: Mirko CanelSenior Embedded TAM

/Wonderware

/Group –HMI/SCADA/AppServer

Page 3: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Agenda

We will discuss design considerations to achieve the best performancefrom Wonderware ArchestrA Graphics. Key topics covered:

1. Improve the performance of graphics to reduce the total time toshow updated values

2. CPU Utilization Considerations

3. Memory Utilization Considerations

4. Bottleneck Investigation

5. ArchestrA IDE Performance Considerations

Slide 3

We will discuss design considerations to achieve the best performancefrom Wonderware ArchestrA Graphics. Key topics covered:

1. Improve the performance of graphics to reduce the total time toshow updated values

2. CPU Utilization Considerations

3. Memory Utilization Considerations

4. Bottleneck Investigation

5. ArchestrA IDE Performance Considerations

Page 4: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Introduction

ArchestrA Graphics overview of the technology

1. .NET considerations on memory utilization: Garbage Collector (thetypical saw tooth in the memory utilization)

2. Vector graphics overview of the concepts

3. GDI+ (Graphic Device Interface) and CPU rendering pre and postWDDM 1.1 ( windows 7 )

4. Remote Desktop rendering technologies

5. Technical implementation Performance Vs Performance as efficiencyof the graphical representation

6. The operator at the center of the application design.

Slide 4

ArchestrA Graphics overview of the technology

1. .NET considerations on memory utilization: Garbage Collector (thetypical saw tooth in the memory utilization)

2. Vector graphics overview of the concepts

3. GDI+ (Graphic Device Interface) and CPU rendering pre and postWDDM 1.1 ( windows 7 )

4. Remote Desktop rendering technologies

5. Technical implementation Performance Vs Performance as efficiencyof the graphical representation

6. The operator at the center of the application design.

Page 5: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Introduction

TopPerformanceTechnical

Guidelines V.1.0of this

presentation2011

Introduction toArchestrA 2014Concepts: new

highperformance

graphic library

High Efficiency

Slide 5

TechnicalGuidelines V.2.0

and highperformance

concepts2013

Introduction toArchestrA 2014Concepts: new

highperformance

graphic libraryHigh Speed

High Speed + Efficiency

High SpeedHigh Efficiency

Page 6: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Introduction GDI, GDI+

GDI GDI+

Obj.Transparency

Obj. Antialiasing

Fn1(x)

Fn2(x)

Windows 7 - WDDM v1.1

Slide 6

Obj. Antialiasing

Obj. TranslucencyFn2(x)

Fn3(x)Obj.Gradients

Page 7: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Introduction Glossary

1. GDI/GDI+

2. WDDM 1.0, 1.1, 1.2

3. Graphic Element

4. Symbol, Embedded Symbol

5. Graphic

6. Sprite

Slide 7

1. GDI/GDI+

2. WDDM 1.0, 1.1, 1.2

3. Graphic Element

4. Symbol, Embedded Symbol

5. Graphic

6. Sprite

Page 8: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Behind ArchestrA graphics: GDI+

Windows 7 (WDDM v1.1) saves one copy of the memory allocation perapplication window by getting rid of the system memory copy entirely. Thus,for a GDI application window visible on the desktop, the memory consumedis cut in half.

Slide 8

Page 9: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Behind ArchestrA graphics: GDI, GDI+

Slide 9

Page 10: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

ArchestrA Graphics Call-Up time baseconcepts

Retrieve Definition

Bind Data

Render

Continuous Updates

Close

Graphic Call-up Time

Static CPU Load

Memory Utilization

Slide 10

Retrieve Definition

Bind Data

Render

Continuous Updates

Close

Call-Up Time

Graphic Call-up Time

Static CPU Load

Memory Utilization

Retrieve Bind Render Continuous Close

Page 11: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: The contributorsSimplified overview on the main contributors to the time consumptionwhen showing an ArchestrA graphic

• Retrieve Definition: Size and complexity of the ArchestrA graphics

• Binding Data: Number of custom properties and references

• Rendering Time: Total number of simple and complex graphicelements, runtime graphical effects

• Waiting Data: Engine scan cycle, I/O speed, communication strategy

• Expression Evaluation: Total number, complexity, code efficiency

• Delta Rendering: Number of data changes + Total number of simpleand complex graphic elements, runtime graphical effects

Slide 11

Simplified overview on the main contributors to the time consumptionwhen showing an ArchestrA graphic

• Retrieve Definition: Size and complexity of the ArchestrA graphics

• Binding Data: Number of custom properties and references

• Rendering Time: Total number of simple and complex graphicelements, runtime graphical effects

• Waiting Data: Engine scan cycle, I/O speed, communication strategy

• Expression Evaluation: Total number, complexity, code efficiency

• Delta Rendering: Number of data changes + Total number of simpleand complex graphic elements, runtime graphical effects

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 12: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: Retrieve

Slide 12

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 13: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: Retrieval

View.exe

Glass

Bolts

Polygon6

Polygon5

Polygon4

Polygon3

Arrow

.

.

.

.

.

.

ObjectsInitialization

ArchestrAGraphicLibrary

Slide 13

=

DeserializationDefinitionFiles

Disk I/O Arc1

.

.

.

.

.

.

ArchestrAGraphicLibrary

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 14: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: RetrievalGlass

Bolts

Polygon6

Polygon5

Polygon4

Polygon3

Arrow

• Graphic element information

• Animations Initialization

• Scripting Interface Initialization

• Communication Interface Initialization

Slide 14

=

Arc1

.

.

.

.

• Graphic element information

• Animations Initialization

• Scripting Interface Initialization

• Communication Interface Initialization

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 15: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: Retrieval InTouchGlass

Bolts

Polygon6

Polygon5

Polygon4

Polygon3

Arrow

• Graphic element information

• Animations Initialization

• Scripting Interface Initialization

• Communication Interface Initialization

Slide 15

Arc1

.

.

.

.

• Graphic element information

• Animations Initialization

• Scripting Interface Initialization

• Communication Interface Initialization

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 16: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: Retrieval InTouchGlass

Bolts

Polygon6

Polygon5

Polygon4

Polygon3

Arrow

• Graphic element information

• Animations Initialization

• Scripting Interface Initialization

• Communication Interface Initialization

Slide 16

=

Arc1

.

.

.

.

• Graphic element information

• Animations Initialization

• Scripting Interface Initialization

• Communication Interface Initialization

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 17: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: Retrieval InTouchGlass

Bolts

ObjectsInitialization

Polygon6

Polygon5

Polygon4

Polygon3

Arrow

• Graphic element information

• Animations Initialization

• Scripting Interface Initialization

• Communication Interface Initialization

Slide 17

Arc1

.

.

.

.

• Graphic element information

• Animations Initialization

• Scripting Interface Initialization

• Communication Interface Initialization

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 18: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: Retrieval InTouch

A simple ArchestrA Graphic Element is not just a representation on thescreen, it is part and able to interact dynamically with the entireArchestrA framework:

• Graphic Definition

• Animations

• Scripting

• Communication

Line=

Slide 18

A simple ArchestrA Graphic Element is not just a representation on thescreen, it is part and able to interact dynamically with the entireArchestrA framework:

• Graphic Definition

• Animations

• Scripting

• Communication

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 19: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: Retrieval ArchestrA

The Simplest mitigation method for addressing slow retrieval ofArchestrA graphic shown using the new API ShowGraphic or theShowSymbol animation is to use the fastest disk IO available.

• SSD vs traditional Drives

Slide 19

The Simplest mitigation method for addressing slow retrieval ofArchestrA graphic shown using the new API ShowGraphic or theShowSymbol animation is to use the fastest disk IO available.

• SSD vs traditional Drives

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 20: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: Retrieval InTouch

The Simplest mitigation method for addressing slow InTouch Windowscall up times is to “uncheck” load windows from disk (pre 2012)

• This does not change the initial draw times but all subsequent drawtimes are faster.

• This method has had limitations that have been more commonlyreached when using ArchestrA graphics

– Memory limitations are reached

– When limitations are reached in WindowViewer, new opened windows canresult in lower performance.

Slide 20

The Simplest mitigation method for addressing slow InTouch Windowscall up times is to “uncheck” load windows from disk (pre 2012)

• This does not change the initial draw times but all subsequent drawtimes are faster.

• This method has had limitations that have been more commonlyreached when using ArchestrA graphics

– Memory limitations are reached

– When limitations are reached in WindowViewer, new opened windows canresult in lower performance.

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 21: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: Retrieval 2012 R2

Slide 21

Page 22: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: In-Memory WindowCachingInTouch 2012 Enhancements

• The total amount of memory accessible to WindowViewer has beenextended to the maximums by default.

– 2 Gb on 32 bit OS; 3 Gb on 64 bit OS

• The memory cache will remove oldest windows from the cache tomake room for new windows being opened.

– First in/First out and time based aging

• Windows that are a high priority for fast access can be designatedwhich will result in them being always considered recent.

• ArchestrA Graphics memory footprint has been reduced by 15%

Slide 22

InTouch 2012 Enhancements

• The total amount of memory accessible to WindowViewer has beenextended to the maximums by default.

– 2 Gb on 32 bit OS; 3 Gb on 64 bit OS

• The memory cache will remove oldest windows from the cache tomake room for new windows being opened.

– First in/First out and time based aging

• Windows that are a high priority for fast access can be designatedwhich will result in them being always considered recent.

• ArchestrA Graphics memory footprint has been reduced by 15%

Page 23: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Retrieve: Element GroupingWhen using the Grouping mechanism in graphics there is an

optimization done for groups with no animation. The group ishandled as an image.

The Tank on the leftopens in half the timewith half the static CPUload of the tank on theright.Top PerformanceConfiguration:• 1 Base Group

Animations• 1 Base Group Static

elements.

Slide 23

The Tank on the leftopens in half the timewith half the static CPUload of the tank on theright.Top PerformanceConfiguration:• 1 Base Group

Animations• 1 Base Group Static

elements.

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 24: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Element Grouping: 200 bytes eachIf an ArchestrA graphic was serialized on XML, a group would look like

this:

<GraphicElements>

<Group Left="50" Top="50" Width="492" Height="766"TreatAsIcon="False" Name="Group1" HasTransform="False"Enabled="True" Locked="False" TabStop="True" TabOrder="0"Visible="True" ElementID="224" Square="False" Transparency="0"Dock="None" AutoSize="False" AutoSizeMode="GrowOnly"Anchor="None" OriginX="0" OriginY="0" HasFillStyleData="True"HasLineStyleData="True" HasTextStyleData="True">

<FillStyleData VerticalPercentFill="100" HorizontalPercentFill="100">

<FillStyle>…

Slide 24

If an ArchestrA graphic was serialized on XML, a group would look likethis:

<GraphicElements>

<Group Left="50" Top="50" Width="492" Height="766"TreatAsIcon="False" Name="Group1" HasTransform="False"Enabled="True" Locked="False" TabStop="True" TabOrder="0"Visible="True" ElementID="224" Square="False" Transparency="0"Dock="None" AutoSize="False" AutoSizeMode="GrowOnly"Anchor="None" OriginX="0" OriginY="0" HasFillStyleData="True"HasLineStyleData="True" HasTextStyleData="True">

<FillStyleData VerticalPercentFill="100" HorizontalPercentFill="100">

<FillStyle>…

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 25: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Element Grouping performance impacton Retrieve

DEMO

Example_0001

Step 1 and 5

Impact on loading time

Slide 25

DEMO

Example_0001

Step 1 and 5

Impact on loading time

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 26: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: Data Binding

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Slide 26

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 27: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: Data BindingData binding is affected first of all by the total number of referencespresent in your ArchestrA graphics.

• Use a clever organization of the information: 1 integer customproperty instead of 16 Boolean custom properties when designing asymbol that will be used across all the graphics of your application(icons, alarm states)

• Try to avoid redundant information by reusing Custom Properties forthe embedded symbols. Clever use of Private/Public

• Use of Owning Object/SetCustomProperty/ShowGraphic

Slide 27

Data binding is affected first of all by the total number of referencespresent in your ArchestrA graphics.

• Use a clever organization of the information: 1 integer customproperty instead of 16 Boolean custom properties when designing asymbol that will be used across all the graphics of your application(icons, alarm states)

• Try to avoid redundant information by reusing Custom Properties forthe embedded symbols. Clever use of Private/Public

• Use of Owning Object/SetCustomProperty/ShowGraphic

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 28: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

InTouch tags show the last known value immediately, while ArchestrAcommunications will identify initializing data. Once the graphic hasbeen fully rendered, the data required by the window must beinitialized and this can result in a slow operator experience.

Call Up Time: Data BindingShowSymbol/ShowGraphic pre 2012R2

Slide 28

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 29: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

• How to improve the binding time?

– “Round robin” considerations

•GR or not GR ?

•MyContainer / myArea / myEngine Vs Static References– For top performance uses Static References. (me.attribute is considered

static reference)

– Intouch:MemoryTags

– Redirection using OwningObject (improved reference binding algorithm)

– SetCustomPropertyValue (script execution time reduced by 80%)

– SHOW GRAPHIC IMPROVEMENTS “INTRO”

Call Up Time: Data Binding

Slide 29

• How to improve the binding time?

– “Round robin” considerations

•GR or not GR ?

•MyContainer / myArea / myEngine Vs Static References– For top performance uses Static References. (me.attribute is considered

static reference)

– Intouch:MemoryTags

– Redirection using OwningObject (improved reference binding algorithm)

– SetCustomPropertyValue (script execution time reduced by 80%)

– SHOW GRAPHIC IMPROVEMENTS “INTRO”

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 30: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

From the OPC DI manual:

The item syntax for array elements is<sg>.Attribute(<item>)[<index>]

DI objects are special Objects with Dynamic arrays and properties.

The Attribute() keyword is used to identify which references are IOproperties of the DI objects from internal dynamic properties.

ALWAYS use the Attribute() keyword in your references.

Call Up Time: Hitting GR Node

Slide 30

From the OPC DI manual:

The item syntax for array elements is<sg>.Attribute(<item>)[<index>]

DI objects are special Objects with Dynamic arrays and properties.

The Attribute() keyword is used to identify which references are IOproperties of the DI objects from internal dynamic properties.

ALWAYS use the Attribute() keyword in your references.

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 31: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Possible Scenarios:

• Turning off many PLCS will cause a lot of references to go bad andwill hit the GR node causing poor performance to the GR node.

• DI Objects undeploy

• Massive use of relative references

The importance of monitor binding counts:

Logger: wwpackageserver ReferenceBinding

ObjectViewer: GRNodePlatform.GR.BindCnt

Call Up Time: Hitting GR Node

Slide 31

Possible Scenarios:

• Turning off many PLCS will cause a lot of references to go bad andwill hit the GR node causing poor performance to the GR node.

• DI Objects undeploy

• Massive use of relative references

The importance of monitor binding counts:

Logger: wwpackageserver ReferenceBinding

ObjectViewer: GRNodePlatform.GR.BindCnt

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 32: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: Hitting GR Node

Example of anOPC DI objectUndeploy andDeploy

Slide 32

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 33: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: Hitting GR Node

•TEST CASE•Number of Off Line Platforms•Number Off Line redundant Platforms

Slide 33

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 34: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

• How to improve the binding time?

– Redirection using OwningObject property (improved reference bindingalgorithm)

– Redirection using SetCustomPropertyValue function (script execution timereduced by 80%)

– Redirection using Show Graphic

Call Up Time: Data Binding

Slide 34

• How to improve the binding time?

– Redirection using OwningObject property (improved reference bindingalgorithm)

– Redirection using SetCustomPropertyValue function (script execution timereduced by 80%)

– Redirection using Show Graphic

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 35: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

The new “ShowGraphic” function extends the flexibility of the productand improves the concept of OwningObject and DynamicReferences: everything is now embedded parameter of the mainfunction and natively resolved.

Call Up Time: Data Binding

Slide 35

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 36: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Dim graphicInfo as aaGraphic.GraphicInfo;

Dim cpValues [2] as aaGraphic.CustomPropertyValuePair;

cpValues[1] = new aaGraphic.CustomPropertyValuePair("CP1", 20, true);

cpValues[2] = new aaGraphic.CustomPropertyValuePair("CP2", "Pump.PV.TagName", false);

graphicInfo.Identity = "i1";

graphicInfo.GraphicName = "S1";

graphicInfo.OwningObject = "UserDefined_001";

graphicInfo.WindowTitle = "ShowGraphic";

graphicInfo.Resizable = false;

graphicInfo.CustomProperties=cpValues;

ShowGraphic( graphicInfo );

Call Up Time: ShowGraphic

Slide 36

Dim graphicInfo as aaGraphic.GraphicInfo;

Dim cpValues [2] as aaGraphic.CustomPropertyValuePair;

cpValues[1] = new aaGraphic.CustomPropertyValuePair("CP1", 20, true);

cpValues[2] = new aaGraphic.CustomPropertyValuePair("CP2", "Pump.PV.TagName", false);

graphicInfo.Identity = "i1";

graphicInfo.GraphicName = "S1";

graphicInfo.OwningObject = "UserDefined_001";

graphicInfo.WindowTitle = "ShowGraphic";

graphicInfo.Resizable = false;

graphicInfo.CustomProperties=cpValues;

ShowGraphic( graphicInfo );

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 37: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: Rendering

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Slide 37

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 38: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: RenderingThe rendering time is impacted by the high number of primitiveinvokes: each single line, circle, textbox we are drawing has a cost.

• Extremely high definition of small details can impact the renderingperformance

• Reusing multiple times an extremely hi detailed small icon symbolcan reduce the rendering performance of the entire application

• Gradients, transparencies, graphical effects that need runtimecalculation can impact rendering performance (CPU vs GPU: GDI+ vsGDI)

Slide 38

The rendering time is impacted by the high number of primitiveinvokes: each single line, circle, textbox we are drawing has a cost.

• Extremely high definition of small details can impact the renderingperformance

• Reusing multiple times an extremely hi detailed small icon symbolcan reduce the rendering performance of the entire application

• Gradients, transparencies, graphical effects that need runtimecalculation can impact rendering performance (CPU vs GPU: GDI+ vsGDI)

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 39: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: RenderingThe Urban Legend

Is it more efficient to include 1000ArchestrA Graphics in one InTouch window,or to have 1 ArchestrA Graphic containing1000 embedded ArchestrA graphics?• 1 ArchestrA Graphic with 1000 graphics:

as mentioned before, each invoke has acost. 1000 InTouch calls to the ArchestrAgraphic library vs. only 1.

• 2 You are ready for the future! ArchestrAgraphics are ready to evolve takingadvantage of the next evolutions of the.NET framework.

Slide 39

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

• 1 ArchestrA Graphic with 1000 graphics:as mentioned before, each invoke has acost. 1000 InTouch calls to the ArchestrAgraphic library vs. only 1.

• 2 You are ready for the future! ArchestrAgraphics are ready to evolve takingadvantage of the next evolutions of the.NET framework.

Page 40: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: Rendering Gradients

The definition of gradients are the colors and the type of gradients.

• All of the individual colors are calculated at runtime when initiallyrendered and any time an animation changes the gradient.

– When large numbers of graphic elements (1000’s) using gradients are usedthe impact can be severe.

• This information consumes more memory than a solid fill.

• Be careful of a larger number of small graphic elements usinggradients. The effect may be minimal visually but severe in terms ofperformance.

• Transparencies have a similar performance impact.

Slide 40

The definition of gradients are the colors and the type of gradients.

• All of the individual colors are calculated at runtime when initiallyrendered and any time an animation changes the gradient.

– When large numbers of graphic elements (1000’s) using gradients are usedthe impact can be severe.

• This information consumes more memory than a solid fill.

• Be careful of a larger number of small graphic elements usinggradients. The effect may be minimal visually but severe in terms ofperformance.

• Transparencies have a similar performance impact.

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 41: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: Rendering Gradients

Same Embedded Symbol (justresized)

• Same Detail

• Same Calculations

• Same Cost

• Different Visual Value

• A simple PNG image, is this caseperform much better.

Slide 41

Same Embedded Symbol (justresized)

• Same Detail

• Same Calculations

• Same Cost

• Different Visual Value

• A simple PNG image, is this caseperform much better.

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 42: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Symbol Embedding Pitfall ExampleStatus Symbol is created.

This will be used on everypiece of equipment.

There may be hundreds onthe window.

It is made of many largedetailed elements.

Slide 42

Status Symbol is created.

This will be used on everypiece of equipment.

There may be hundreds onthe window.

It is made of many largedetailed elements.

Page 43: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Effects Vs Efficiency

• Which information the gradient is adding to the operator ?

• Which information the icon is adding to the operator ?

• Which priority is the Alarm ? All Icons have the same color.

Slide 43

• Which information the gradient is adding to the operator ?

• Which information the icon is adding to the operator ?

• Which priority is the Alarm ? All Icons have the same color.

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 44: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Effects Vs Efficiency

• Which valve is in Alarm ?

• Which priority is the Alarm ?

Slide 44

Page 45: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Effects Vs Efficiency

• Which valve is in Alarm ?

• Which priority is the Alarm ?

Slide 45

Page 46: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Behind ArchestrA graphics: RemoteDesktop Protocol

Remote Desktop Protocol: GDI Acceleration Extension

<<..For example, instead of sending the bitmap image of a filledrectangle from server to client, an order to render a rectangle atcoordinate (X, Y) with a given width, height, and fill color is sent tothe client. The client then executes the drawing order to producethe intended graphics result..>>

+ COMPRESSION

+ SECURE LAYER

http://msdn.microsoft.com/en-us/library/cc239611.aspx

Slide 46

Remote Desktop Protocol: GDI Acceleration Extension

<<..For example, instead of sending the bitmap image of a filledrectangle from server to client, an order to render a rectangle atcoordinate (X, Y) with a given width, height, and fill color is sent tothe client. The client then executes the drawing order to producethe intended graphics result..>>

+ COMPRESSION

+ SECURE LAYER

http://msdn.microsoft.com/en-us/library/cc239611.aspx

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 47: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

RDP Order message example

Slide 47

Page 48: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Rendering Performance Demo

Application Server 2014 introduces KPI to evaluate general Symbolperformance.

How to use RDP to measure rendering performance of our ArchestrAgraphics.

• Simulate the process

• Performance Monitor

• Network Interface – BytesSent/Sec.

Slide 48

Application Server 2014 introduces KPI to evaluate general Symbolperformance.

How to use RDP to measure rendering performance of our ArchestrAgraphics.

• Simulate the process

• Performance Monitor

• Network Interface – BytesSent/Sec.

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 49: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Rendering Performance Demo

Standard ArchestrA Graphic 463 Kbytes/sec

Slide 49

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 50: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Rendering Performance Demo

Optimized 1 ArchestrA Graphic 335 Kbytes/sec

• PRO: Bandwidth and Rendering performance optimized ! (-28%)

• CONS: a lot of Variation in the rendering performance

Slide 50

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 51: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Rendering Performance Demo

Optimized Sprite TIFF 298 Kbytes/sec

• PRO: Bandwidth and Rendering performance optimized ! ( -32% )

• PRO: less Variation: more consistent rendering performance

• CONS: extra work designing graphics “sprite oriented”

Slide 51

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 52: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Rendering Performance Demo

TEST: What is this trend about ?

Slide 52

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 53: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Rendering Performance Demo

Animating something on top of something else, willcause sprite repaint.

Slide 53

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 54: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Rendering Performance Demo

Demo:• Example_0003• Example_0004• Monitor Network• Delta bandwidth between the two implementations

Slide 54

Demo:• Example_0003• Example_0004• Monitor Network• Delta bandwidth between the two implementations

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 55: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Rendering Performance

Recommendation:• Top performance: when designing big graphics with

high number of moving elements always consider toreduce as much as possible background details.

• Example from “HMI handbook”: the indicator ismoving on a clean background!

Slide 55

Recommendation:• Top performance: when designing big graphics with

high number of moving elements always consider toreduce as much as possible background details.

• Example from “HMI handbook”: the indicator ismoving on a clean background!

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 56: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Rendering Performance Demo

Simple test to verify rendering performance

Rendering Time : ALT + TAB

• Standard Symbol Slow

• Optimized Symbol 1 Good

• Optimized Symbol 2 Fast Rendering

• Optimized Symbol Sprite TIFF Fastest Rendering

Slide 56

Simple test to verify rendering performance

Rendering Time : ALT + TAB

• Standard Symbol Slow

• Optimized Symbol 1 Good

• Optimized Symbol 2 Fast Rendering

• Optimized Symbol Sprite TIFF Fastest Rendering

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 57: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: Waiting data

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Slide 57

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 58: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call-Up Time: Waiting for Data

Recap on where we are now:

• Graphic has been loaded

• References have been subscribed and activated

• Graphic has been presented to the user

• We are waiting for a new value: comparison Active All / Active onDemand.

Slide 58

Recap on where we are now:

• Graphic has been loaded

• References have been subscribed and activated

• Graphic has been presented to the user

• We are waiting for a new value: comparison Active All / Active onDemand.

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 59: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call-Up Time Advanced concepts: Activeon Demand

Call-Up Time

Retrieve RenderBind Close

Waiting Data…

ArchestrAGraphic

Engine DI OBJECT 1 Sec. 1 Sec. 1 Sec. 1 Sec.

ExpressionsEvaluation

Continuous

Delta ExpressionsEvaluation

Delta ExpressionsEvaluation

Cached Data

Slide 59

OPERATOR REQUEST NEW VALUES

DAS 1 Sec. 1 Sec. 1 Sec. 1 Sec.

Control Layer

ACT

TAG ACTIVE

DataChange

Read Read Read Read

DataChange

DataChange

Page 60: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call-Up Time Advanced concepts:ActiveAll

Call-Up Time

Retrieve RenderBind Close

Waiting Data…

ArchestrAGraphic

Engine DI OBJECT 1 Sec. 1 Sec. 1 Sec. 1 Sec.

ExpressionsEvaluation

Continuous

Delta ExpressionsEvaluation

Delta ExpressionsEvaluation

ExpressionsEvaluation

Slide 60

OPERATOR REQUEST NEW VALUES

DAS 1 Sec. 1 Sec. 1 Sec. 1 Sec.1 Sec.

Control Layer

TAG ACTIVE

DataChange

DataChange

DataChange

Page 61: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: Static CPU utilization

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Slide 61

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 62: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Static CPU Utilization

Once a window has been rendered on the screen there are factors thatcan result in a greater CPU utilization.

When this occurs there can be other impacts:

• System becomes unresponsive

• Fewer Terminal Server Sessions can be run on the server as othersessions become unresponsive.

• There are many contributing factors

Slide 62

Once a window has been rendered on the screen there are factors thatcan result in a greater CPU utilization.

When this occurs there can be other impacts:

• System becomes unresponsive

• Fewer Terminal Server Sessions can be run on the server as othersessions become unresponsive.

• There are many contributing factors

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 63: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

BitmapsArchestrA Graphics support multiple formats (BMP, GIF, JPG, TIF, PNG,

ICO, EMF). Bitmaps are the most expensive but also most common.

Format Typical CompressionRatios

Description

GIF 4:1 - 10:1 Lossless for images <=256 colors. Works best for flat color, sharp-edged art. Horizontally oriented bands of color compress better thanvertically oriented bands.

JPEG (High) 10:1 - 20:1 High quality - has little or no loss in image quality with continuoustone originals. Worse results for flat color and sharp-edge art.

Slide 63

High quality - has little or no loss in image quality with continuoustone originals. Worse results for flat color and sharp-edge art.

JPEG(Medium)

30:1 - 50:1 Moderate quality - usually the best choice for the Web.

JPEG (Low) 60:1 - 100:1 Poor quality - suitable for thumbnails and previews. Visible blockiness(pixelation).

PNG 10-30% smaller than GIFs PNG's behave similarly to GIFs only better; they work best with flat-color, sharp-edged art. PNGs compress both horizontally andvertically, so solid blocks of color generally compress best.

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 64: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Bitmap Common Pitfalls

• Embed a large picture and resize toa small one

• Both take the same size on disk

• Retake image at smaller size andsave as compressed format

Slide 64

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

10 Mbytes picture

Page 65: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Which value has the logo for theoperator ?

• What about a clock?

• What about key KPIs?

– Alarm rate Alarms/Hour

– Pieces per Minute

– Batch: Runs per week

Slide 65

• What about a clock?

• What about key KPIs?

– Alarm rate Alarms/Hour

– Pieces per Minute

– Batch: Runs per week

Page 66: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Animations impact on CPUAlways consider the size of the graphic elements you are moving on the screen

and the complexity of the background.

Demo: TREND Example_0001_Step7

• Static CPU Utilization DEMO

• From 85%+ of 1 CPU to 9% of 1 CPU

Slide 66

Always consider the size of the graphic elements you are moving on the screenand the complexity of the background.

Demo: TREND Example_0001_Step7

• Static CPU Utilization DEMO

• From 85%+ of 1 CPU to 9% of 1 CPU

Page 67: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Custom Property Density

Custom Properties have been greatly optimized in InTouch 2012 whichhas resulted in better performance.

Some customers have ended up with 20,000 plus custom properties ona symbol.

Typically an impact of embedding many symbols at many levels.

Should consider necessity of the variables and consider if they shouldreside server side.

• Is it needed for graphic presentation?

• Is the value specific to only this workstation?

Slide 67

Custom Properties have been greatly optimized in InTouch 2012 whichhas resulted in better performance.

Some customers have ended up with 20,000 plus custom properties ona symbol.

Typically an impact of embedding many symbols at many levels.

Should consider necessity of the variables and consider if they shouldreside server side.

• Is it needed for graphic presentation?

• Is the value specific to only this workstation?

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 68: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Multi-Variable Expressions

Each variable must be subscribed, bound and published individually.

• Can the calculation be done server side?

• Is the value specific to this specific workstation?

Expressions are ad-hoc scripts and require execution.

• The AppEngine is better suited to executing volumes of scripts andshould be used to handle load where possible.

Slide 68

Each variable must be subscribed, bound and published individually.

• Can the calculation be done server side?

• Is the value specific to this specific workstation?

Expressions are ad-hoc scripts and require execution.

• The AppEngine is better suited to executing volumes of scripts andshould be used to handle load where possible.

Page 69: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Expressions: code efficiencyAvoid high number of Expressions with string operations like:

• String find

• String replace

If you cannot avoid, use the .net system.string class functions.

ArchestrA strings functions are designed for automation and aregeneral purpose, the built in functions are not Top Performancefunctions. General recommendation check .net documentation for thefunction that best fit your requirements.

System.String.Concat, Join, “+”, StringBuilder

System.String.Contains

System.String.IndexOf

Slide 69

Avoid high number of Expressions with string operations like:

• String find

• String replace

If you cannot avoid, use the .net system.string class functions.

ArchestrA strings functions are designed for automation and aregeneral purpose, the built in functions are not Top Performancefunctions. General recommendation check .net documentation for thefunction that best fit your requirements.

System.String.Concat, Join, “+”, StringBuilder

System.String.Contains

System.String.IndexOf

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 70: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Script Utilization

ArchestrA Graphics are extremely flexible in their ability to executescripts (On Show, While Showing, On Close, Data Change,Condition). Carefully plan the usage of scripts that will cyclicallyexecute.

• If you are setting a script to run every 50ms, why?

• Is every execution needed? Is the same result calculated over andover?

• How many scripts are in the symbol?

• How many instances of the symbol will be used?

• Can the script be server side?

Slide 70

ArchestrA Graphics are extremely flexible in their ability to executescripts (On Show, While Showing, On Close, Data Change,Condition). Carefully plan the usage of scripts that will cyclicallyexecute.

• If you are setting a script to run every 50ms, why?

• Is every execution needed? Is the same result calculated over andover?

• How many scripts are in the symbol?

• How many instances of the symbol will be used?

• Can the script be server side?

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 71: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

CPU affinity for terminal server

Slide 71

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 72: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Call Up Time: 360 degree

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Slide 72

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 73: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Symbol Embedding

The implications of embedding symbols are often not considered.

• When embedding several layers of symbols, remember that the finalsymbol will have every custom property, script, and graphic elementfrom all of the individual symbols.

• Layering/stacking and then resizing symbols is very easy to do butcomes at a cost.

• Are there details on the symbols that are not visible at the size it isembedded?

Slide 73

The implications of embedding symbols are often not considered.

• When embedding several layers of symbols, remember that the finalsymbol will have every custom property, script, and graphic elementfrom all of the individual symbols.

• Layering/stacking and then resizing symbols is very easy to do butcomes at a cost.

• Are there details on the symbols that are not visible at the size it isembedded?

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 74: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Symbol Embedding

Name,X,Y,Width,Height,angle,absoluteorigin,transparency,locked,dynamicsizechange,anchorpoint

Symbol 1

Name,X,Y,Width,Height,angle,absoluteorigin,transparency,locked,dynamicsizechange,anchorpoint

Symbol 3

Graphic Element

Name,X,Y,Width,Height,angle,absoluteorigin,transparency,locked,dynamicsizechange,anchorpoint

Symbol 2

Nameicsizechange,anchorpoint

Symbol3

Graphic Element

Name,X,Y,Width,Height,angle,absoluteorigin,transparency,locked,dynamicsizechange,anchorpoint

Symbol 2

Nameicsizechange,anchorpoint

Symbol3

Graphic Element

Slide 74

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 75: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Symbol Embedding

Name,X,Y,Width,Height,angle,absoluteorigin,transparency,locked,dynamicsizechange,anchorpoint

Symbol 1

Name,X,Y,Width,Height,angle,absoluteorigin,transparency,locked,dynamicsizechange,anchorpoint

Symbol 3

Graphic Element

Name,X,Y,Width,Height,angle,absoluteorigin,transparency,locked,dynamicsizechange,anchorpoint

Symbol 2

Nameicsizechange,anchorpoint

Symbol3

Graphic Element

Name,X,Y,Width,Height,angle,absoluteorigin,transparency,locked,dynamicsizechange,anchorpoint

Symbol 2

Nameicsizechange,anchorpoint

Symbol3

Graphic Element

Slide 75

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Definition of the Symbol cost 430 bytes

Page 76: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Symbol Embedding

430 BYTES !!!Common reaction

in the3rd millennium.

Slide 76

430 BYTES !!!Common reaction

in the3rd millennium.

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 77: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Symbol Embedding example

430 bytes.

Name,X,Y,Width,Height,angle,absoluteorigin,transparency,locked,dynamicsizechange,anchorpoint

Final Valve Symbol

########

Slide 77

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Graphic Elements########

Intermediate Symbols

14 Intermediate Symbols, for the base valve symbol.

Page 78: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Symbol Embedding Impact on a huge Applications

430 bytes* 15 Embeds levels

* 200 graphics*337 windows/popups

=434’730’000 bytes

a.k.a. 434 MegaBytesa.k.a. 0.434 GigaBytes

Slide 78

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

430 bytes* 15 Embeds levels

* 200 graphics*337 windows/popups

=434’730’000 bytes

a.k.a. 434 MegaBytesa.k.a. 0.434 GigaBytes

Page 79: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Symbol Embedding Impact on a huge Applications

DEMOExample_0001Step 1 and 3

Impact on loading time

Slide 79

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

DEMOExample_0001Step 1 and 3

Impact on loading time

Page 80: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Hardware Choices

What hardware choices can be made to give best results?

1. Fast CPU Clock – (WindowViewer only uses one processor/core, so afaster dual core is preferred over a slower quad core).

2. Available RAM – Have 3Gb available for each WindowViewer session

3. Fast Hard Drive – Solid State

4. FAST GPU

Slide 80

What hardware choices can be made to give best results?

1. Fast CPU Clock – (WindowViewer only uses one processor/core, so afaster dual core is preferred over a slower quad core).

2. Available RAM – Have 3Gb available for each WindowViewer session

3. Fast Hard Drive – Solid State

4. FAST GPU

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 81: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Do Graphics Have to be Simple toPerform?

Call up time is under 1 secand static CPU load is~1%.

DO SIMPLE GRAPHICSALWAYS PERFORM ?

Slide 81

Call up time is under 1 secand static CPU load is~1%.

DO SIMPLE GRAPHICSALWAYS PERFORM ?

Page 82: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Do Graphics Have to be Simple toPerform?

Does the graphic that I just show you really perform ?

Which equipment we were looking at ?

Which information it was showing ?

Which values where you able to read ?

How many analog ?

Was the system happy or in trouble ?

Slide 82

Does the graphic that I just show you really perform ?

Which equipment we were looking at ?

Which information it was showing ?

Which values where you able to read ?

How many analog ?

Was the system happy or in trouble ?

Page 83: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

What is this graphic about ?

Slide 83

Page 84: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Development PerformanceConsiderationsPerformance impact on IDE using ArchestrA graphics:

Slide 84

$Template1.Graphic1

CustomProperty1/ Reference1

CustomPropertyN/ ReferenceN

..

.

Page 85: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Development PerformanceConsiderationsPerformance impact on IDE using ArchestrA graphics:

Slide 85

$Template1.Graphic1

Instance1.Graphic1

CustomPropertyN/ ReferenceN

..

.

CustomProperty1/ Reference1

Page 86: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Development PerformanceConsiderationsPerformance impact on IDE using ArchestrA graphics:

Instance4.Graphic1

Instance5.Graphic1

Slide 86

$Template1.Graphic1

Instance1.Graphic1

Instance2.Graphic1

Instance3.Graphic1

Instance4.Graphic1

Page 87: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Development PerformanceConsiderationsPerformance impact on IDE using ArchestrA graphics:

Instance4.Graphic1

Slide 87

THIS IS NOT A BUG !

IT IS JUST A SPIDER$Template1.Graphic1

Instance1.Graphic1

Instance2.Graphic1

Instance3.Graphic1

Instance4.Graphic1

$Template1.Graphic2

Instance1.Graphic2 Instance2.Graphic2

Page 88: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Development PerformanceConsiderations• Do not define 100 graphics in the base valve template if you

are planning to have 5000 instances of the specific valve,propagation of a small change will take hours.

• ArchestrA System Platform 2012 has a lot of improvements to addressIDE performance.

• Invensys development is still working to improve in future versionsIDE performance.

Slide 88

• Do not define 100 graphics in the base valve template if youare planning to have 5000 instances of the specific valve,propagation of a small change will take hours.

• ArchestrA System Platform 2012 has a lot of improvements to addressIDE performance.

• Invensys development is still working to improve in future versionsIDE performance.

Page 89: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

1. Development Performance vs. Runtime Performance

1.Never use the Development experience to evaluate the performance of yourArchestrA graphic application. Short overview and description on theArchestrA graphics SQL storage layer and architecture.

Development PerformanceConsiderations

Slide 89

CloseRetrieve RenderBind Waiting Data… ExpressionEvaluation

Render

Page 90: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Visualization Stability Enhancements inInTouch 2012Problems

• Windows based on A2 Graphics

– Render slow compared to nativeInTouch

– Consume more memory thancomparable native InTouch

• InTouch runs on CPU-0 regardless ofthe number of cores

InTouch 2012 Approach

• Refactored various internalcomponents of A2 Graphics toreduce memory footprint in runtime(Removed design time data fromruntime environment)

• Refactored Custom Property codeand SetCustomPropertyValuefunction for improved data bindingperformance

• Support binding to any core in thecomputer (still runs in a single core)

Slide 90

Problems

• Windows based on A2 Graphics

– Render slow compared to nativeInTouch

– Consume more memory thancomparable native InTouch

• InTouch runs on CPU-0 regardless ofthe number of cores

InTouch 2012 Approach

• Refactored various internalcomponents of A2 Graphics toreduce memory footprint in runtime(Removed design time data fromruntime environment)

• Refactored Custom Property codeand SetCustomPropertyValuefunction for improved data bindingperformance

• Support binding to any core in thecomputer (still runs in a single core)

Page 91: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

ReferencesTech Note 628

Advanced Communication Management for Application Server

Tech Note 644Improving Application Performance with ArchestrA Graphics

The high performance HMI handbookImproving Application Performance with ArchestrA Graphics

Slide 91

Page 92: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Contributors• Marilou Aguinaldo, Invensys Senior Technical Support Engineer

• John Krajewski, Invensys Product Manager HMI/SCADA

• Ryan Van Slooten, Invensys ArchestrA Application Specialist

• Ken Cook, Invensys ArchestrA Applications Consultant

• Bruce Schultz, Invensys Principal Software Development Engineer

• TopoGigia

Slide 92

• Marilou Aguinaldo, Invensys Senior Technical Support Engineer

• John Krajewski, Invensys Product Manager HMI/SCADA

• Ryan Van Slooten, Invensys ArchestrA Application Specialist

• Ken Cook, Invensys ArchestrA Applications Consultant

• Bruce Schultz, Invensys Principal Software Development Engineer

• TopoGigia

Page 93: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Questions?

Slide 93

THANK YOU

Page 94: SAMC 2013 Breakout Session PPT Templateiom.invensys.com/EN/userGroupsPresentationsDallas2013/Wonderware… · SAMC 2013 Breakout Session PPT Template

Slide 94