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/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:Модули/Vision}}<languages/> {| class="wikitable" |- ! Модуль !! Имя !! Версия !! Лицензия !! Источник !! Языки !! Платформы !! Тип !! Автор |- <section begin=info /> | [[Special:MyLanguage/Modules/Vision|Vision]] || Рабочий пользовательский интерфейс (Qt) | 9.3 || GPL2 || ui_Vision.so || en,uk,ru,de || x86,x86_64,ARM <section end=info /> | Пользовательские интерфейсы || {{Author|Роман Савоченко|Максим Лысенко (2007-2012), Ксения Яшина (2007-2008)}} |- ! colspan="9" | Описание |- | colspan="9" | Рабочий пользовательский интерфейс, основанный на библиотеке Qt — внешний интерфейс к движку СВУ. * '''Общая трудоёмкость:''' > 50 {{CtxDetails|ЧД|человеко-дней, 1ЧД — 10 часов}} * '''Спонсировано, завершение отражения примитива ElFigure на 0.3 {{CtxDetails|ЧД|человеко-дней, 1ЧД — 10 часов}}:''' ООО "СВІТоВИР" |} Модуль предоставляет в OpenSCADA механизм конечной визуализации среды визуализации и управления (СВУ). Модуль основан на многоплатформенной библиотеке [http://qt.io Qt] графического пользовательского интерфейса (GUI), изначально созданного фирмой [http://www.trolltech.com TrollTech]. В своей работе модуль использует данные движка СВУ — модуль [[Special:MyLanguage/Modules/VCAEngine|VCAEngine]]. {{#lst:Sub-projects/VCA/ru|Introduce}} С целью избежания этих проблем, а также создания в кратчайшие сроки полного спектра различных типов СВУ, основан [[Special:MyLanguage/Sub-projects/VCA|проект создания концепции СВУ]]. Результатом этого проекта и стал данный модуль непосредственной визуализации (на основе библиотеки Qt), модуль непосредственной визуализации [[Special:MyLanguage/Modules/WebVision|WebVision]] и движок СВУ [[Special:MyLanguage/Modules/VCAEngine|VCAEngine]]. == Назначение == Данный модуль непосредственной визуализации СВУ предназначен для формирования и исполнения интерфейсов СВУ в среде графической библиотеки Qt. Модуль СВУ, в основном, обеспечивает: {{#lst:Sub-projects/VCA/ru|TargetFeatures}} == Инструмент графического формирования интерфейса СВУ == Разработка интерфейса СВУ выполняется в одном окне, реализующем многодокументный интерфейс (MDI) (рис.2.a). Данный подход позволяет одновременно открывать несколько кадров различных размеров. Использованы следующие механизмы управления разработкой: панели инструментов, пункты меню и контекстное меню. Большинство действий дублируются разными механизмами, что позволяет быстро найти инструмент удобным способом. Навигационные интерфейсы реализованы присоединяемыми окнами. Конфигурация панелей инструментов и присоединяемых окон сохраняется при выходе и восстанавливается при старте, что позволяет настраивать интерфейс под себя. [[file:Vision_win_ru.png|center|frame|Рис.2.a. Окно разработки интерфейсов СВУ.]] Access to major components of the VCA is made by attached windows, in the Figure 2.a these windows are shown on the left side. These windows contain: * Tree of the widgets libraries. Using the navigator you can quickly find the needed widget or library and to do with them necessary operations. The following operations are implemented: add, delete, copy, call for settings of the widgets and libraries, cleaning and call for visual editing of the widget. For flexible control, the context menu is supported with the following items: ** "New library" — creation of the new library. ** "Add visual item" — adding of the visual element to the library-widget. ** "... from the Library" — submenu of adding of the visual element from other libraries to the library-widget. ** "Delete visual item" — deleting of the visual element from the library. ** "Clear visual item changes" — clearing of the visual element with the inheritance of modified properties or setting them by default. ** "Lower down visual item changes" — lowering down of the visual element changes to the parent, that will be used by other inheritances. ** "Properties of the visual item" — call for configuration of the visual element. ** "Edit visual item" — call visual editing of the element. ** "Copy visual item" — copy of the visual element, at the time of paste. ** "Cut visual item" — cut-move of the visual element, at the time of paste. ** "Paste visual item" — paste of the visual element. ** "Load from DB" — uploading data of the visual element from the database. ** "Save to DB" — saving data of the visual element to the database. ** "Manual on ..." — call manual on the selected library. ** "Refresh libraries" — rereading of the configuration and composition of the libraries from the data model. * Tree of the projects pages. Provides the mechanism for "Drag and drop" for creation of the user frames based on the libraries elements. For flexible control, the context menu is supported with the following items: ** "Run project" — starting up of the chosen project execution. ** "New project" — creation of the new project. ** "Add visual item" — adding of the visual element to the project-page. ** "... from the Library" — submenu of adding of the visual element from other libraries to the project-page. ** "Delete visual item" — deleting of the visual element from the project-page. ** "Clear visual item changes" — clearing of the visual element with the inheritance of modified properties or setting them by default. ** "Lower down visual item changes" — lowering down of the visual element changes to the parent, that will be used by other inheritances. ** "Properties of the visual item" — call for configuration of the visual element. ** "Edit visual item" — call visual editing of the element. ** "Copy visual item" — copy of the visual element, at the time of paste. ** "Cut visual item" — cut-move of the visual element, at the time of paste. ** "Paste visual item" — paste of the visual element. ** "Load from DB" — uploading data of the visual element from the database. ** "Save to DB" — saving data of the visual element to the database. ** "Refresh projects" — rereading of the configuration and composition of the projects from the data model. * Control panel of the widget attributes; * Control panel of the widget links. В основном пространстве рабочего окна размещаются окна страниц проектов, кадров библиотек виджетов, пользовательских элементов и элементов примитивов на момент их визуального редактирования. Наверху рабочего окна содержится меню. В меню размещены все инструменты, необходимые для разработки интерфейсов СВУ. Меню имеет следующую структуру: * "Файл" — Общие операции. ** "Загрузить из БД" — загрузка данных визуального элемента из БД. ** "Принудительно загрузить из БД" — принудительная загрузка данных визуального элемента из БД, не только когда изменено. ** "Сохранить в БД" — сохранение данных визуального элемента в БД. ** "Принудительно сохранить в БД" — принудительное сохранение данных визуального элемента в БД, не только когда изменено. ** "Закрыть" — закрытие окна редактора. ** "Выход" — выход из программы. * "Редактирование" — Операции редактирования визуальных элементов. ** "Отменить изменения визуального элемента" — осуществление отмены(отката) последних изменений визуального элемента. ** "Повторить изменения визуального элемента" — осуществление повтора изменений визуального элемента. ** "Копировать визуальный элемент" — копирование визуального элемента, в момент вставки. ** "Вырезать визуальный элемент" — вырезание-перемещение визуального элемента, в момент вставки. ** "Вставить визуальный элемент" — вставка визуального элемента. * "Проект" — Операции над проектами. ** "Запустить проект" — запуск исполнения выбранного проекта. ** "Новый проект" — создание нового проекта. ** "Добавить визуальный элемент" — добавление визуального элемента в проект. ** "Удалить визуальный элемент" — удаление визуального элемента из проекта. ** "Очистить визуальный элемент" — очистка визуального элемента с наследованием изменённых свойств или установкой их по умолчанию. ** "Опустить изменения визуального элемента" — опускание изменений визуального элемента к его родителю, которые будут использованы другими наследующими. ** "Свойства визуального элемента" — вызов конфигурации визуального элемента. ** "Редактировать визуальный элемент" — вызов визуального редактирования элемента. * "Виджет" — Операции над виджетами и библиотеками виджетов. ** "Новая библиотека" — создание новой библиотеки. ** "Добавить визуальный элемент" — добавление визуального элемента в библиотеку. ** "Удалить визуальный элемент" — удаление визуального элемента из библиотеки. ** "Очистить визуальный элемент" — очистка визуального элемента с наследованием изменённых свойств или установкой их по умолчанию. ** "Опустить изменения визуального элемента" — опускание изменений визуального элемента к его родителю, которые будут использованы другими наследующими. ** "Свойства визуального элемента" — вызов конфигурации визуального элемента. ** "Редактировать визуальный элемент" — вызов визуального редактирования элемента. ** "Вид" — управление расположением визуальных элементов на кадрах. *** "Поднять" — поднятие виджета выше. *** "Опустить" — опускание виджета ниже. *** "Поднять наверх" — поднятие виджета на самый верх. *** "Опустить вниз" — опускание виджета на самый низ. *** "Выравнять слева" — выравнивание виджета слева. *** "Выровнять в центре вертикально" — выравнивание виджета вертикально в центре. *** "Выровнять справа" — выравнивание виджета справа. *** "Выровнять сверху" — выравнивание виджета сверху. *** "Выровнять в центре горизонтально" — выравнивание виджета горизонтально в центре. *** "Выровнять снизу" — выравнивание виджета снизу. ** "Библиотека: {Имя библиотеки}" — пункты меню доступа к кадрам-виджетам, содержащимся в библиотеке. * "Окно" — Управление MDI окнами. ** "Закрыть" — закрытие активное окно. ** "Закрыть все" — закрытие всех окон. ** "Уложить" — укладка всех окон для одновременной видимости. ** "Каскадировать" — расположение всех окон каскадом. ** "Следующее" — активация следующего окна. ** "Предыдущее" — активация предыдущего окна. ** "Виджет: {Имя виджета}" — пункты активации конкретного окна. * "Вид" — Управление видимостью рабочего окна и панелей на нём. ** "Весь экран" — развертывание рабочего окна на весь экран. ** "Панель визуальных элементов" — панель управления визуальными элементами. ** "Функции размещения виджетов" — панель управления расположением виджетов на кадре. ** "Инструменты элементарных фигуры" — дополнительная панель инструментов редактирования примитива элементарной фигуры ("ElFigure"). ** "Проекты" — пришвартованное окно управления деревом проектов. ** "Виджеты" — пришвартованное окно управления деревом библиотек виджетов. ** "Атрибуты" — пришвартованное окно диспетчера атрибутов. ** "Связи" — пришвартованное окно диспетчера связей. ** "Библиотека: {Имя библиотеки}" — управление видимостью панелей библиотек виджетов. * "Помощь" — Помощь по OpenSCADA и этому модулю. ** "Про" — информация про данный модуль. ** "Про Qt" — информация о библиотеке Qt, используемой модулем. ** "Руководство на 'Vision'" — вызов руководства на этот модуль. ** "Руководство на 'VCAEngine'" — вызов руководства на движок среды визуализации и управления. ** "Руководство на 'OpenSCADA 0.9.0'" — вызов руководства на OpenSCADA в целом. ** "Руководство на ..." — вызов руководства на выбранную библиотеку. ** "Что это" — запрос описания элементов интерфейса окна. * "QTStarter" — Пункт меню, созданный модулем запуска модулей библиотеки Qt. Содержит кнопки запуска UI модулей OpenSCADA, основанных на библиотеке Qt. С помощью этого пункта можно открыть несколько экземпляров окон данного модуля или других модулей. Сверху, под меню, или по сторонам располагаются панели инструментов. Панели могут быть скрыты или расположены, что управляется в пункте меню "Вид". Предусмотрены следующие панели инструментов: * "Панель визуальных элементов" — Панель управления визуальными элементами: ** "Запуск исполнения проекта для выбранного элемента" — производит запуск проекта на исполнение и активацию выбранной страницы проекта. ** "Загрузить данные элемента из БД" — выполняет загрузку данных выбранного(ых) элемента из БД. ** "Сохранить данные элемента в БД" — выполняет сохранение данных выбранного(ых) элемента в БД. ** "Новый проект" — создание нового проекта. ** "Новая библиотека виджетов" — создание новой библиотеки виджетов. ** "Добавить визуальный элемент" — добавление визуального элемента. ** "Удалить визуальный элемент" — удаление визуального элемента. ** "Свойства визуального элемента" — вызов конфигурации визуального элемента. ** "Редактировать визуальный элемент" — вызов визуального редактирования элемента. ** "Отменить изменения визуального элемента" — осуществление отмены(отката) последних изменений визуального элемента. ** "Повторить изменения визуального элемента" — осуществление повтора изменений визуального элемента. ** "Копировать визуальный элемент" — копирование визуального элемента, в момент вставки. ** "Вырезать визуальный элемент" — вырезание-перемещение визуального элемента, в момент вставки. ** "Вставить визуальный элемент" — вставка визуального элемента. * "Функции размещения виджетов" — Панель управления расположением виджетов на кадре: ** "Поднять" — поднятие виджета выше. ** "Опустить" — опускание виджета ниже. ** "Поднять наверх" — поднятие виджета на самый верх. ** "Опустить вниз" — опускание виджета на самый низ. ** "Выравнять слева" — выравнивание виджета слева. ** "Выровнять в центре вертикально" — выравнивание виджета вертикально в центре. ** "Выровнять справа" — выравнивание виджета справа. ** "Выровнять сверху" — выравнивание виджета сверху. ** "Выровнять в центре горизонтально" — выравнивание виджета горизонтально в центре. ** "Выровнять снизу" — выравнивание виджета снизу. * "Инструменты элементарных фигуры" — Дополнительная панель инструментов редактирования примитива элементарной фигуры ("ElFigure"): ** "Возврат курсора" — возврат к курсору для действий над фигурами на виджете. ** "Добавить линию" — добавление линии к элементарной фигуре. ** "Добавить дугу" — добавление дуги к элементарной фигуре. ** "Добавить кривую Безье" — добавление кривой Безье к элементарной фигуре. ** "Привязки" — включение привязок у элементарной фигуры. * "Библиотека: {Имя библиотеки}" — Содержимое панели зависит от содержимого библиотеки и включает кнопки вызова элементов библиотеки. Внизу окна разработки СВУ располагается строка статуса. С правой стороны строки статуса размещаются индикаторы визуального масштаба редактируемого кадра, режима изменения размера элементов, режима текущей станции движка СВУ и пользователя, от имени которого ведётся разработка интерфейса СВУ. По двойному клику на индикаторе пользователя можно пользователя сменить, введя новое имя и пароль пользователя. В главное поле строки статуса выводятся различные информационные сообщения и сообщения помощи. Для редактирования свойств визуальных элементов предусмотрено два диалога. Первый диалог позволяет редактировать свойства контейнеров визуальных элементов (рис.2.b) — библиотек виджетов и проектов. Второй диалог для редактирования свойств самих визуальных элементов (рис.2.d). Изменения, внесённые в диалогах, сразу-же попадают в движок СВУ. Для сохранения этих изменения в БД, или восстановления из БД, необходимо воспользоваться соответствующими инструментами главного окна разработки. [[file:Vision_wlbpg.png|center|frame|Рис.2.b. Диалог редактирования свойств контейнеров визуальных элементов.]] With the help of the main tab of that dialog you can obtain: * State of the elements' container, that is: "Enabled", storage of the container (with tracking the availability of the data in different storages and providing the sequentially removing duplicates), usage counter, date and time of the last modification. : [[file:at.png]] The objects still support of specifying the spare storage addresses with tables before you rename the table in the standard form "'''wlb_{ObjID}'''" for the widget libraries and "'''prj_{ObjID}'''" for the projects. * Identifier, name and description of the container. * For the project: :* user, group of users and the access for: user, users' group and all other; :* period of the project calculating in the execution. [[file:Vision_wlbpg_diag_ru.png|center|frame|Рис.2.с. Вкладка "Диагностика" проекта.]] В этой вкладке вы можете, для получения диагностических сообщений: выбрать время, освежить к текущему времени и выбрать размер-глубину. [[file:Vision_wdg.png|center|frame|Рис.2.d. Диалог редактирования свойств визуальных элементов.]] With the help of the main tab of that dialog you can obtain: * State of the element; for information: "Enabled", counter of the use, date of the last modification, state of the calculation procedure; for control: icon, "Enabled", the page type (for pages), parent element. * Identifier, root, path, name and description of the element. * Periodic processing in milliseconds — for common control of the periodic processing of any element including ones who have not any calculation procedure, but that value can be used in the cascade for child elements. There reserved the special values: ** '''0''' — if you want the session period processing; ** '''-1''' — if you want to use the parent widget/page/project processing period in the cascade; ** '''-2''' — for disable the periodic processing in whole. Диалог редактирования свойств контейнеров визуальных элементов содержит две вкладки: вкладку конфигурации основных параметров (рис.2.b) и вкладку конфигурации ресурсов контейнеров (рис.2.e). [[file:Vision_wlbpg_mime_ru.png|center|frame|Рис.2.e. Вкладка редактирования ресурсов контейнера визуальных элементов.]] Dialogue of editing the properties of the visual elements contains four tabs: configuration tab of the main parameters (Fig.2.b), tab of the element attributes (Fig.2.f), tab of the element processing (Fig.2.g) and tab of the element links (Fig.2.h). At different levels of the visual elements hierarchy some tabs can be available, but some are not. [[file:at.png]] The attribute name's rows in the "Processing" tab after the first one treat as help. Текстовые поля атрибутов поддерживают подсветку синтаксиса, правила которой передаются в виде регулярных выражений из интерфейса управления или могут быть встроены в значение текста как комментарий в [[Special:MyLanguage/Documents/API#SnthHgl|XML-теге "SnthHgl"]]. [[file:Vision_wdg_attr_ru.png|center|frame|Рис.2.f. Вкладка атрибутов диалога редактирования свойств визуального элемента.]] [[file:Vision_wdg_prc_ru.png|center|frame|Рис.2.g. Вкладка обработки диалога редактирования свойств визуального элемента.]] [[file:Vision_wdg_lnk_ru.png|center|frame|Рис.2.h. Вкладка связей диалога редактирования свойств визуального элемента.]] === Стили === <section begin=style /> Известно, что человек может иметь индивидуальные особенности восприятия графической информации. Если эти особенности не учитывать то можно получить неприятие и отторжение пользователя к интерфейсу ВУ. Такое неприятие и отторжение может привести к фатальным ошибкам при управлении ТП, а также травмировать человека постоянной работой с интерфейсом. В SCADA системах приняты соглашения, которые регламентируют требования по созданию унифицированного интерфейса ВУ, нормально воспринимаемого большинством людей. При этом, практически отсутствует учёт особенностей людей с некоторыми отклонениями. С целью учесть это обстоятельство, и предоставить возможность централизованно и просто изменять визуальные свойства интерфейса, проектом реализуется менеджер стилей интерфейса визуализации. Пользователем может быть создано множество стилей, каждый из которых будет хранить цветовые, шрифтовые и другие свойства элементов кадра. Простая смена стиля позволит быстро преобразить интерфейс ВУ, а возможность назначения индивидуального стиля для пользователя позволит учесть его особенности. Для реализации этой возможности, при создании кадров, необходимо для свойств цвета, шрифта и других установить параметр "Конфигурация" (таблицы во вкладке "Обработка") в значение "Из стиля". А в параметре "Конфигурационный шаблон" указать идентификатор поля стиля. Далее, это поле автоматически появится в менеджере стилей и его можно будет там менять. Менеджер стилей доступен на странице конфигурации проекта во вкладке "Стили". На этой вкладке можно стили создавать, удалять и изменять, удалять их поля. [[file:Vision_prj_stl_ru.png|center]] В целом, стили доступны начиная с уровня проектов. На уровне библиотек виджетов можно только определять поля стилей у виджетов. На уровне проекта, при выборе стиля, включается работа со стилями, что предполагает доступ к полям стилей вместо непосредственных значений атрибутов. Фактически, это означает, что при чтении или записи атрибута виджета, указанные операции будут осуществляться над соответствующим полем выбранного стиля. При запуске проекта на исполнения будет использован установленный в проекте стиль. В последствии, пользователь может выбрать стиль из перечня доступных. Выбранный пользователем стиль будет сохранён и использован при следующем запуске проекта. <section end=style /> === Связывание с динамикой === Для предоставления в интерфейс визуализации актуальных данных, должны использоваться данные подсистемы "Сбор данных (DAQ)". Природа этих данных следующая: # параметры, содержащие некоторое количество атрибутов; # атрибуты параметра могут предоставлять данные пяти типов: Логический, Целый, Вещественный, Строковый и Объект; # атрибуты параметра могут иметь архив (историю); # атрибуты параметра могут быть на чтение, запись и с полным доступом. Учитывая первый пункт, нужно обеспечить возможность группового назначения ссылки. Для этого используем [[Special:MyLanguage/Documents/DAQ#LogicLev|концепцию логического уровня]]. Связи обеспечивают прозрачное преобразование типов и не требуют специальной конфигурации. Для удовлетворения возможности доступа к архивам связи выполняют проверку типа атрибута и, в случае подключения к "Адресу", в значение помещается адрес связи. В терминах СВУ, динамические связи и конфигурация динамики являются одним процессом, для описания конфигурации которого предусматривается вкладка "Обработка" виджетов (рис.2.f). Вкладка содержит таблицу конфигурации свойств атрибутов и текст процедуры вычисления виджета. Кроме полей конфигурации атрибутов, в таблице предусматривается колонка "Обработка", для избирательного использования атрибутов в вычислительной процедуре виджета, и колонки "Конфигурация", "Конфигурационный шаблон" для описания конфигурации связей. Колонка "Конфигурация" позволяет указать тип связи атрибута виджета: * ''Постоянная'' — во вкладке связей виджета появляется поле указания постоянной, например, особого цвета или заголовка шаблонных кадров. * ''Входная связь'' — связь с динамикой только для чтения. * ''Выходная связь'' — связь с динамикой только для записи. * ''Полная связь'' — полная связь с динамикой, чтение и запись. * ''Из стиля'' — брать значение из стиля проекта. Колонка "Конфигурационный шаблон" позволяет связать группы динамических атрибутов. Например, это могут быть разные типы параметров подсистемы "DAQ" и другие виджеты интерфейса. При корректном формировании этого поля работает механизм автоматического назначения атрибутов, при указании только параметра подсистемы "DAQ" или виджета интерфейса, что упрощает и ускоряет процесс конфигурации. Значение этой колонки имеет следующий формат: * ''Для постоянной:'' прямое значение атрибута. * ''Для связи:'' "'''{параметр}|{идентификатор}'''", где: ** ''параметр'' — группа атрибутов; ** ''идентификатор'' — идентификатор атрибута; именно значение в этом поле сопоставляется с атрибутами параметров DAQ после указания групповой связи, при автоматическом связывании; * ''Для стиля:'' идентификатор-имя поля стиля. Установка связей может быть нескольких типов, который определяется префиксом: * ''val:'' — Прямая загрузка значения через механизм связей. Например, связь "val:100" загружает значение 100 в атрибут виджета. Часто используется в случае отсутствия конечной точки связи, с целью прямой установки значения. * ''prm:'' — Связь на атрибут параметра или параметр, в целом, для группы атрибутов подсистемы "Сбор данных". Например, связь "prm:/LogicLev/experiment/Pi/var" осуществляет доступ атрибута виджета к атрибуту параметра подсистемы "Сбор данных". Знак "(+)", в конце адреса, указывает на успешную линковку и присутствие целевого объекта. Для атрибутов объектного типа допустим иерархический доступ к конкретному свойству объекта, путём указания его пути через символ '#', например: "prm:/LogicLev/experiment/Pi/var#pr1/pr2". * ''wdg:'' — Связь на атрибут другого виджета или виджет, в целом, для группы атрибутов. Например, связь "wdg:/ses_AGLKS/pg_so/pg_1/pg_ggraph/pg_1/a_bordColor" осуществляет доступ атрибута одного виджета к атрибуту другого. Поддерживаются как абсолютные, так и относительные пути связей. Точкой отсчёта адреса абсолютной связи выступает объект корня модуля "VCAEngine", а значит — первым элементом абсолютного адреса является идентификатор сеанса или проекта. Первый элемент, на стороне сеанса, опускается, поэтому связи, установленные в проекте, там работают. Относительные связи берут отсчёт от виджета, где связь указана. Специальным элементом относительной связи является элемент вышестоящего узла "..". * ''arh:'' — Особый тип связи, доступный только для отдельного атрибута типа "Адрес", который позволяет подключиться прямо к архиву значений ("arh:CPU_load"). Может быть полезен для указания архива в качестве источника данных примитива "Диаграмма". Обработка связей происходит с периодичностью вычисления виджета, в порядке: * получение данных входных связей; * выполнение вычисления процедуры виджета; * передача значений по выходным связям. На рисунке 2.g представлена вкладка связей с возможностью группового и индивидуального назначением атрибутов. При размещении виджета в контейнер виджетов все связи исходного виджета добавляются в список результирующих связей контейнера виджетов, однако, только на глубину в один уровень вложения. Из вышесказанного видно, что связи устанавливаются пользователем в процессе конфигурации интерфейса. Однако, для предоставления возможности создания кадров общего назначения с функцией предоставления детализированных данных разных источников одного типа, необходим механизм {{Anch|DynLink|динамической установки связей}}. Такой механизм предусматривается: * резервированием ключевого идентификатора "'''<page>'''" для группы атрибутов связей у кадров общего назначения; * динамическим назначением связей с идентификатором "'''<page>'''", в процессе открытия кадра общего назначения сигналом от другого виджета. Рассмотрим пример, когда имеется кадр общего назначения "Панель контроля графиком" и множество "Графиков" на разных кадрах. "Панель контроля графиком" имеет связи с шаблонами: * tSek -> "<page>|tSek" * tSize -> "<page>|tSize" * trcPer -> "<page>|trcPer" * valArch -> "<page>|valArch" При этом, каждый виджет "График" имеет атрибуты "tSek", "tSize", "trcPer" и "valArch". При вызове сигнала открытия "Панели контроля графиком" из любого виджета "График", происходит связывания атрибутов "Панели контроля графиком" с атрибутами виджета "График", согласно шаблону. Как результат, все изменения на "Панели контроля графиком" будут отражаться на графике, посредством этих связей. Если у виджета "График" присутствуют внешние связи на параметры подсистемы "Сбор данных", связи "Панели контроля графиком" будут устанавливаться на внешний источник. Кроме того, если у "Панели контроля графиком" будут заявлены связи на атрибуты, отсутствующие непосредственно у виджета "График", то будет производится поиск наличия таких атрибутов у внешнего источника — первого на который установлена прямая связь, выполняя, тем самым, дополнение недостающих связей. Для наглядного изображения этого механизма приведена таблица. '''Таблица.''' Механизм динамической линковки. {| class="wikitable" |- ! Атрибуты "Панели контроля графиком" (шаблон динамической связи) !! Атрибуты "Графика" !! Атрибуты внешнего "Параметра" !! Результирующая связь или значение связующегося атрибута |- | tSek (<page>|tSek) || tSek || - || "График".tSek |- | tSize (<page>|tSize) || tSize || - || "График".tSize |- | trcPer (<page>|trcPer) || trcPer || - || "График".trcPer |- | valArch (<page>|valArch) || valArch || - || "График".valArch |- | var (<page>|var) || var || var || "Параметр".var |- | ed (<page>|ed) || - || ed || "Параметр".ed |- | max (<page>|max) || - || - || EVAL |- | min (<page>|min) || - || - || EVAL |} <section end=LinkDyn /> === Visual editing === Visual editing of opened frames in main space of the working window is performed mostly for [[#PrimBox|the Box primitive]] or by inner specific editing for not container primitives like to [[#PrimElFigure|ElFigure]], entry to which performed at twice mouse click. For any frames in the visual editor available only visually changing the geometry, what you can do by placing the mouse cursor to right and/or bottom edges of the frame and next move the edge whether by mouse, holding the left button, or by keyboard, pressing the arrow keys — the arrow keys clicking cause of the corresponding size changing at 5 pixels on 1x scale and holding the Shift key you get 1 pixel. You can also change the frame scaling in the same way but holding the key Ctrl or toggling of the size mode on the status panel right. Visual editing of [[#PrimBox|the Box primitive]] means of the children widgets APPENDING, REMOVING, MOVING, GEOMETRY CHANGING, SCALE CHANGING and PROPERTIES EDITING. Only for the widgets APPENDING you need no other widgets selection on the frame, just select needed widget from the library on the toolbar, or drag and drop from the tree of the widgets libraries, and place that in a mouse position by clicking the left mouse button. To cancel the add operation from the library on the toolbar, click the right mouse button. For other operations you need to select an available child widget or a group of them, so let's see all features of the selection: * SINGLE SELECTION — performed by single click the left mouse button above child widget, next click puts down the selection to widget under the previous one and up to this frame itself, unselecting child widgets. That is the widget stack transition at the fact. * SELECTION BY WINDOW — performs the group selection of the child widgets by drawing a window around those widgets, starting the window from the left mouse button press on any unselected frame space and finishing on the button release. * ADDITIVE SELECTION — you can append some child widgets to the selection holding the Shift key and performing whether single selection or by window. In the case of the single selection, the widget stack transition is turned off here, and instead triggering of the top widgets selection is actually turned on! [[file:at.png]] The selection is saved at the keyboard focus loss when pressing the left mouse button on the selection for return. For REMOVING the selected widget or group of them you can press whether the toolbar or context menu button "Delete visual item", or the Ctrl+D key shortcut. As a combination of the APPENDING and REMOVING there for the selected widget or group of them you can copy/cut by the corresponding toolbar or context menu button or by the keyboard shortcut Ctrl+C/X and next unselect all and paste by the corresponding toolbar or context menu button or by the keyboard shortcut Ctrl+V. For MOVING you can the selected widget or group of them drag, by pressing the left mouse button on the selected area, move the mouse to need position and drop, by releasing the mouse button; or can use for that the arrow keys — the arrow keys clicking cause of the corresponding position coordinate changing at 5 pixels on 1x scale and holding the Shift key you get 1 pixel. For the GEOMETRY CHANGING of the selected widget or group of them you can point the mouse cursor to a green dot of the selection representation and next move the dot whether by mouse, holding the left button, or by keyboard, pressing the arrow keys — the arrow keys clicking cause of the corresponding size changing at 5 pixels on 1x scale and holding the Shift key you get 1 pixel. You can perform the SCALE CHANGING of the selection in the same way but holding the key Ctrl or toggling of the size mode on the status panel right. The coordinates of individual widgets in the selection change according to the ratio of their position in this selection! The PROPERTIES EDITING of the selected widget or group of them is not a graphical operation mostly and performed in the control panel of the widget attributes, but the child widgets selection is very useful as allows you to select a group widgets for next them properties editing in general. == {{Anch|RunTime|Исполнение интерфейсов СВУ}} == Исполнение интерфейса СВУ заключается в запуске нового сеанса проекта или подключении к существующему, на уровне движка СВУ. Далее, модуль непосредственной визуализации отражает и управляет данными сеанса. Главное окно режима исполнения данного модуля имеет вид, представленный на рисунке 3. Реализовано обновление содержимого открытых страниц интерфейса визуализации с периодичностью исполнения визуализируемого сеанса проекта визуализации. В процессе обновления выполняется: * запрос у модели списка открытых страниц, с признаком модификации страницы, и проверка соответствия реально открытых страниц этому списку; * запрос ветви данных модифицированных страниц; * обновление содержимого модифицированных страниц и их виджетов в соответствии с полученными измененными данными. По закрытию окна "Исполнения" производится закрытие сеанса проекта в модели данных, если сеанс не фоновый и это было последнее подключение. Механизм запроса только изменённых данных основан на абсолютном счётчике исполнения сессии. При внесении реальных изменений в атрибуты виджетов выполняется запоминание значения этого счётчика, что и позволяет идентифицировать изменённые атрибуты. Такой подход позволяет повысить производительность и уменьшить трафик, в случае доступа к движку СВУ через сеть. Иерархически, модулем предусматривается возможность размещения страниц проекта как на главном окне исполнения (рис.3), так и вкладывая внутрь виджетов контейнеров, а также путем открытия дополнительных окон поверх основного. При разворачивании главного окна исполнения, или переходе в полноэкранный режим, выполняется масштабирование содержимого страницы интерфейса СВУ, заполняя всё пространство окна и, позволяя, тем самым, исполнять проекты, разработанные на одном разрешении экрана, на разных разрешениях. Главное окно состоит из меню (сверху) строки статуса (снизу) и исполняемого содержимого сеанса между ними. Меню, в режиме исполнения, позиционируется как инструмент администратора OpenSCADA, содержащий общесистемные функции, и доступно только привилегированным пользователям, состоящим в группе "root". Меню имеет следующую структуру: * "Файл" — Общие операции. ** "Печать" — печать: *** "Страница" — страницу пользовательского интерфейса; *** "Диаграмма" — диаграмму на пользовательском интерфейсе; *** "Документ" — документ на пользовательском интерфейсе. ** "Экспорт" — экспорт: *** "Страница" — страницу пользовательского интерфейса, в изображение; *** "Диаграмма" — диаграмму на пользовательском интерфейсе, в изображение и CSV; *** "Документ" — документ на пользовательском интерфейсе, в HTML и CSV для экспортных таблиц; *** "Таблица" — таблица вида "Таблица" примитива "FormEl" на пользовательском интерфейсе, в CSV. ** "Закрыть" — закрыть окно редактора. ** "Выход" — выход из программы. * "Нарушение" — Квитация нарушений: ** "Уровень нарушения" — все нарушения; ** "Свет" — уведомление светом; ** "Гудок" — уведомление гудком; ** "Звук/речь" — уведомление звуком/речью. * "Вид" — Параметры отображения сеанса проекта. ** "Весь экран" — переключатель полноэкранного режима исполнения. * "Помощь" — Помощь по проекту СВУ, этому модулю и OpenSCADA. ** "Про" — информация про данный модуль. ** "Про Qt" — информация о библиотеке Qt, используемой модулем. ** "Руководство проекта '{Имя}'" — вызов руководства на проект визуализации — файл с именем идентификатора проекта СВУ. ** "Руководство на 'Vision'" — вызов руководства на этот модуль. ** "Руководство на 'OpenSCADA 0.9.0'" — вызов руководства на OpenSCADA в целом. * "QTStarter" — Пункт меню, созданный модулем запуска модулей библиотеки Qt. Содержит кнопки запуска UI модулей OpenSCADA, основанных на библиотеке Qt. С помощью этого пункта можно открыть несколько экземпляров окон данного модуля или других модулей. В случае с режимом исполнения, это меню позволяет открыть окно разработки из исполнения, повторным вызовом данного модуля. On the status line locates: * On the right side: ** the clock, in the full-screen mode; ** the current VCA engine station; ** the current user, on whose behalf the VCA interface is executed — by a double-clicking this user can be changed, typing of the new username and password; ** the current interface style, which can be changed by a double-clicking. ** the panel with buttons: *** alarms quietance — by a click the violations can be quieted completely or just the desired type of the notification; *** export and print — calls by a click for the dialog of exporting and printing the default element or selected from the menu, where the export for: **** "Page" — page of the user interface, to image; **** "Diagram" — diagram on the user interface, to image and CSV; **** "Document" — document on the user interface, to HTML and CSV for exporting tables; **** "Table" — table of the "Table" view of the primitive "FormEl" on the user interface, to CSV and only for export. *** 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. Режим исполнения (Runtime) в значительной степени поддерживает многоязычность, которая зависит от языка выбранного пользователя или окна исполнения, т.е. если вы измените пользователя то получите интерфейс исполнения на другом языке этого пользователя. Эта функция включается [[Special:MyLanguage/Documents/Program_manual#ConfigTr|динамическим переводом сообщений OpenSCADA]]. [[file:Vision_run_ru.png|center|frame|Рис.3. Главное окно режима исполнения.]] == {{Anch|Primitives|Представление базовых элементов (примитивов)}} == Данной версией модуля реализованы не все образы примитивов, заложенные проектом. В целом, проектом заложены примитивы: {| class="wikitable" |- ! Идентификатор !! Наименование !! Функция |- | ElFigure || Элементарная графическая фигура || Примитив является основой отрисовки элементарных графических фигур со всевозможной комбинацией их в одном объекте. Предусматривается поддержка следующих элементарных фигур: * Линия. * Дуга. * Кривая Безье. * Заливка замкнутого пространства.<br/> Для всех фигур, содержащихся в виджете, устанавливаются единые свойства толщины, цвета и т.д., также, предусматривается возможность указания вышеперечисленных атрибутов для каждой фигуры отдельно и их динамизация. |- | FormEl || Элемент формы || Включает поддержку стандартных компонентов формы: * Редактирование строки. * Редактирование текста. * Флажок. * Кнопка. * Выбор из списка. * Список. * Дерево. * Таблица. * Слайдер. * Строка прокрутки. |- | Text || Текст || Элемент текста-метка. Характеризуется типом шрифта, цветом, ориентацией и выравниванием. Предусматривается поддержка аргументов. |- | Media || Медиа || Элемент отображения растровых и векторных изображений различных форматов, проигрывания анимированных изображений, проигрывание аудио-фрагментов и просмотр видео-фрагментов. |- | Diagram || Диаграмма || Элемент диаграммы с поддержкой возможности отображения нескольких потоков в реальном времени для: трендов (временных графиков), частотного спектра, XY диаграмм. |- | Protocol || Протокол || Элемент протокола — визуализатор сообщений программы, с поддержкой нескольких режимов работы. |- | Document || Документ || Элемент формирования отчётов, журналов и другой документации на основе доступных данных. |- | Box || Контейнер || Содержит механизм размещения-включения других виджетов для формирования новых, более сложных, виджетов и страниц конечной визуализации. |- | Function, <span style="color: red">в планах</span> || Функция API объектной модели OpenSCADA || Невизуальный виджет, на стороне исполнения, позволяющий включать вычислительные функции объектной модели OpenSCADA в СВУ. |} [[File:at.png]] Для всех реализованных примитивов, кроме "FormEl", этот модуль поддерживает условную генерацию событий от манипулятора мыши по прозрачности указанного пикселя, боле нуля — не полная прозрачность. {{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 |- | runWin (main page) || Window of the execution || Setting the mode of the main window execution: * "Original size (0)". * "Maximize (1)". * "Full screen (2)". |- | 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. |- | winPosCntrSave (main page) || Control and save for position of the windows || Enabling the windows position control and save. |- | notify{N}, notifyVisVision{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 and the same notification, accordingly to the [[Special:MyLanguage/Modules/VCAEngine#Alarms|"Signalling (Alarms)" conception]]. The notification performed in such priority — '''notifyVisVision{N}''' > '''{Qt|Phonon}''' > '''notify{N}'''. That is the '''notifyVisVision{N}''' is most priority, it overrides the '''{Qt|Phonon}''' notification and there you can implement very not ordinary notifications. |- | 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 and that is the local visualisation; a useful example of changing to the "user" after one minute inactivity: <syntaxhighlight lang="JS" style="margin-left: 20pt"> if((SYS.time()-this.ownerSess().userActTm()) < 60)userSetVis = ""; else if(this.ownerSess().reqUser() != "user") userSetVis = "user: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>". |- | vs_background (the 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 (the 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. |} Рассмотрим реализацию каждого примитива более детально. === {{anch|PrimElFigure|Примитив элементарной фигуры (ElFigure)}} === <section begin=ElFigure /> Реализована поддержка элементарных фигур: линия, эллиптическая дуга, кривая Безье и заливка замкнутых контуров цветом и изображением. Для элементарных фигур реализованы следующие операции: * создание/удаление фигур; * копирование фигур; * перемещение и изменение размеров фигур с помощью манипулятора мыши и клавиатуры; * возможность связывания элементарных фигур друг с другом, получая более сложные, для которых доступны все свойства исходных элементарных фигур; * возможность одновременного перемещения нескольких фигур; * заливка замкнутого контура цветом и изображением; * генерация событий клавиш мыши в момент клика на залитые контура; * масштабирование; * трансформация: поворот и отражение. На рисунке представлена часть экрана с кадром, содержащим элементарные фигуры. [[file:Vision_elfig_new.png|center]] Про внутренний графический редактор на модуле Vision вы можете в деталях почитать в соответствующей секции "[[Special:MyLanguage/Modules/Vision#ElFigure|Векторный графический редактор]]", а тут опишем только полезные советы. Фигуры, лежащие в основе данного виджета, содержат точки(начальная и конечная), которые могут стыковаться с соответствующими точками других фигур, и точки, с помощью которых изменяется геометрия фигуры. Добавить фигуру можно с помощью манипулятора мыши: # Выбрать желаемую фигуру из контекстного меню. # Задать, с помощью левой кнопки мыши, начальную и конечную точки (для линии, при удерживании клавиши SHIFT происходит ортогональная её отрисовка). Удалить фигуру(ы) можно путём нажатия кнопки "Del", имея выделенную(ые) фигуру(ы). Скопировать фигуру(ы) можно путём нажатия комбинации клавиш "Ctrl"+"C", имея выделенную(ые) фигуру(ы). Передвинуть/изменить габариты фигуры можно с помощью манипулятора мыши или клавиатуры: # Выделить фигуру, клацнув по ней левой кнопкой мыши. # Перетащить (с помощью мыши или управляющих клавиш) фигуру или одну из её контрольных точек в желаемое место и отпустить кнопку мыши(клавишу). Предусмотрена возможность перемещений нескольких выделенных фигур, выбранных при помощи удержания "Ctrl" (работает при отключенной кнопке "Привязки") либо мышью. Связать фигуры друг с другом можно следующим образом: # Нажать кнопку "Привязки". # Выделить одну из фигур и переместить её начальную или конечную точку к желаемой начальной или конечной точке другой фигуры так, чтобы она попадала в появившуюся окружность. Связанные фигуры перемещаются также как и отдельные — общая точка перемещается для всех фигур, к которым она относится, где приоритет отдается дуге и две дуги не могут быть соединены непосредственно друг с другом. Залить замкнутый контур из фигур можно следующим образом: # Нажать кнопку "Привязки". # Создать замкнутый контур. # Два раза клацнуть мышкой внутри его. Удалить заливку замкнутого контура можно: * из контекстного меню, клацнув правой кнопкой манипулятора мыши по заливке; * разорвав контур заливки; * двойным кликом манипулятора мыши по уже залитому контуру. Поворачивание фигуры осуществляется вокруг центра виджета, а отражение вокруг вертикальной центральной оси-линии. <section end=ElFigure /> === Примитив текста (Text) === <section begin=Text /> Реализована поддержка элемента текста со свойствами: * Шрифт со свойствами: типа-класса, размера, усиления, наклонности, подчёркивания и перечёркивания. * Цвет текста. * Ориентация текста. * Автоматический перенос по словам. * Выравнивание текста по горизонтали и вертикали, со всеми вариантами. * Отображение фона в виде цвета и изображения. * Отображение бордюра вокруг текста с указанным цветом, шириной и стилем. * Отображение HTML. * Дополнение текста аргументами различного типа и свойств. На рисунке представлена часть экрана с кадром, содержащим примеры текста с использованием различных параметров. [[file:Vision_run_txt_ru.png|center]] <section end=Text /> === Примитив элемента формы (FormEl) === <section begin=FormEl /> Реализована поддержка элементов формы на кадрах СВУ с заложенными свойства, включая следующие типы: * ''Редактор строки'' — Представлено следующими видами: "Текст", "Combo", "Целое", "Вещественное", "Время", "Дата", "Время и Дата". Все виды редактора строки поддерживают подтверждение ввода. * ''Редактор текста'' — Представляет редактор плоского текста с подтверждением или отказом от ввода. * ''Поле флажка'' — Предоставляет поле бинарного флажка. * ''Кнопка'' — Предоставляет кнопку с поддержкой цвета кнопки, изображения в кнопке и режимов: ** стандартный; ** переключаемый; ** вызов меню; ** вызов загрузки файла; ** вызов сохранения файла. * ''Выбор из списка'' — Предоставляет поле выбора элемента со списка указанных элементов. * ''Список'' — Предоставляет поле списка с контролем за текущим элементом. * ''Дерево'' — Предоставляет элемент дерева с возможностью выбора элементов. * ''Таблица'' — Предоставляет элемент таблицы с возможностью выбора ячеек, строк или колонок, а также редактирования содержимого ячейки. * ''Слайдер'' — Элемент слайдера. * ''Прогрес-бар'' — Полоска прогресс-бара. * ''Пароль'' — Скрытый ввод пароля. Реализованы режимы "Включен" и "Активен", а также передача изменений и событий в модель данных СВУ — движок. Режим "Активный" приводит к установке курсора активности для непустого фона и дополнительных условий различных видов "Text", "Media" и "Box": * ''Text'' — не пустой текст; * ''Media'' — не пустой источник изображения. На рисунке представлена часть экрана с кадром, содержащим вышеперечисленные элементы формы. [[file:Vision_run_formel_ru.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. * Playback of the full-formatted video and audio by Qt or [[wikipedia:Phonon|Phonon]]. * 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. На рисунке представлена часть экрана с кадром, содержащим примеры просмотра/проигрывания медиа-данных. [[file:Vision_run_media.png|center]] <section end=Media /> === Примитив построения диаграмм (Diagram) === <section begin=Diagram /> Реализована поддержка элемента построения диаграмм для типов "График", "Спектр" и "XY", со свойствами: * Общие свойства типов диаграммы "График", "Спектр" и "XY": ** возможность выбора архиватора, буфера архива или всех данных, при работе с архивными данными; ** адаптация графика параметра к реальным значениям данных путём подстройки шкалы, в случае отсутствия прямо указанного диапазона значений; ** управление масштабом шкалы значений путём увеличения, уменьшения и смещения; ** широкий диапазон масштабирования и адаптации шкалы времени с автоматическим приведением запрашиваемых данных к качеству достаточному для отображения, или нужному для экспорта — указанием предельного количества измерений в пикселе; ** отображение размерной сетки и маркеров по горизонтали и вертикали с адаптацией к диапазону отображения; ** следящий режим за текущим временем путём периодического обновления и смещения времени диаграммы к текущему времени — времени последних данных в буфере архива; ** горизонтальный слайдинг/скольжение с помощью мышь; ** масштабирование участка обрамлённого окном, мышью. * Свойства типа диаграммы "График": ** построение графиков до 100 параметров на одной диаграмме в процентной шкале и возможностью отображения выбранных параметров в собственной шкале; ** построение графика для: текущих, архивных и пользовательских данных; ** формирования промежуточного буфера отображения для текущих значений; ** поддержка активного режима с курсором и получением значений под курсором; ** возможность построения графиков как в линейной, так и логарифмической шкале значений. * Свойства типа диаграммы "Спектр": ** построение графиков частотного спектра параметров до 100 на одной диаграмме в процентной шкале и возможностью отображения выбранных параметров в собственной шкале; ** построение графика для: архивных и пользовательских данных; ** поддержка активного режима с курсором и получением значений под курсором. * Свойства типа диаграммы "XY": ** построение XY графиков параметров до 50 на одной диаграмме в процентной шкале и возможностью отображения выбранных параметров в собственной шкале; ** построение графика для: текущих, архивных и пользовательских данных; ** формирования промежуточного буфера отображения для текущих значений; ** параметры распределяются парами на график, где чётные по оси Y (0,2,4...) и нечётные по оси X (1,3,5...); ** возможность построения графиков как в линейной, так и логарифмической шкале значений. Модулем визуализатора предоставляется и используется ряд специфических атрибутов данного примитива, информация о которых приведена в таблице. {| class="wikitable" |- ! Идентификатор !! Имя !! Назначение |- | sclWin || Масштабирование участка обрамлённого окном, мышью || Логический тип атрибута, создаваемый пользователем вручную, в случае надобности. Для значения "истина" включается режим масштабирования участка тренда обрамлённого окном с помощью мыши. |} На рисунке представлена часть экрана с кадром, содержащим примеры диаграмм: "График", "Спектр" и "XY". [[file:Vision_run_diag.png|center]] <section end=Diagram /> === Примитив формирования протокола (Protocol) === <section begin=Protocol /> Реализована поддержка элемента формирования протокола со свойствами: * Формирование протокола из архива сообщений за указанное время и глубину. * Запрос данных из указанных архиваторов сообщений. * Выборка данных из архивов по уровню важности и шаблону категории сообщений. * Поддержка режима слежения за появлением сообщений в архиве сообщений. На рисунке представлена часть экрана с кадром, содержащим пример протокола. [[file:Vision_prot_ru.png|center]] <section end=Protocol /> === Примитив формирования отчётной документации (Document) === <section begin=Document /> Реализована поддержка элемента формирования отчётной документации со свойствами: * Гибкое формирование структуры документа на основе языка гипертекстовой разметки, что предоставляет поддержку широких возможностей форматирования документов. * Формирование документов по команде или расписанию, что необходимо для формирования отчётной документации в архив, с последующим просмотром архива. * Формирование документов в режиме реального времени, для предоставления их полностью динамически и на основе архивов за указанное время. * Использование атрибутов виджета для передачи в документ значений и адресов на архивы, что позволяет использовать виджет документа как шаблон, при формировании отчётов с другими входными данными. В основе любого документа лежит XHTML-шаблон. XHTML-шаблон это тег "body" WEB-страницы, содержащий статику документа в стандарте XHTML 1.0, и элементы исполняемых инструкций на одном из языков пользовательского программирования OpenSCADA в виде '''<?dp {procedure} ?>'''. Результирующий документ формируется путём исполнения процедур и вставки их результата в документ. Источником значений исполняемых инструкций являются атрибуты виджета этого примитива, а также все механизмы языка пользовательского программирования. Атрибуты могут добавляться пользователем и линковаться на реальные атрибуты параметров или-же являться автономными, значения которых будут формироваться в скрипте виджета. В случае со слинкованными атрибутами могут извлекаться значения из истории, архива. На рисунке представлен кадр, содержащий пример документа. [[file:Vision_doc_ru.png|center]] <section end=Document /> === {{anch|PrimBox|Примитив контейнера (Box)}} === <section begin=Box /> Реализована поддержка примитива контейнера, по совместительству выполняющего роль страниц проектов. Данный примитив является единственным элементом-контейнером, который может включать в себя ссылки на кадры из библиотеки, формируя тем самым пользовательские элементы нужной конфигурации. Примитив реализует предусмотренные проектом свойства. Перечислим, по пунктам, свойства данного примитива: * ''Контейнер'' — Позволяет формировать нужные объекты путём группировки базовых в рамках данного примитива. * ''Страница'' — Элементы, построенные на данном примитиве, могут выполнять роль страницы пользовательского интерфейса. * ''Контейнер страниц'' — Свойство замещения, в процессе исполнения, собственного содержимого другой страницей. Используется для формирования фреймов на страницах пользовательского интерфейса. Например, главная страница типовой SCADA-системы с объектами сигнализации строится именно таким образом. * ''Фон'' — Поддерживает возможность указания фона в виде цвета и изображения. * ''Бордюр'' — Поддерживает возможность изображения бордюра с указанным цветом, толщиной и стилем. <section end=Box /> Пример редактирования кадра, основанного на данном примитиве, приведен на рисунке 2.a, а на рисунке 3 изображена страница, содержащая контейнер страниц, построенный на основе данного примитива. == {{Anch|ElFigure|Векторный графический редактор}} == === Назначение === Наличие собственного векторного графического редактора является неотъемлемой частью уважающей себя SCADA системы. Опыт показывает, что наиболее информативной формой представления технологических процессов являются мнемосхемы — совокупность сигнальных устройств, изображений оборудования и внутренних связей контролируемого объекта, выполняемые на персональном компьютере. Для их создания можно использовать любой из существующих графических редакторов. Однако, полученные таким образом мнемосхемы являются статическими и не отражают динамику изменения характеристик процесса, а следовательно, они неадекватны и неудобны для восприятия. Таким образом, одной из задач, стоящих перед разработчиками SCADA систем, является создание графического редактора для изображения объектов, характеристики которых могут быть динамически изменены. === Принципы и функции разработанного графического редактора === Основой описываемого редактора являются три графических примитива: линия, дуга и кривая Безье. К динамически изменяющимся характеристикам этих примитивов относятся: * Координаты контрольных точек, которые используются для задания формы линии, дуги или кривой Безье. При этом, линия имеет — 2 контрольные точки, дуга — 5 контрольных точек, кривая Безье — 4 (рис.5.2.a). * Ширина линии. * Ширина бордюра (границы). * Цвет бордюра (границы). * Стиль линии (сплошная, пунктирная, точечная). [[file:Vision_ElFigCntrPoints.png|center|frame|Рис.5.2.a. Контрольные точки линии, дуги и кривой Безье.]] Примеры примитивов, различного цвета, толщины, стилей, с бордюрами и без них, приведены на рисунке 5.2.b. [[file:Vision_ElFigExamples.png|center|frame|Рис.5.2.b. Примеры примитивов, слева направо: линия, дуга и кривая Безье.]] Предусмотрена возможность связи различных графических примитивов, для создания сложных графических объектов. Если связанные примитивы образуют замкнутый контур, то он может быть залит цветом и изображением (рис.5.2.c). [[file:Vision_ElFigFills.png|center|frame|Рис.5.2.c. Заливки замкнутого контура цветом и изображением.]] Графический редактор позволяет масштабировать и поворачивать фигуры (рис.5.2.d) — примитивы и сложные графические объекты. К возможностям редактора также относятся: выделение, перемещение, копирование и удаление фигур. [[file:Vision_ElFigScaleRotate.png|center|frame|Рис.5.2.d. Масштабирование и поворот фигур.]] === Основные принципы работы в графическом редакторе === Для того чтобы приступить к работе с графическим редактором, после запуска проекта OpenSCADA, необходимо вызвать "Рабочий пользовательский интерфейс (Qt)". Во вкладке "Виджеты" содержится перечень существующих графических библиотек и принадлежащих им элементов. Предположим, что нам необходимо добавить графический элемент в одну из существующих библиотек. Для этого выделим имя библиотеки и нажмем кнопку ([[File:Vision_ElFigCreate.png]]) на панели инструментов. В появившееся окно введем идентификатор и имя нового графического элемента. После чего перейдем к этому элементу и нажмем кнопку ([[File:Vision_ElFigEdit.png]]). Справа появится поле для рисования. С помощью двойного щелчка мышью по этому полю, либо при помощи контекстного меню, войдем в режим редактирования — режим графического редактора, позволяющий осуществлять все предусмотренные манипуляции с фигурами. В тот момент, когда созданный нами графический элемент находится в фокусе, вкладка "Атрибуты" приобретет вид, представленный на рисунке 5.3.a. [[file:Vision_ElFigAttrs_ru.png|center|frame|Рис.5.3.a. Атрибуты элементарной фигуры.]] С помощью мыши, или поля "Геометрия" вкладки "Атрибуты", зададим размеры поля для рисования и масштабные коэффициенты. Воспользовавшись полем "Линия" вкладки "Атрибуты", зададим ширину, цвет, стиль линий, которыми будем рисовать. С помощью поля "Граница", зададим ширину и цвет бордюра. Поле "Заполнение" позволяет задать цвет и изображение заливки. "Список элементов" содержит перечень примитивов, используемых при создании графического объекта. Элементы всех полей вкладки "Атрибуты" могут динамически изменяться в процедурах пользователя. Графические примитивы могут быть изображены с помощью мышки или заданы с помощью списка графических примитивов ("Список элементов"). В первом случае, координаты контрольных точек создаваемого примитива вычисляются автоматически, а ширина, цвет, стиль линии, ширина и цвет бордюра устанавливаются по умолчанию, из вкладки "Атрибуты". Во втором случае, примитив необходимо описать в "Списке элементов" следующим образом: :''line:(x1|y1):(x2|y2):width:color:border_width:border_color:style'' '''(1)''' :''arc:(x1|y1):(x2|y2):(x3|y3):(x4|y4):(x5|y5):width:color:border_width:border_color:style'' '''(2)''' :''bezier:(x1|y1):(x2|y2):(x3|y3):(x4|y4):width:color:border_width:border_color:style,'' '''(3)''' Где: :''(x1|y1)'' — координаты первой контрольной точки примитива; :''(x2|y2)'' — координаты второй контрольной точки примитива; :''(x3|y3)'' — координаты третьей контрольной точки примитива; :''(x4|y4)'' — координаты четвертой контрольной точки примитива; :''(x5|y5)'' — координаты пятой контрольной точки примитива; :''width'' — ширина линии, которой будет нарисован примитив; :''color'' — цвет линии, которой будет нарисован примитив; :''border_width'' — ширина бордюра; :''border_color'' — цвет бордюра; :''style'' — стиль линии ("0" — сплошная, "1" — пунктир, "2" — точечная). При этом, приоритетными являются значения ширины, цвета, стиля линии, ширины и цвета бордюра, заданные в списке элементов. Если необходимо использовать какие-либо характеристики, устанавливаемые полями "Линия" или "Граница" вкладки "Атрибуты", то, при описании примитива, их следует пропустить. Например, мы хотим создать линию с: шириной 3, красного цвета, сплошную и без бордюра. При этом, в поле "Линия" заданы: ширина линии 3, черный цвет и сплошной стиль; в поле "Граница" заданы: ширина бордюра 5, зеленый цвет. Тогда описание примитива в списке элементов должно выглядеть следующим образом: :''line:(x1|y1):(x2|y2)::red:0::'' '''(4)''' Формы записи (1) - (4) задают статические характеристики примитивов, которые не могут быть изменены программно. Для задания динамических характеристик необходимо использовать форму записи: :''line:1:2:w1:c1:w2:c2:s1'' '''(5)''' Тогда, в окно "Атрибуты", добавятся поля: Точка 1 (''1''), Точка 2 (''2''), Ширина 1 (''w1''), Ширина 2 (''w2''), Цвет 1 (''c1''), Цвет 2 (''c2''), Стиль 1 (''s1'') (рис.5.3.b). Значения этих полей можно изменять программно, с помощью языка пользовательского программирования OpenSCADA. Очевидно, что при желании, динамическими могут быть объявлены не все свойства примитива, а одно или несколько, кроме того, одно динамическое свойство может быть использовано многократно. Редактирование координат контрольных точек осуществляется с помощью мыши либо путем их изменения в cписке элементов, для статических точек; или прямо во вкладке "Атрибуты", имея в наличии динамические точки ("Точка 1", ...). Редактирование других характеристик осуществляется с помощью изменения содержимого полей "Линия", "Граница", "Заполнение" на вкладке "Атрибуты" или в списке элементов. [[file:Vision_ElFigDynAttrs_ru.png|center|frame|Рис.5.3.b. Динамические атрибуты элементарной фигуры.]] Предусмотрены возможности: * выделения: ** щелчком левой кнопки мыши по фигуре; ** совместного выделения примитивов — левой кнопкой мыши + нажатая клавиша "Ctrl", при выключенной кнопке "Привязки"; ** совместного выделения рамкой, рисуемой с помощью нажатой левой кнопки мыши. * перемещение, клавиатурой/мышью, * копирование и вставка — "Ctrl"+"C", "Ctrl"+"V" или из контекстного меню; * удаление — "Del". Для связи примитивов друг с другом необходимо: # Нажать кнопку "Привязки". # Выделить одну из фигур и переместить её начальную или конечную точку к желаемой начальной или конечной точке другой фигуры так, чтобы она попадала в появившуюся окружность. Для заливки замкнутого контура необходимо два раза кликнуть мышей внутри него либо следующим образом задать заливку в списке элементов: :''fill:(x1:y1):(x2:y2):...:(xn:yn):color:image'' — статика; :''fill:1:2:3:...:c1:i1'' — динамика. Где: :''(x1:y1):(x2:y2):...:(xn:yn)'' — координаты начальных и конечных точек примитивов, образующих замкнутый контур; :''color'' — цвет заливки; :''image'' — изображение заливки. При этом, приоритетными являются значения цвета и изображения заливки, заданные в списке элементов. Если необходимо использовать характеристики, устанавливаемые полем "Заполнение" вкладки "Атрибуты", то, при описании примитива, их следует опустить. Для масштабирования фигур необходимо, в поле "Геометрия", задать значения масштаба по осям "X" и "Y". Кроме того, существует возможность визуально увеличить/уменьшить изображение не меняя масштаб. Для этого, необходимо выйти из режима редактирования, щелкнуть правой кнопкой мыши по полю виджета, в появившемся контекстном меню выбрать пункт "Увеличить (+10%)"/"Уменьшить (-10%)" либо покрутить колесико мышки, удерживая при этом нажатой клавишу "Ctrl". Выход из режима редактирования осуществляется с помощью нажатия клавиши "Esc" либо с помощью контекстного меню виджета. Существует возможность поворачивать содержимое виджета, для чего следует, в окне "Атрибуты", задать "Угол поворота" от -360 до 360. Графический редактор поддерживает прозрачность цвета, задаваемую следующим образом: '''{color}-{t}''', где ''color'' — цвет, а ''t'' — прозрачность от 0 (полностью прозрачный) до 255 (непрозрачный). === Контекстное меню графического редактора === Предусмотрено контекстное меню, вызываемое щелчком правой кнопки мыши в области редактируемого виджета. В зависимости от того, какой объект находится под указателем мыши, контекстное меню может принимать несколько различный вид. Ниже, на рисунке 5.4, приведены примеры контекстного меню. [[file:Vision_ElFigPopup_ru.png|center|frame|Рис.5.4. Контекстное меню для линий (линия, дуга, кривая Безье) и для заливки, слева направо.]] Контекстное меню включает следующие секции (сверху вниз): * рисование: ** выбор фигуры для рисования; ** выбор режима "Привязки"; ** возврат в режим выбора — "Курсор". * отмена/повтор изменений; * копирование и вставка выбранных фигур, в рамках одного виджета; * поднятие и опускание выбранных фигур по оси "Z"; * управление атрибутами примитивов: сделать статическими или динамическими; * вызов диалога свойств элементарной фигуры; * выход из режима редактирования. === Диалог свойств элементарной фигуры === Диалог, варианты которого представлены на рисунках 5.5.a, 5.5.b, 5.5.c, реализован для интерактивного и удобного управления свойствами фигур(ы). [[file:Vision_ElFigDlgLine_ru.png|center|frame|Рис.5.5.a. Диалог свойств элементарной фигуры для одной линии (линия, дуга или кривая Безье).]] [[file:Vision_ElFigDlgLines_ru.png|center|frame|Рис.5.5.b. Диалог свойств элементарной фигуры для группы выбранных линий.]] [[file:Vision_ElFigDlgFill_ru.png|center|frame|Рис.5.5.c. Диалог свойств элементарной фигуры для заливки.]] Как видно из рисунков выше, диалог может иметь три различных формы, зависимо от объекта для которого вызывается. В заголовке диалога перечислены номера фигур, для которых он вызван. Эти номера соответствуют позиции фигуры в списке элементов, начиная сверху. Если диалог вызван для одиночной фигуры (линия, дуга или кривая Безье), то в нем существует возможность редактировать координаты точек фигуры (рис.5.5.a). Если точка соединена с точкой другой фигуры или фигур, и включен режим "Привязки", то введенные координаты будут применены ко всем фигурам, для которых эта точка общая, а заливки, в которых участвует фигура, будут соответственно перерисованы. Если-же диалог вызван для группы выбранных фигур (рис.5.5.b), то свойства (атрибуты), указанные в диалоге, будут применены ко всем фигурам, перечисленным в заголовке диалога. При вызове диалога, в полях свойств будут отображаться данные той фигуры из группы выбранных, относительно которой было вызвано контекстное меню. Существует возможность включать/исключать отдельные свойства диалога. Для этого предусмотрена кнопка ([[File:Vision_disableButton.png]]). В случае исключения отдельных свойств они не будут обрабатываться при подтверждении диалога (кнопка "Принять"). При подтверждении диалога, все указанные данные для включенных свойств будут применены для всей группы фигур. Диалог свойств заливки (рис.5.5.c) позволяет управлять свойствами отдельной заливки. При выборе флажка справа от свойства оно (свойство), после подтверждения диалога, устанавливается в значение по умолчанию, которое указано во вкладке "Атрибуты". Кнопки "Дин/Стат" делают соответствующие свойства динамическими либо статическими. == {{Anch|Cfg|General module configuration}} == To set up own behavior in non-obvious situations, the module provides the ability to configure individual parameters through the control interface of OpenSCADA (Fig.6). * Module state: "Running", number of individual displays in the library of Qt and main widows list. * Exit when closing the last running project — useful for solutions that are immediately launched on the project interface. * Reset widget styles to common — required for some widget styles like "gtk" in some specific widgets in run mode, like buttons for the background color and images. * Lifetime and maximum number of the cached pages. The visualiser provides acceleration of the user interface placing previously opened pages into the cache, to control the storage time and maximum number of the pages in which this properties are intended. Indication of the zero value in general excludes cleaning the cache. * The link to the configuration page of the external OpenSCADA stations and the station of the VCA-engine of the remote OpenSCADA, where reserved the special items: ** "<Local>" — the current local station; ** "<Select>" — use for querying the station together user and password at the module generic call, useful at presence of many control stations and for opening several of them simultaneously. * Starting user — points on behalf of what user to open the module window without requiring the password, for local station. For remote station it is points to an user different from the typical one, pointed into the host configuration. * User password (remote station) — password of the user different from the typical one, pointed into the host configuration. * Connection recovery time, in seconds (remote station) — indicates the time that the lost remote connection is restored. * List of the projects for launch, separated by symbol ';', for their automatic execution with the launch of the module. To provide the possibility to indicate the opening of the window of the project execution on the desired display of many display systems, the recording format of the project "PrjName-1" is provided, where 1 — the number of the target display. To connect to the background or another open session use "'''ses_ {SesID}'''". :[[File:at.png]] The display selection function is possible for non-virtual and non-duplicate desktops, that is, when using xinerma or NVidia in the appropriate mode. Technically, the Qt-function ''screen()'' should return various display widget objects by their numbers. [[file:Vision_cfg.png|center|frame|Рис.6. Страница конфигурации модуля.]]
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