DanielRodriguescernch Ultrathin Client Ultrathin Client Overview Architecture Performance Testing Using the UltrathinClient out of the box GWT demo WinCC OA UltraThinClient FWWG December 2011 ID: 785390
Download The PPT/PDF document "WinCC OA Ultra Thin Client" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
WinCC OA Ultra Thin Client
Daniel.Rodrigues@cern.ch
Slide2Ultrathin ClientUltrathin ClientOverview
Architecture
Performance
TestingUsing the UltrathinClient out of the boxGWT demo
WinCC
OA
UltraThinClient
, FWWG, December 2011
Slide3Ultra Thin Client Overview
For delivery in
WinCC
OA 3.11 Previewing in 3.10Fully Web Based Uses HTTP + SVG + JavascriptRequires SVG support…
Converted directly from xml Panels
with limitations!
WinCC
OA
UltraThinClient
, FWWG, December 2011
Slide4What’s SVGSVG: Scalable Vector Graphics
Specification developed by W3C
www.w3.org/Graphics/SVG
It is “A Markup Language for describing two-dimensional graphics applications and images and a set of related graphic script interfaces”Native support on most platforms
IE8 and older require a
plugin
… But available on IE9
WinCC OA UltraThinClient, FWWG, December 2011
Slide5Ultra Thin Client ArchitectureWinCC OA UltraThinClient, FWWG, December 2011
Basic building blocks:
CtrlXmlToSvg.dll
Converts XML based panels into SVG files
UltraThinClientServer.ctl
The http server
Loads
CtrlXmlToSVG
and handles http calls
data\http\
libs
\*.js filesObject specific
javascript
code
data\http\panels\*.svg
The panels, in SVG format
Slide6Ultra Thin Client ArchitectureWinCC OA UltraThinClient, FWWG, December 2011
Event Manager
Data
Manager
Ctrl Manager
UltraThinClientServer.ctl
CtrlXmlToSVG.dll
Initial process
HTTP request (panel.xml)
CtrlManager
creates panel.svg
Ctrl Manager sends panel.svg back to browser
dpSet
HTTP request (
dp,value
)
CtrlManager
does a PVSS
dpSet
(
dp
, value)
dpConnect
HTTP request (
dp,clientId
)
CtrlManager
does a
dpConnect
to the
eventManager
and adds
clientId to listSucessive HTTP requests (dp, clientid) CtrlManager eventually receives new valueBrowser receives value change
1
2
3
a
b
i
ii
iii
iii
iv
Slide7LimitationsWinCC OA UltraThinClient, FWWG, December 2011
It is not a full fledged UI Manager!
Basic communication with Server
dpSet
/
dpConnect
/ dpToggle / dpExists
/
dpTypeName
/
dpGetDescription
Limited number of Objects availableTextEdit (no multiline) RadioCheckbox
PushButton
(Toggle not working)
Basic Trend, Basic Alarm
Limited actions per object
Clicked, Command, Initialize
No double click, mouse*, keyboard*, drag* …
Global
ScopeLib
but no “#uses”No redirection when using dot notation “.”. Ex: MyText1.textAlways required to use “getValue/setValue” Ex: getValue(“MyText1”, “text”)A number of misconversions and bugsObjects in reference panels Toggle, Crash on many popups…
ETM is working on more objects getting translated. So you can still stick to develop in GEDI
Slide8Positives WinCC OA UltraThinClient, FWWG, December 2011
It is a real Web Based solution
Unlike
WebPlugin
It integrates quite well with the
Gedi
A few objects are already automatically converted
CTRL Scripts are translated to
javascript
“
Hackable”
All SVG and
javascript
libraries could be customized.
Scalable
One unique
dpConnect
call on many connected clients!
Slide9TestingWinCC OA UltraThinClient, FWWG, December 2011
Some tests where done to address performance
CPU usage
Loss of values
server: dual core x86 Pentium 3158Mhz
EV
DM
UIM
TestControl.pnl
CtrlM
UltraThinClientServer.ctl
VM….
Chrome
PerfTest.xml
VM1
Chrome
PerfTest.xml
VM2
Chrome
PerfTest.xml
VM3
Chrome
PerfTest.xml
ApiM
PerfMetrics.dll
Slide10TestingWinCC OA UltraThinClient, FWWG, December 2011
Test runs
#clients : 1 – 100
#dpConnects
/client : 1 – 99
#value changes : 1 – 25 (Hz)
How does CPU Load change with increasing number of clients and
dpConnects
?
How does CPU Load change with increasing frequency of changes on a
dpConnect
?Which losses of changes are observed?
Slide11How does CPU Load change with increasing number of clients and dpConnects?
CPU load
WinCC OA UltraThinClient, FWWG, December 2011
Slide12How does CPU Load change with increasing frequency of changes on a
dpConnect
?
CPU load
WinCC OA UltraThinClient, FWWG, December 2011
Slide13Which losses of dp value changes are observed?
Value Changes
WinCC OA UltraThinClient, FWWG, December 2011
Underlying:
A ‘
connectWait
’ interval is set to avoid excessive
cpuUsage
on the client
Value changes within this interval are dropped – a
noLoss
mechanism is possible
With low frequency, no value
losts
are observed, independently of the number of client connections
Slide14Other usesWinCC OA UltraThinClient, FWWG, December 2011
Event Manager
Data
Manager
Ctrl Manager
UltraThinClientServer.ctl
CtrlXmlToSVG.dll
HTTP
requests.
http://server//SET?dpname=‘
dpName
’
http://server//CONN?dpname=‘
dpName’&clientId
=‘
clientId
’
*.html
*.js
*.css
Slide15GWT plugin
WinCC OA UltraThinClient, FWWG, December 2011
UltraThinClient
Server is indeed an http serverIt’s not a formal Web Service, but it does the trick: you issue your query on an URL, you get a response.
http://pcen33050/GETID
http://pcen33050/SET?testPerformance1.testLog=ping
http://pcen33050/CONN?command=add&clientid=36&functid=0&dpe0=testPerformance1.testLog
http://pcen33050/CONN?command=connect&clientid=36&functid=0&dpe0=testPerformance1.testLog
We could eventually use any web framework
Using the
javascript
libraries made available by ETM
Developing your own (i.e., GWT or others)
Slide16GWT exampleWinCC OA UltraThinClient, FWWG, December 2011
Slide17WinCC OA UltraThinClient, FWWG, December 2011
Thank you for your attention.
Questions?
Slide18Ultra Thin Client ArchitectureWinCC OA UltraThinClient, FWWG, December 2011
Event Manager
Data
Manager
Ctrl Manager
UltraThinClientServer.ctl
CtrlXmlToSVG.dll
Initial process
HTTP request (panel.xml)
CtrlManager
creates panel.svg
Ctrl Manager sends panel.svg back to browser
dpSet
HTTP request (
dp,value
)
CtrlManager
does a PVSS
dpSet
(
dp
, value)
dpConnect
HTTP request (
dp,clientId
)
CtrlManager
does a
dpConnect
to the
eventManager
and adds
clientId to listSucessive HTTP requests (dp, clientid) CtrlManager eventually receives new valueBrowser receives value change
1
2
3
a
b
i
ii
iii
iii
iv