Export translations
Views
Special page
From OpenSCADAWiki
Jump to:
navigation
,
search
Settings
Group
About
Documents
Documents/API
Documents/DAQ
Documents/FAQ
Documents/How to
Documents/How to/Build from source
Documents/How to/Crash report
Documents/How to/Create module
Documents/How to/Create multi language project
Documents/How to/Cyclic programming
Documents/How to/Debug
Documents/How to/Install
Documents/How to/Live disk
Documents/How to/Release
Documents/How to/Transferring project configuration
Documents/How to/Violations, alarms and notifications
Documents/Program manual
Documents/Quick start
Documents/Release 0.8.0
Documents/Release 0.8.0/Update10
Documents/Release 0.8.0/Update11
Documents/Release 0.8.0/Update12
Documents/Release 0.8.0/Update13
Documents/Release 0.8.0/Update14
Documents/Release 0.8.0/Update15
Documents/Release 0.8.0/Update16
Documents/Release 0.8.0/Update17
Documents/Release 0.8.0/Update18
Documents/Release 0.8.0/Update19
Documents/Release 0.8.0/Update20
Documents/Release 0.8.0/Update3
Documents/Release 0.8.0/Update4
Documents/Release 0.8.0/Update5
Documents/Release 0.8.0/Update6
Documents/Release 0.8.0/Update7
Documents/Release 0.8.0/Update8
Documents/Release 0.8.0/Update9
Documents/Release 0.9
Documents/Release 0.9/Update 7
Documents/Release 0.9/Update 8
Documents/Release 0.9/Update1
Documents/Release 0.9/Update2
Documents/Release 0.9/Update3
Documents/Release 0.9/Update4
Documents/Release 0.9/Update5
Documents/Release 0.9/Update6
Documents/Release 0.9/Updating 0.8.0 LTS
Documents/Terms
Documents/User API
Functions and demands
Home
Libs
Libs/Devices
Libs/Documents
Libs/Electrical elements
Libs/Generic list
Libs/LowLevelDevices
Libs/Main
Libs/Main graphical elements
Libs/Mnemo elements
Libs/Prescriptions
Libs/Regulation elements
Libs/Service procedures
Libs/Technological apparatuses
Modules
Modules/BFN
Modules/BlockCalc
Modules/Comedi
Modules/DAQGate
Modules/DBArch
Modules/DBF
Modules/DBGate
Modules/DCON
Modules/DiamondBoards
Modules/FireBird
Modules/FLibComplex1
Modules/FLibMath
Modules/FLibSYS
Modules/FSArch
Modules/GPIO
Modules/HTTP
Modules/ICP DAS
Modules/JavaLikeCalc
Modules/LDAP
Modules/LogicLev
Modules/ModBus
Modules/MySQL
Modules/OPC UA
Modules/PostgreSQL
Modules/QTCfg
Modules/QTStarter
Modules/SelfSystem
Modules/Serial
Modules/Siemens
Modules/SMH2Gi
Modules/SNMP
Modules/Sockets
Modules/SoundCard
Modules/SQLite
Modules/SSL
Modules/System
Modules/SystemTests
Modules/UserProtocol
Modules/VCAEngine
Modules/Vision
Modules/WebCfg
Modules/WebCfgD
Modules/WebUser
Modules/WebVision
Sub-projects
Sub-projects/Automatic Builder of OpenSCADA
Sub-projects/Automation Linux distributive
Sub-projects/Embedding and PLC
Sub-projects/Server
Sub-projects/VCA
User:RomanSavochenko
Using
Using/HouseSpirit
Using/Kramatorsk Ball Mills
Using/Kramatorsk Water
Using/Model AGLKS
Using/Model Boiler
Using/OpenWrt TELEOFIS RTU968
Using/Yaroslavskij broiler
Works
Works/Road map
Works/Technical Support
Works/Technical Support/Agreement
Works/To do
Language
aa - Afar
ab - Abkhazian
ace - Achinese
ady - Adyghe
ady-cyrl - адыгабзэ
aeb - Tunisian Arabic
aeb-arab - تونسي
aeb-latn - Tûnsî
af - Afrikaans
ak - Akan
aln - Gheg Albanian
am - Amharic
an - Aragonese
ang - Old English
anp - Angika
ar - Arabic
arc - Aramaic
arn - Mapuche
arq - Algerian Arabic
ary - Moroccan Arabic
arz - Egyptian Arabic
as - Assamese
ase - American Sign Language
ast - Asturian
av - Avaric
avk - Kotava
awa - Awadhi
ay - Aymara
az - Azerbaijani
azb - تۆرکجه
ba - Bashkir
bar - Bavarian
bbc - Batak Toba
bbc-latn - Batak Toba
bcc - Southern Balochi
bcl - Bikol Central
be - Belarusian
be-tarask - Belarusian (Taraškievica orthography)
bg - Bulgarian
bgn - Western Balochi
bho - Bhojpuri
bi - Bislama
bjn - Banjar
bm - Bambara
bn - Bengali
bo - Tibetan
bpy - Bishnupriya
bqi - Bakhtiari
br - Breton
brh - Brahui
bs - Bosnian
bto - Iriga Bicolano
bug - Buginese
bxr - буряад
ca - Catalan
cbk-zam - Chavacano de Zamboanga
cdo - Min Dong Chinese
ce - Chechen
ceb - Cebuano
ch - Chamorro
cho - Choctaw
chr - Cherokee
chy - Cheyenne
ckb - Central Kurdish
co - Corsican
cps - Capiznon
cr - Cree
crh - Crimean Turkish
crh-cyrl - Crimean Turkish (Cyrillic script)
crh-latn - Crimean Turkish (Latin script)
cs - Czech
csb - Kashubian
cu - Church Slavic
cv - Chuvash
cy - Welsh
da - Danish
de - German
de-at - Austrian German
de-ch - Swiss High German
de-formal - German (formal address)
diq - Zazaki
dsb - Lower Sorbian
dtp - Central Dusun
dty - डोटेली
dv - Divehi
dz - Dzongkha
ee - Ewe
egl - Emilian
el - Greek
eml - Emiliano-Romagnolo
en - English
en-ca - Canadian English
en-gb - British English
eo - Esperanto
es - Spanish
et - Estonian
eu - Basque
ext - Extremaduran
fa - Persian
ff - Fulah
fi - Finnish
fit - Tornedalen Finnish
fj - Fijian
fo - Faroese
fr - French
frc - Cajun French
frp - Arpitan
frr - Northern Frisian
fur - Friulian
fy - Western Frisian
ga - Irish
gag - Gagauz
gan - Gan Chinese
gan-hans - Simplified Gan script
gan-hant - Traditional Gan script
gd - Scottish Gaelic
gl - Galician
glk - Gilaki
gn - Guarani
gom - Goan Konkani
gom-deva - Goan Konkani (Devanagari script)
gom-latn - Goan Konkani (Latin script)
got - Gothic
grc - Ancient Greek
gsw - Swiss German
gu - Gujarati
gv - Manx
ha - Hausa
hak - Hakka Chinese
haw - Hawaiian
he - Hebrew
hi - Hindi
hif - Fiji Hindi
hif-latn - Fiji Hindi (Latin script)
hil - Hiligaynon
ho - Hiri Motu
hr - Croatian
hrx - Hunsrik
hsb - Upper Sorbian
ht - Haitian Creole
hu - Hungarian
hy - Armenian
hz - Herero
ia - Interlingua
id - Indonesian
ie - Interlingue
ig - Igbo
ii - Sichuan Yi
ik - Inupiaq
ike-cans - Eastern Canadian (Aboriginal syllabics)
ike-latn - Eastern Canadian (Latin script)
ilo - Iloko
inh - Ingush
io - Ido
is - Icelandic
it - Italian
iu - Inuktitut
ja - Japanese
jam - Jamaican Creole English
jbo - Lojban
jut - Jutish
jv - Javanese
ka - Georgian
kaa - Kara-Kalpak
kab - Kabyle
kbd - Kabardian
kbd-cyrl - Адыгэбзэ
kg - Kongo
khw - Khowar
ki - Kikuyu
kiu - Kirmanjki
kj - Kuanyama
kk - Kazakh
kk-arab - Kazakh (Arabic script)
kk-cn - Kazakh (China)
kk-cyrl - Kazakh (Cyrillic script)
kk-kz - Kazakh (Kazakhstan)
kk-latn - Kazakh (Latin script)
kk-tr - Kazakh (Turkey)
kl - Kalaallisut
km - Khmer
kn - Kannada
ko - Korean
ko-kp - 한국어 (조선)
koi - Komi-Permyak
kr - Kanuri
krc - Karachay-Balkar
kri - Krio
krj - Kinaray-a
ks - Kashmiri
ks-arab - Kashmiri (Arabic script)
ks-deva - Kashmiri (Devanagari script)
ksh - Colognian
ku - Kurdish
ku-arab - كوردي (عەرەبی)
ku-latn - Kurdish (Latin script)
kv - Komi
kw - Cornish
ky - Kyrgyz
la - Latin
lad - Ladino
lb - Luxembourgish
lbe - лакку
lez - Lezghian
lfn - Lingua Franca Nova
lg - Ganda
li - Limburgish
lij - Ligurian
liv - Livonian
lmo - Lombard
ln - Lingala
lo - Lao
loz - Lozi
lrc - Northern Luri
lt - Lithuanian
ltg - Latgalian
lus - Mizo
luz - Southern Luri
lv - Latvian
lzh - Literary Chinese
lzz - Laz
mai - Maithili
map-bms - Basa Banyumasan
mdf - Moksha
mg - Malagasy
mh - Marshallese
mhr - Eastern Mari
mi - Maori
min - Minangkabau
mk - Macedonian
ml - Malayalam
mn - Mongolian
mo - молдовеняскэ
mr - Marathi
mrj - Western Mari
ms - Malay
mt - Maltese
mus - Creek
mwl - Mirandese
my - Burmese
myv - Erzya
mzn - Mazanderani
na - Nauru
nah - Nāhuatl
nan - Min Nan Chinese
nap - Neapolitan
nb - Norwegian Bokmål
nds - Low German
nds-nl - Low Saxon
ne - Nepali
new - Newari
ng - Ndonga
niu - Niuean
nl - Dutch
nl-informal - Nederlands (informeel)
nn - Norwegian Nynorsk
nov - Novial
nrm - Nouormand
nso - Northern Sotho
nv - Navajo
ny - Nyanja
oc - Occitan
olo - Livvi-Karelian
om - Oromo
or - Oriya
os - Ossetic
pa - Punjabi
pag - Pangasinan
pam - Pampanga
pap - Papiamento
pcd - Picard
pdc - Pennsylvania German
pdt - Plautdietsch
pfl - Palatine German
pi - Pali
pih - Norfuk / Pitkern
pl - Polish
pms - Piedmontese
pnb - Western Punjabi
pnt - Pontic
prg - Prussian
ps - Pashto
pt - Portuguese
pt-br - Brazilian Portuguese
qu - Quechua
qug - Chimborazo Highland Quichua
rgn - Romagnol
rif - Riffian
rm - Romansh
rmy - Romani
rn - Rundi
ro - Romanian
roa-tara - tarandíne
ru - Russian
rue - Rusyn
rup - Aromanian
ruq - Megleno-Romanian
ruq-cyrl - Megleno-Romanian (Cyrillic script)
ruq-latn - Megleno-Romanian (Latin script)
rw - Kinyarwanda
sa - Sanskrit
sah - Sakha
sat - Santali
sc - Sardinian
scn - Sicilian
sco - Scots
sd - Sindhi
sdc - Sassarese Sardinian
sdh - Southern Kurdish
se - Northern Sami
sei - Seri
ses - Koyraboro Senni
sg - Sango
sgs - Samogitian
sh - Serbo-Croatian
shi - Tachelhit
shi-latn - Tašlḥiyt
shi-tfng - ⵜⴰⵛⵍⵃⵉⵜ
si - Sinhala
sk - Slovak
sl - Slovenian
sli - Lower Silesian
sm - Samoan
sma - Southern Sami
sn - Shona
so - Somali
sq - Albanian
sr - Serbian
sr-ec - Serbian (Cyrillic script)
sr-el - Serbian (Latin script)
srn - Sranan Tongo
ss - Swati
st - Southern Sotho
stq - Saterland Frisian
su - Sundanese
sv - Swedish
sw - Swahili
szl - Silesian
ta - Tamil
tcy - Tulu
te - Telugu
tet - Tetum
tg - Tajik
tg-cyrl - Tajik (Cyrillic script)
tg-latn - Tajik (Latin script)
th - Thai
ti - Tigrinya
tk - Turkmen
tl - Tagalog
tly - Talysh
tn - Tswana
to - Tongan
tokipona - Toki Pona
tpi - Tok Pisin
tr - Turkish
tru - Turoyo
ts - Tsonga
tt - Tatar
tt-cyrl - Tatar (Cyrillic script)
tt-latn - Tatar (Latin script)
tum - Tumbuka
tw - Twi
ty - Tahitian
tyv - Tuvinian
tzm - Central Atlas Tamazight
udm - Udmurt
ug - Uyghur
ug-arab - Uyghur (Arabic script)
ug-latn - Uyghur (Latin script)
uk - Ukrainian
ur - Urdu
uz - Uzbek
uz-cyrl - ўзбекча
uz-latn - oʻzbekcha
ve - Venda
vec - Venetian
vep - Veps
vi - Vietnamese
vls - West Flemish
vmf - Main-Franconian
vo - Volapük
vot - Votic
vro - Võro
wa - Walloon
war - Waray
wo - Wolof
wuu - Wu Chinese
xal - Kalmyk
xh - Xhosa
xmf - Mingrelian
yi - Yiddish
yo - Yoruba
yue - Cantonese
za - Zhuang
zea - Zeelandic
zh - Chinese
zh-cn - Chinese (China)
zh-hans - Simplified Chinese
zh-hant - Traditional Chinese
zh-hk - Chinese (Hong Kong)
zh-mo - 中文(澳門)
zh-my - 中文(马来西亚)
zh-sg - Chinese (Singapore)
zh-tw - Chinese (Taiwan)
zu - Zulu
qqq - Message documentation
Format
Export for off-line translation
Export in native format
{{DISPLAYTITLE:Modules/WebVision}}<languages/> {| class="wikitable" |- ! Module !! Name !! Version !! License !! Source !! Languages !! Platforms !! Type !! Author |- <section begin=info /> | [[Special:MyLanguage/Modules/WebVision|WebVision]] || Operation user interface (WEB) | 6.13 || GPL2 || ui_WebVision.so || en,uk,ru,de || x86,x86_64,ARM <section end=info /> | UI || {{Author|Roman Savochenko|Maxim Lysenko (2007-2012), Ksenia Yashina (2007-2008)}} |- ! colspan="9" | Description |- | colspan="9" | Visual operation user interface, based on the WEB — front-end to the VCA engine. * '''Total complexity:''' > 50 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Sponsored by, for the primitive "Media" and Notification on 1.35 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' Hadi Ramezani * '''Sponsored by, for the Notification on 0.85 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' Vinnica Poultry Farm * '''Sponsored by, for finishing the mirroring of the primitive ElFigure on 0.5 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' SVItoVYR Ltd * '''Sponsored by, for the Export on 0.8 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' Vinnica Poultry Farm * '''[[Special:MyLanguage/Works/To_do|To Do]]:''' <section begin=ToDo /> : * revise and unify the keyboard focus forcing on a first active element considering them specifity, to ensure the keyboard shortcuts; : - expand the primitive "Diagram" by the mouse scaling operations; : - implement own RTE-editor for the view Text of the primitive FormEl; : - ElFigure: fix some properties loss (line width at the least) at the actions processing, in the way of the primitive code common refactoring; : - expand the status-bar, with the functions: :: - printing and exporting the Diagram primitive after it moving to "SVG". : - ElFigure,Diagram: enable or make the anti aliasing, for the library GD; : - implement the primitives "Diagram", "ElFigure" in the tag "SVG"; : - expand the variant "Animation" of the primitive "Media" in using the raw image files, like to PNG. <section end=ToDo /> |} The module provides in OpenSCADA a mechanism of the final visualization of the visual control area (VCA). The module is based on WEB technologies (XHTML, JavaScript, CSS, AJAX). In its work, the module uses the data from the VCA engine — module [[Special:MyLanguage/Modules/VCAEngine|VCAEngine]]. {{#lst:Sub-projects/VCA|Introduce}} In order to avoid these problems, as well as to create as soon as possible the full spectrum of different types of VCA, [[Special:MyLanguage/Sub-projects/VCA|the generic concept of VCA]] is established. The result of this project — this direct visualization module (based on the Web-technologies), direct visualization module [[Special:MyLanguage/Modules/Vision|Vision]] and the VCA engine [[Special:MyLanguage/Modules/VCAEngine|VCAEngine]]. == Purpose == This module of the direct visualization of the VCA serves only for the execution of the VCA interfaces in the area of WEB-technologies! The user interface forms in WEB-browser, by reference to the WEB-server and receiving from it XHTML-document over HTTP. In this case, the WEB-server — OpenSCADA, which supports standard communication mechanisms of the TCP-networks (module [[Special:MyLanguage/Modules/Sockets|Transport.Sockets]]), hypertext transfer protocol (module [[Special:MyLanguage/Modules/HTTP|Protocol.HTTP]]), as well as encryption of the traffic between the browser and the server ([[Special:MyLanguage/Modules/SSL|Transport.SSL]]). Therefore, in order to access the user interface provided by this module, OpenSCADA must configure transport (Transport.Sockets or Transport.SSL) in conjunction with the HTTP protocol (Protocol.HTTP). OpenSCADA comes with configuration files that contain the Transport.Sockets configuration for port 10002. Consequently, the module interface, in the default, will be available at URL: "<nowiki>http://localhost:10002</nowiki>". The final version of this VCA module, built on the basis of this module, will provide: {{#lst:Sub-projects/VCA|TargetFeatures}} == Execution of the VCA interfaces == Execution of the VCA interface is to run a new project session, or connect to the existing one, on the level of the VCA engine (Fig.2). Before the connection request to the session the user authentication request (Fig.1) is done. Then the module of direct visualization displays and controls the data of the session. The main window of the execution mode of this module has the form presented at Figure 3. The administrator users ("root" or in the group "root") can close the opened sessions. The interface of the execution window is built fully dynamically by the JavaScript script on the basis of the contents of the project session through direct XML requests to the server. Update of the contents of the open pages of the visual interface with periodicity of the project session is implemented. During the upgrade process: :- request, in the model, of opened pages list and checking consistency of the really opened pages to this list; :- requests of modified data on each opened page and its widgets; :- updating content of the pages and their widgets in accordance with the received modified data. The mechanism of the request for only modified data is based on the absolute counter of the session execution. When you make real changes in the attributes of widgets the remembering of the value of this counter is made, which allows us to identify the modified attributes. This approach allows to increase productivity and reduce the load on the traffic in case of access to the model through the network. Hierarchically, the module assumes the possibility of placing pages of the project as in the main window of execution (Fig. 3), and by placing inside the container widgets, as well as by opening additional windows over the main one. Located in the status bar: * On the right side: ** the current user, on whose behalf the VCA interface is executed — by a clicking this user can be changed, typing of the new username and password; ** the current interface style, which can be changed selecting need one in the combobox; ** the current alarm status by a lamp with color related to the alarm level and the active notifiers' icons; blinks at the alarm appearing or changing; pressing on the lamp you may quiet the alarm in whole or the desired type of the notification, pressing the correspond notifier icon near; ** the menu buttons of call the page printing and data exporting for: *** printing: Main Page, Documents; *** exporting: Documents (HTML,CSV), Tables (CSV). ** manual on the VCA-project — calls by a click the manual on the visualization project for the file "'''{ProjVCA_ID}.[pdf|html|odt]'''" in [[Special:MyLanguage/Documents/Program_manual#Config|the document folder]] or specified in the [[#SpecAttrs|"prjDoc" attribute]]; ** panel of user statuses and actions when specified in the [[#SpecAttrs|"statLine" attribute]]; mouse clicking left, right and double forms events to the main interface page. * In the main field of the status line various messages and assistance messages are displayed. The module supports multi-language which one enabled by the [[Special:MyLanguage/Documents/Program_manual#ConfigTr|dynamic messages translation of OpenSCADA]]. The gotten language passes by the module [[Special:MyLanguage/Modules/HTTP|Protocol.HTTP]] and detects in way and by the order: * URL's parameter "lang". * Authenticated user's language. * Language of the Web-browser from the HTTP property "Accept-Language". * Generic language of the OpenSCADA process. [[file:HTTP_auth.png|center|frame|Fig.1. Authentication page.]] [[file:WebVision_wvis_connect.png|center|frame|Fig.2. Connection or creation of a new session of the execution project of the VCA.]] [[file:WebVision_wvis_run.png|center|frame|Fig.3. Main execution window.]] == {{Anch|Primitives|Presentation of the basic elements (primitives)}} == This version of the module does not implement all the shapes of the primitives laid by the project. In general, the project provides the following primitives: {| class="wikitable" |- ! Identifier !! Name !! Function |- | ElFigure || Elementary graphical figure || The primitive is the basis for drawing elementary graphical shapes with their possible combinations in a single object. The support of the following elementary figures is provided: * Line. * Arc. * Bézier curve. * Fill of the enclosed space.<br/> For all the figures, contained in the widget, set the common properties of thickness, color, etc., provides the possibility to specify the above-mentioned attributes for each figure separately and their dynamization. |- | FormEl || Element of the form || Includes support for the standard form components: * Line edit. * Text edit. * Check box. * Button. * Combo box. * List. * Tree. * Table. * Slider. * Scroll bar. |- | Text || Text || Text element-label. Characterized by the font type, color, orientation and alignment. Support for arguments is provided. |- | Media || Media || Element of the visualization of raster and vector images of various formats, playback of the animated images, playback of the audio fragments and view of the video fragments. |- | Diagram || Diagram || Element of the diagram with the support of the visualization in the real-time for the flow of several: trends (time charts), spectrum, XY diagrams. |- | Protocol || Protocol || Element of the protocol — visualizer of the program messages, with support of the multiple operating modes. |- | Document || Document || Element of the generating reports, journals and other documentation on the basis of available data. |- | Box || Container || Contains the mechanism for other widgets placement-including with the purpose of creation of new, more complex, widgets and pages of the end visualization. |- | Function, <span style="color: red">in plane</span> || Function of API of the object model of OpenSCADA || Not visual widget, on the runtime side, which allows to include a computing function of the object model of OpenSCADA in the VCA. |} {{Anch|SpecAttrs|The visualizer module provides and uses set of specific attributes}} of the generic means, the information of which is given in the table. These attributes are automatically created by the visualizer in their absence and during the first run, or created by the user in the frame of the specified area, as needed. {| class="wikitable" |- ! Identifier (area) !! Name !! Appointment |- | keepAspectRatio (main page) || Keep aspect ratio on scale || Keep aspect ratio of the pages on scale. |- | stBarNoShow (main page) || Do not show the status bar || Hide the status bar of the main window. |- | notify{N}, notifyVisWebVision{N} (page) || Notification: type {N} || [[File:at.png]] Create manually with the type "Text"! Specifies a notifier and a procedure of the notification resource obtaining according to the [[Special:MyLanguage/Modules/VCAEngine#Alarms|"Signalling (Alarms)" conception]]. |- | statLine (main page) || Status line items || [[File:at.png]] Create manually with the type "Text"! Text field with description of the status line item in the string form "'''{Id}:{Label}:{ToolTip}:{Color}:{Img}'''", where: * "Id" — identifier, uses also to form events from the widget "stIt_{Id}". * "Label" — visual label of the status element. * "ToolTip" — context help about the element. * "Color" — label color. * "Img" — image of the status element, instead the label. |- | userSetVis (main page) || Setting the user || [[File:at.png]] Create manually with the type "String"! Change the user or call a dialog to select it. Variants of the value: * "*" — call for a selecting dialog of the user; * "$" — change the user to the default one; * "{user}[:{password}]" — direct change to ''user'' with ''password''; for empty password, the user is changed only if its permission is lesser or equal; a useful example of changing to the "user" after one minute inactivity: <syntaxhighlight lang="JavaScript" style="margin-left: 20pt"> if((SYS.time()-this.ownerSess().userActTm()) < 60)userSetVis = ""; else if(this.ownerSess().reqUser() != "user") userSetVis = "user"; </syntaxhighlight> |- | prjDoc (main page) || Project document || [[File:at.png]] Create manually with the type "String"! Specifying the project documentation of call from the status line's button with a possibility of disabling-concealing the button at empty value. The documentation specified in view "'''<nowiki>{OffLine}|{OnLineOpenSCADAWiki}</nowiki>'''", for example for the [[Special:MyLanguage/Using/Model_AGLKS|AGLCS project]] — "<nowiki>AGLCS|Using/Model_AGLKS</nowiki>". The online part is used in first order at its specifying! |- | vs_goHttpUrl (view "Button" of the primitive "FormEl") || Go to the HTTP URL || [[File:at.png]] Create manually with the type "String"! Go to the specified URL at the button press. |- | vs_background (views "Line edit", "Text edit", "Combo box", "List", "Tree", "Table" of the primitive "FormEl") || Custom background || [[File:at.png]] Create manually with the type "String"! Specifies for the custom background in the form '''{color}-{transp} {image}'''. |- | vs_border (views "Line edit", "Text edit", "Combo box", "List", "Tree", "Table" of the primitive "FormEl") || Custom border || [[File:at.png]] Create manually with the type "String"! Specifies for the custom border in the standard CSS-form '''{wdth}px {style} {color}'''. |- | vs_winTitle (the view "Box") || Window title || [[File:at.png]] Create manually with the type "String"! Dynamic window title value. |} Consider the implementation of each primitive in more detail. === Elementary figure primitive (ElFigure) === <section begin=ElFigure /> Support of the elementary figures is implemented: lines, elliptical arcs, Bézier curves and fill of the enclosed space with the color and image with the properties: * formation of arbitrary images from three elemental shapes and fillings of closed spaces with color or image; * there is the possibility of determination of the figures' properties both in general and individual to each one: line width, color and style, line border's width and color, filling's color and image; * scaling; * transformation: rotation and mirroring; * user's attributes support for dynamic: points, widths, colors, styles and images; * formation of events by action of the mouse manipulator in a closed space and in general. Figure shows a part of the screen with a frame containing the elementary figures. [[file:WebVision_wvis_run_elfig.png|center]] <section end=ElFigure /> === Text primitive (Text) === <section begin=Text /> Support of the text element with the following properties is implemented: * Font with the properties: type-class, size, bold, italic, strikeout and underline. * Text color. * Text orientation. * Automatic word wrap. * Alignment of the text horizontally and vertically with all variants. * Displaying the background as the color and image. * Displaying the border around the text, with the specified color, width and style. * Displaying HTML. * Addition of the text by arguments of different type and properties. Figure represents a part of the screen with the frame containing the text examples using various parameters. [[file:WebVision_wvis_run_txt.png|center]] <section end=Text /> === Primitive of the form element (FormEl) === <section begin=FormEl /> Provides support for the form elements on the VCA frames with the planed properties, including the types: * ''Line edit'' — Represented by the following types: "Text", "Combo", "Integer", "Real", "Time", "Date", "Date and time". All kinds of line editor support the confirmation of entry. * ''Text edit'' — Provides the flat-text editor with the confirmation or denial of entry. * ''Check box'' — Provides a field of binary flag. * ''Button'' — Provides the button with support of the button color, image in the button and the modes: ** standard; ** checkable; ** call the menu; ** call the file loading; ** call the file saving. * ''Combo box'' — Provides a field for selecting an item from the list of specified items * ''List'' — Provides the list box with the control of the current item. * ''Tree'' — Provides the tree element with possibility of an item selection. * ''Table'' — Provides the table element with the possibility of selecting for cells, rows or columns and editing the cell content. * ''Slider'' — Slider element. * ''Scroll bar'' — Scroll bar (Equal to Slider). * ''Password'' — Hidden password typing. The "Enabled" and "Active" modes are implemented, as well as the transfer of changes and events to the data model of the VCA — engine. The mode "Active" cause to the activity cursor set for not empty background and the addition conditions of the different views "Text", "Media" and "Box": * ''Text'' — not empty text; * ''Media'' — not empty source image. Figure represents a part of the screen with the frame containing the above-listed elements of the form. [[file:WebVision_wvis_run_formel.png|center]] <section end=FormEl /> === Primitive of the displaying the media-materials (Media) === <section begin=Media /> Support of the element of the displaying of the media-materials with the following properties is provided: * Indication of the media data source: images or video-material. * Review of the images of most well-known formats with the possibility of fitting in the widget size and keeping aspect ratio here. * Playback of the simple animated images and video formats with the possibility to control the playback speed (<font color="red">inaccessible</font>). * Playback of the full-formatted video and audio by HTML5. * Displaying the background as the color and image. * Displaying the border along the perimeter of the widget, with the specified color, width and style. * Formation of the active areas and generating the events when they are activated. Figure represents a part of the screen with the frame containing examples of reviewing/playback of the media-data. [[file:WebVision_wvis_run_media.png|center]] <section end=Media /> === Primitive of constructing diagrams (Diagram) === <section begin=Diagram /> The diagrams construction element releases for types: "Graph", "Spectrum" and "XY", with properties: * General properties of the diagram types "Graph", "Spectrum" and "XY": ** possibility to select the archiver, the archive buffer or all their, at working with the archiving data; ** adaptation of the parameter graph to real data values by adjusting the scale, in the absence of a directly specified range of values; ** controlling by axis ranges in way increasing, decreasing and shifting; ** wide range of scaling and adapting the time axis with automatic fitting the requested data to quality pretty for imaging, or needed for export — specifying the maximum number of measurements per pixel; ** imaging dimensional grid and markers in horizontal and vertical with adapting to the imaging range; ** tracing mode of the current time by periodically updating and shifting the time of the diagram to the current time — the time of the last data in the archive buffer. * Properties of the diagram type "Graph": ** constructing graphics up to 100 parameters per diagram in a percentage scale and displaying the selected parameters in its own scale; ** constructing graph for: current, archiving and users data; ** forming of an intermediate display buffer for current values; ** support for the active mode with cursor and getting values under the cursor; ** possibility of construction graphics as into both linear and logarithmic scale of the values. * Properties of the diagram type "Spectrum": ** construction of graphics of the frequency spectrum of parameters up to 100 on one diagram in a percentage scale and the ability to display selected parameters in its own scale; ** constructing graph for: archiving and users data; ** support for the active mode with cursor and getting values under the cursor; * Properties of the diagram type "XY": ** construction of XY graphs of parameters up to 50 on one diagram in a percentage scale and the ability to display selected parameters on its own scale; ** constructing graph for: current, archiving and users data; ** forming of an intermediate display buffer for current values; ** the parameters distributed by pairs at one graph, where paired by axis Y (0,2,4...) and unpaired by axis X (1,3,5...); ** possibility of construction graphics as into both linear and logarithmic scale of the values. Figure represents a part of the screen with the frame containing examples of the diagrams: "Graph", "Spectrum" and "XY". [[file:WebVision_wvis_run_diag.png|center]] <section end=Diagram /> === Primitive of the protocol formation (Protocol) === <section begin=Protocol /> Provides for support of the element of the protocol formation with the following properties: * Protocol formation from the message archive for the specified time and depth. * Request of the data from the message archivers. * Selection of the data from the archives by the level of importance and the template of the message category. * Support the mode of the tracking for the messages appearance in the message archive. Figure represents a part of the screen with the frame containing an example of the protocol. [[file:WebVision_wvis_run_prot.png|center]] <section end=Protocol /> === Primitive of the report formation (Document) === <section begin=Document /> Provides for support element of the report formation with the following properties: * Flexible formation of document structure based on HyperText Markup Language, which provides support for a wide range of features in the documents formatting. * Formation of the documents at a command or a schedule, which necessary for creation of reports to the archive and then reviewing the archive. * Formation of the documents in real time, to provide them completely dynamically and on the basis of archives at the specified time. * Using the widget attributes for transmission to the document of values and addresses to the archives, which allows you to use the document widget as a template when generating reports with other input data. The basis of any document is the XHTML template. The XHTML-template is the tag "body" of the WEB-page which contains the document's static in the standard XHTML 1.0 and elements of the executable instructions in the user programming language of OpenSCADA in the view '''<?dp {procedure} ?>'''. The resulting document is formed by the procedures execution and insertion of their result into the document. The source for values of the executable instructions are the widget attributes of the primitive, as well as all the mechanisms of the user programming language OpenSCADA. Attributes may be added by the user and they can be linked to the actual attributes or parameters or they can be autonomous, values of which will be formed in the widget procedure. In the case of linked attributes the values can be extracted from the archive-history. Figure represents the frame, containing a sample of the document. [[file:WebVision_wvis_run_doc.png|center]] <section end=Document /> === Primitive of the box-container (Box) === <section begin=Box /> Provides for support of the container primitive, which, in combination, plays the role of project pages. This primitive is the only container-element, which can itself include links to frames from the library, thus forming the user elements of the desired configuration. The primitive implements the properties provided by the project. Let's list, in points, the properties of this primitive: * ''Container'' — Allows forming the desired objects by grouping in the primitive borders. * ''Page'' — Elements, constructed on the basis of the primitive, may serve as a page of the user interface. * ''Container of pages'' — Property of substitution, in the execution process, of its own content by another page. Used to create frames on the pages of the user interface. For example, the main page of the typical SCADA-system with signal objects is constructed in this way. * ''Background'' — Supports for ability to specify the background as color and image. * ''Border'' — Supports for displaying of the border with the specified color, width and style. <section end=Box /> == Overall configuration of the module == To configure and control this module, you have the configuration page of the OpenSCADA control interface (Fig.4): * Control for the active WEB-sessions. * Configuring: ** Lifetime, in minutes, and maximum number of the sessions. ** Lifetime, in hours, and maximum number of the cached pages. ** Level of the PNG-images compression. The optimum is the minimum level 1, since large files get uncompressed, and higher compression levels create a higher load on the processor. ** Resizing raster images on the server side. Mostly to decrease too big images size then decrease the traffic, what causes to rise the server load. ** Custom interface CSS rules. CSS rules to override the standard ones what placed in the special token ##CUST_CSS## of the file WebVisionVCA.html. [[file:WebVision_wvis_cfg.png|center|frame|Fig.4. Configuration page of the module.]] You can deeply customise main interface of the module overriding and adding the HTML and JavaScript code by placing to folder of your OpenSCADA project files WebVisionVCA.html and WebVisionVCA.js which initially you can obtain from the module source code — [http://oscada.org/svn/trunk/OpenSCADA/src/moduls/ui/WebVision/ UI.WebVision]. == {{Anch|Efficiency|Efficiency and scalability}} == {{CntHdr|31.07.2019}} GROUNDS: The Web-sessions may create many objects servicing the VCA-session for generating images, processing documents and performing other background functions of the end user Web-interface. Moreover, in difference to [[Special:MyLanguage/Modules/Vision|Vision]], the VCA-sessions may be created, closed and recreated again multiple times for different users and remote hosts. In the time the memory heap is affected by the memory fragmentation, so the program consumes more memory than at the start. The table below represents the phenomenon for different environments and the first page of [[Special:MyLanguage/Using/Model_AGLKS|the DemoDB (AGLKS) project]] reopening: {| class="wikitable" |- ! Environment !! Initially, MB !! Iter. 1, MB !! Iter. 2, MB !! Iter. 3, MB !! Iter. 4, MB !! Iter. 5, MB !! Resume |- | colspan="9" | ''Complete creation the Web- and VCA-sessions'' |- | Debian 10 amd64, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=2 || 181 || 189 || 190 || 195 || 195 || 194 || Satiated on the iteration '''3''', base consumption 8 MB, extra consumption 5 MB ('''62.5''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB |- | Debian 10 amd64, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=1 || 177 || 185 || 186 || 186 || 185 || 186 || Satiated on the iteration '''2''', base consumption 8 MB, extra consumption 1 MB ('''13''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB |- | Debian 9 amd64, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=1 || 160 || 168 || 168 || 168.5 || 168.5 || 168.5 || Satiated on the iteration '''1''', base consumption 8 MB, extra consumption 0.5 MB ('''6''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB |- | Debian 10 amd64, GLibC 2.28, GCC 8.3.0 + optional background objects in WebVision || 184 || 194.5 || 200 || 207 || 207 || 212.5 || Satiated on the iteration '''5''', base consumption 10.5 MB, extra consumption 18 MB ('''171''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB |- | Debian 10 amd64, GLibC 2.28, GCC 8.3.0 || 182 || 191.5 || 199 || 206 || 212 || 212 || Satiated on the iteration '''4''', base consumption 9.5 MB, extra consumption 20 MB ('''200''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.74 MB |- | Debian 9 amd64, GLibC 2.24, GCC 6.3.0 || 160 || 170 || 178 || 179 || 183 || 185 || Satiated on the iteration '''5''', base consumption 10 MB, extra consumption 15 MB ('''150''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.72 MB |- | Debian 8 amd64, GLibC 2.19, GCC 4.9.2 || 125.5 || 133 || 139 || 139 || 139 || 139 || Satiated on the iteration '''2''', base consumption 7.5 MB, extra consumption 6 MB ('''80''' %), liboscada.so 3.8 MB, ui_WebVision.so 0.79 MB |- | Debian 7 amd64, GLibC 2.13, GCC 4.7.2 || 101 || 108 || 111 || 112 || 112 || 112 || Satiated on the iteration '''2''', base consumption 7 MB, extra consumption 4 MB ('''57''' %), liboscada.so 3.4 MB, ui_WebVision.so 0.85 MB |- | Debian 10 i386, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=1 || 144 || 152 || 152 || 152 || 152 || 152 || Satiated on the iteration '''1''', base consumption 8 MB, extra consumption 0 MB ('''0''' %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB |- | Debian 9 i386, GLibC 2.24, GCC 6.3.0 + MALLOC_ARENA_MAX=1 || 126.5 || 132.5 || 133 || 133 || 133 || 133 || Satiated on the iteration '''1''', base consumption 6 MB, extra consumption 0.5 MB ('''8''' %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB |- | Debian 10 i386, GLibC 2.28, GCC 8.3.0 || 151 || 158 || 162.5 || 166 || 166 || 166 || Satiated on the iteration '''3''', base consumption 7 MB, extra consumption 8 MB ('''114''' %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB |- | Debian 9 i386, GLibC 2.24, GCC 6.3.0 || 125 || 131 || 132 || 136 || 136 || 139 || Satiated on the iteration '''5''', base consumption 6 MB, extra consumption 8 MB ('''133''' %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB |- | Debian 8 i386, GLibC 2.19, GCC 4.9.2 || 92.5 || 99 || 101.5 || 103 || 103.5 || 103.5 || Satiated on the iteration '''2''', base consumption 6.5 MB, extra consumption 4.5 ('''69''' %), liboscada.so 3.6 MB, ui_WebVision.so 0.94 MB |- | Debian 7 i386, GLibC 2.13, GCC 4.7.2 || 70 || 76 || 76 || 76 || 77 || 77 || Satiated on the iteration '''2''', base consumption 6 MB, extra consumption 1 MB ('''16''' %), liboscada.so 3.6 MB, ui_WebVision.so 0.9 MB |- | ALTLinux 6 i386, GLibC 2.11.3, GCC 4.5.4 || 69 || 74 || 75 || 75 || 75 || 75 || Satiated on the iteration '''2''', base consumption 5 MB, extra consumption 1 MB ('''20''' %), liboscada.so 2.3 MB, ui_WebVision.so 0.9 MB |- | colspan="9" | ''Creation only VCA-session, from remote connection to the visualizer server'' |- | Debian 10 amd64, GLibC 2.28, GCC 8.3.0 || 180 || 186 || 186 || 186 || 186 || 186 || Satiated on the iteration '''1''', extra consumption 0.2 MB (3 %) |- | Debian 7 amd64, GLibC 2.13, GCC 4.7.2 || 100 || 104 || 105 || 105 || 105 || 105 || Satiated on the iteration '''1''', extra consumption 1 MB (25 %) |- | Debian 10 i386, GLibC 2.28, GCC 8.3.0 || 148 || 154 || 155 || 155 || 155 || 155 || Satiated on the iteration '''1''', extra consumption 1 MB (16 %) |- | Debian 7 i386, GLibC 2.13, GCC 4.7.2 || 69 || 72 || 72 || 72 || 72 || 72 || Satiated on the iteration '''1''', extra consumption 0 MB (0 %) |} CONCLUSION: We see obvious degradation in the memory effectivity on the last Debian releases starting at Debian 8 (GLibC 2.19) on I386 and Debian 9 (GLibC 2.24) on AMD64, when the memory consumption increased up to 200% after 3,4 free-allocate iterations of the same data. To more presenting of the problem there have built follow images on the data basis: [[file:WebVision_MemEffectAMD64.png|center|frame|Fig.5. Memory effectivity on AMD64 platform.]] [[file:WebVision_MemEffectI386.png|center|frame|Fig.6. Memory effectivity on I386 platform.]] [[file:WebVision_AbsInitSizeAMD64.png|center|frame|Fig.7. Absolute initial size of OpenSCADA "AGLKS" on the platform AMD64.]] [[file:WebVision_AbsInitSizeAI386.png|center|frame|Fig.8. Absolute initial size of OpenSCADA "AGLKS" on the platform I386.]] MEASURES: # The optional background objects were implemented for the primitives "FormEl" and "Text", what will have most effect on mnemonic-schemes with these elements and wont have many effect for other, see the measuring data above. # There were some tries to tune the memory allocator of GLibC using "[https://www.gnu.org/software/libc/manual/html_node/Memory-Allocation-Tunables.html Memory Allocation Tunables]" without any significant effect, so we will [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=934080 notify the Debian community], firstly. # The problem was detected in arenas of the memory allocator, setting whose number to 1 (MALLOC_ARENA_MAX=1) completely resolves the problem and the effect you may see on Figures 9, 10, for a real big application. [[file:WebVision_MemoryDef.png|center|frame|Fig.9. Tendency of the memory consumption on a real big application at the default conditions.]] [[file:WebVision_MemoryArenas1.png|center|frame|Fig.10. Tendency of the memory consumption on a real big application at the environment variable MALLOC_ARENA_MAX=1.]] {{CntHdr|20.06.2013}} GROUNDS: At working with the board [[Special:MyLanguage/Using/Kontron_MOPSlcdLX|MOPSlcdLX]], attention was drawn to the heavy load of the task of forming full-size trends. As it turned out later, a large load is created by the formation of a PNG image in the GD2 library, or rather, the packing procedure of ZLib. The subject analysis of the performance of the formation of images of various formats on this board is summarized in the table below: {| class="wikitable" |- ! Format !! Trend building, milliseconds !! Converting to the image format, milliseconds !! Size of the image, bytes |- | PNG (0) || 200 || 800 || 1700365 |- | PNG (1) || 200 || 690 || 24000 |- | PNG (-1) || 200 || 1000 || 14800 |- | PNG (9) || 200 || 1900 || 13354 |- | JPEG (-1) || 200 || 180 || 53157 |- | GIF || 200 || 380 || 14300 |} CONCLUSION: As can be seen from the table above, the operation of forming PNG as a whole is resource-intensive and the most optimal level of compression is "1". At the same time, the formation of JPEG and GIF is much faster, but these image formats have a number of critical flaws, namely: JPEG does not have an alpha channel (transparency), and GIF is limited by the number of colors, which in both cases leads to loss of transparency and distortion of text smoothing and images in general. MEASURES: The ability to select the compression level for the generated PNG images is added, and the default value is set to the optimal level "1". The implementation of the formation of the "Diagram" primitive on the browser side in the "svg" or "canvas" tags is planned. == Notes == At this stage, the module can be used to construct real user interfaces with support for the main functions. However, some problems may arise due to the differences between browsers. At this time, provided enough quality performance on browsers: Chromium (Google Chrome), FireFox, Opera, Konqueror. == Links == * [[:File:WebVision MemAllocFree.ods|Spreadsheet: Analysis of effectivity of the memory allocation.]]
Navigation menu
OpenSCADA
Site
Download
Old Wiki
OpenSCADA Wiki
Home
About OpenSCADA
Functions and demands
Tasks
Using
Fund
Recent changes
Random page
Search
Tools
Special pages
Printable version
MediaWiki
Help
Personal tools
English
Log in