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:Документы/Часто задаваемые вопросы}}<languages/> __TOC__ == Политические и концептуальные == '''Q:''' OpenSCADA непонятна и сложна в освоении. Почему так, и есть ли инструкции быстрого старта и продвинутого "Как выполнить ..."?<br /> '''Re:''' OpenSCADA тщательно прописана, предельно структурирована и формализована. Однако впечатления непонимания и сложности ожидаемы. Исходя из целей проекта, программа является предельно модульной, а значит вариантов конфигурации и использования очень много. С одной стороны это усложняет восприятие, но с другой — повышает шансы "охвата" именно Вашей специализированной задачи. Кроме того, нужно всегда помнить, что сложное и непонятно всё неизвестное, которое действительно совсем необязательно является таким. И этот психологический барьер нужно преодолевать при каждом освоении нового. Руководство по быстрому старту существует и доступно [[Special:MyLanguage/Documents/Quick_start|здесь]], а расширенный "Как выполнить ..." также [[Special:MyLanguage/Documents/How_to|тут]].. '''Q:''' Работает ли OpenSCADA в операционной системе QNX, FreeBSD, MS Windows?<br /> '''Re:''' OpenSCADA разрабатывается по принципам многоплатформенности, основываясь на признанном мировом стандарте POSIX и многоплатформенных библиотеках. Однако, ввиду ограниченности ресурсов и интересами автора и разработчиков, проект ведётся только в ОС Linux. Дальнейшая адаптация к другим платформам запланирована после выпуска версии 1.0 и на данный момент OpenSCADA работает на аппаратных платформах x86, x86_64, ARM и программной платформе Android. Поддержка той или иной платформы будет зависеть от заинтересованности сообщества и наличия отдельного мантейнера для аппаратно-программной платформы. '''Q:''' Возможно ли управлять OpenSCADA посредством обычного WEB-браузера?<br /> '''Re:''' Да, возможно. Для конфигурации OpenSCADA из WEB-браузера созданы модули [[Special:MyLanguage/Modules/WebCfg|UI.WebCfg]] и [[Special:MyLanguage/Modules/WebCfgD|UI.WebCfgD]]; для исполнения интерфейсов оператора создан модуль [[Special:MyLanguage/Modules/WebVision|UI.WebVision]] и для создания пользовательских HTML страниц создан модуль [[Special:MyLanguage/Modules/WebUser|UI.WebUser]]. Которые вызываются модулем [[Special:MyLanguage/Modules/HTTP|Protocol.HTTP]], подсистемы "Транспортные Протоколы". '''Q:''' Допускает ли программа добавление/удаление/обновление модулей на ходу (без остановки)?<br /> '''Re:''' Данная возможность предусмотрена программой и обеспечивается подсистемой "Управление модулями". Фактически, обновление модулей может происходить автоматически, после обнаружения новой версии модуля. == Архитектурные, использование и короткие "Как выполнить ..." == === {{Anch|UsingCore|Ядро OpenSCADA}} === '''Q:''' Каким образом реализуется многоязыковая поддержка? Могу ли я выполнить локализацию на свой родной язык?<br /> '''Re:''' Многоязыковая поддержка реализована на основе стандарта интернационализации I18n. И файлы интернационализации модулей отделены от файла интернационализации ядра программы, что обеспечивает полноценную поддержку независимого распространения и разработки модулей к OpenSCADA. Перевод программы в целом и модулей в отдельности может быть выполнен независимо от наличия исходных текстов. Для перевода достаточно получить *.po или *.pot файлы нужного компонента и в обычном текстовом редакторе, или специализированной программе, выполнить перевод сообщений в файлах с английского на нужный язык. Актуальные файлы вы можете получить из [http://oscada.org/svn/trunk/OpenSCADA репозитория исходных текстов проекта] в каталоге "src/po" ядра программы и каталогах "src/moduls/{subsys}/{module}/po" модулей, а по завершению предложить результаты нового перевода для включения в репозиторий исходных текстов, написав в [http://oscada.org/ru/forum/topics/proekt/ форум проекта] или прямо [[User:RomanSavochenko|автору и главному разработчику проекта]]. PO-файлы не используются программой непосредственно, поэтому для быстрой проверки результата перевода и исправления ошибок форматирования можете воспользоваться командой {{InLineCode|<nowiki>msgfmt -vo [openscada|oscd_{ModId}].mo {lang}.po</nowiki>}} и поместить полученный MO-файл '''[openscada|oscd_{ModId}].mo''' в каталоге "/usr/share/locale/{lang}/LC_MESSAGES" актуальной инсталляции OpenSCADA для языка ''lang''. '''Q:''' Могу ли я создать свой собственный модуль для какой либо подсистемы?<br /> '''Re:''' Да, конечно. Для помощи в этом создан [[Special:MyLanguage/Documents/API|документ]], где практически полностью описана архитектура ядра, его функции и API модулей различных подсистем. Дополнительно создано [[Special:MyLanguage/Documents/How_to/Create_module|руководство по созданию модулей к OpenSCADA]] и для каждой подсистемы создан модуль-шаблон, взяв за основу который можно быстро создать собственный модуль. '''Q:''' Как организовывается разделение доступа?<br /> '''Re:''' Используется схема безопасности подобная UNIX OC. Так, нужные компоненты имеют владельца, принадлежат группам и содержат триаду доступа "rwxrwxrwx". Кроме того, данный механизм безопасности внедрён в [[Special:MyLanguage/Documents/API#CntrNode|интерфейс управления OpenSCADA]], который в свою очередь пронизывает всю программу. '''Q:''' Каким образом в OpenSCADA можно реализовывать межмодульные связи?<br /> '''Re:''' Межмодульные связи могут быть следующих типов: * Стандартный интерфейс доступа — производится посредством виртуального интерфейса модульных подсистем. * Расширенный интерфейс доступа — предусматривает экспорт функций внешнего интерфейса модулем экспортёром и последующее подключение модуля импортёра к этим функциям с помощью функций объекта "[[Special:MyLanguage/Documents/API#TModule|TModule::modFunc()]]". * Пользовательские функции — любой компонент программы может регистрировать свои пользовательские функции ("[[Special:MyLanguage/Documents/API#TCntrNode|TCntrNode::objFuncCall()]]"), которые в последствии могут быть использованы в окружении пользовательского программирования OpenSCADA. '''Q:''' Как OpenSCADA собрать из исходных текстов?<br /> '''Re:''' Сборка любого программного проекта из исходных текстов, на системном языке вроде C/C++ и сложностью выше среднего, является нетривиальной задачей, особенно для специфических окружений и окружений для которых ещё не выполнена адаптация. Для решения этой задачи нужна соответствующая подготовка и предварительный опыт сборки. Если есть возможность получить OpenSCADA собранной и в виде готовых пакетов под ваше окружение, то обязательно ею воспользуйтесь! Если же нет пакетов под ваше окружение или Вы сознательно желаете собрать программу из исходных текстов под адаптированное окружение то воспользуйтесь [[Special:MyLanguage/Documents/How_to/Build_from_source|руководством для сборки из исходных текстов]]. Адаптация к сборке и работе в других окружениях является значительно более нетривиальной задачей, особенно для окружений очень далёких от POSIX или понятия меж-платформенной совместимости вообще, является отдельным под-проектом OpenSCADA и предусматривает продолжительный процесс вроде [[Special:MyLanguage/Sub-projects/Adaption_to_Android|адаптации к Android]], поэтому не нужно её путать с простой сборкой под адаптированное окружение! === БД === '''Q:''' Могу ли я получить данные непосредственно из БД?<br/> '''Re:''' Да, Вы можете. Для баз данных (БД), которые поддерживают SQL, Вы можете использовать [[Special:MyLanguage/Documents/User_API#SYS.BD|функцию SQLReq()]] к соответствующей БД. В общем и для не SQL баз данных Вы можете использовать API доступа к слою баз данных OpenSCADA в функциях таблицы БД [[Special:MyLanguage/Documents/User_API#SYS.BD|fieldStruct(), fieldSeek(), fieldGet(), fieldSet(), fieldDel()]]. === Физический и логический-виртуальный сбор данных === '''Q:''' Где и как выполнять дополнительную логическую обработку атрибутов параметров, включая логическое связывание в одном объекте?<br /> '''Re:''' Любая математическая обработка атрибутов параметров может производится в вычислительных объектах контроллеров (модулях подсистемы "Сбор данных"), например, в блочном вычислительном контроллере ([[Special:MyLanguage/Modules/BlockCalc|DAQ.BlockCalc]]) и объекте контроллера на основе Java-подобного языка ([[Special:MyLanguage/Modules/JavaLikeCalc|DAQ.JavaLikeCalc]]). Кроме того, обработка может выполняться на логическом уровне параметров ([[Special:MyLanguage/Modules/LogicLev|DAQ.LogicLev]]) в модулях подсистемы "Сбор данных", специально для этого предусмотренных (работающих по шаблонам параметров) или содержащих встроенную реализацию механизма шаблонов параметров. Т.е. пользователь может формировать параметры с нужной ему структурой и алгоритмом пост-обработки, формируя логически связанные объекты. Часть обработки может выполняться в СВУ, непосредственно при визуализации ([[Special:MyLanguage/Modules/VCAEngine|UI.VCAEngine]]). Про сбор данных в целом смотрите в [[Special:MyLanguage/Documents/DAQ|документе]]. '''Q:''' Где проверяются шкалы параметров и различные уставки сигнализации?<br /> '''Re:''' Проверка шкал и уставок может реализовываться самим контроллером, с сигнализацией через соответствующие атрибуты параметров, а также на логическом уровне параметров, для "сырых" источников данных. Кроме того, данный анализ может производится непосредственно в среде визуализации и управления (СВУ). '''Q:''' Могу ли я получить (прочитать и записать) значение атрибута параметра сбора данных, например, из процедуры пользовательского интерфейса?<br/> '''Re:''' Основным интерфейсом обмена значениями параметров сбора данных с элементами или атрибутами соответствующей части OpenSCADA является статичное связывание, которое является самым быстрым. Однако внутренний язык и динамическая объектная модель узлов OpenSCADA позволяет Вам осуществлять динамический доступ к объектам атрибутов параметров сбора данных, например, Вы можете получить значение атрибута [[Special:MyLanguage/Documents/User_API#SYS.DAQ|функцией get()]]. '''Q:''' Как я могу сохранить-восстановить модифицированные данные на логическом уровне?<br /> '''Re:''' Действительно, иногда может понадобиться сохранение и затем восстановление, в основном при перезапуске, некоторых модифицированных динамических данных вроде счётчиков пробега оборудования. В целом, обработку такого рода источников данных и оборудования нужно осуществлять на [[Special:MyLanguage/Sub-projects/Logical_level|логическом уровне]] подсистемы "Сбор данных", а реализовать её можно многими путями, предусматривающими сохранение данных на некотором хранилище и последующее их восстановление, однако наиболее известные способы это: * Периодическое, или при завершении, сохранение контекста параметров шаблона с помощью запроса пользовательского API OpenSCADA через [[Special:MyLanguage/Documents/User_API#SYS|cntrReq()]], где "force" для принудительного сохранения немодифицированных параметров: <syntaxhighlight lang="JavaScript"> SYS.cntrReq(SYS.XMLNode("save").setAttr("path",this.nodePath()+"/%2fobj").setAttr("force","1"));</syntaxhighlight> * Если атрибут шаблона со счётчиком архивируется тогда при старте параметра Вы можете получить последнее значение из этого архива, например, так: <syntaxhighlight lang="JavaScript"> if(f_start) prevArchRestore = false; if(!prevArchRestore && (archEnd=this.cntr.arch().end("FSArch.1s"))) { SYS.messInfo("testArch", "val="+this.cntr.arch().getVal(archEnd)+"; " "val1="+this.cntr.arch().getVal(archEnd,false,"FSArch.1s")+"; " "val2="+this.cntr.get(archEnd/1000000,archEnd%1000000)); cntr = this.cntr.arch().getVal(archEnd); prevArchRestore = true; }</syntaxhighlight> * Создание специальной таблицы БД и запись/чтение этих данных прямо в эту таблицу посредством SQL-запросов через [[Special:MyLanguage/Documents/User_API#DB|SQLReq()]]. '''Q:''' Возможно ли, и каким образом, реализуется резервирование параметров?<br /> '''Re:''' Как и любая пост-обработка, резервирование параметров осуществляется [[Special:MyLanguage/Documents/DAQ#LogicLev|логическим уровнем]] путём создания шаблона параметра, реализующего возможность в одном параметре описывать несколько однотипных датчиков, которые будут иметь собственные атрибуты значений. Результирующее значение будет помещаться в обобщающий атрибут значения. === Архивирование-история и Нарушения === '''Q:''' Каким образом определяется цикличность архивирования значений?<br /> '''Re:''' Архивирование является независимой от контроллеров и параметров задачей и выполняется она модульной подсистемой "[[Special:MyLanguage/Documents/Program_manual#CfgArch|Архивы-История]]". Что и как архивировать определяется индивидуально для каждого атрибута параметра. Предусмотрены два режима архивирования: пассивный и активный. Пассивное архивирование определяется цикличностью получения данных у контроллера — циклом модуля сбора данных. Активное архивирование обеспечивается задачей подсистемы архивирования и независимо от цикла и способа сбора данных модулем "DAQ". '''Q:''' В процессе разработки-наладки у меня остаются несоответствующие активные нарушения. Что с ними делать?<br /> '''Re:''' Да, учитывая, что нарушения в таблицу активных нарушений часто попадают-формируются пользовательскими процедурами, то "залипание" их там может случаться. Соответственно, вы можете просто перезапустить проект OpenSCADA или удалить-снять такие нарушения в [[:File:QTCfg_subsys_arch_mess_ru.png|главной вкладке "Сообщения" страницы подсистемы "Архивы-История"]]: выбираете уровень нарушений "Информация (1[X]), НАРУШЕНИЕ", устанавливаете размер в 0, после чего в таблице сообщений должны быть все актуальные нарушения, отдельные из которых можно убрать через контекстное меню, а всё видимое кнопкой под таблицей; для большой группы нарушений, и не всех, можете установить их чёткие характеристики времени, уровня и категории, чтобы увидеть в таблица, а соответственно "снять" сразу все необходимые. '''Q:''' Возможна ли работа с потоковыми данными?<br /> '''Re:''' Потоковый и пакетный сбор данных работает в связке с архивом и его буфером. Т.е. источник, получив пакет/блок данных, непосредственно помещает его в архив атрибута параметра или же берет пакет с буфера архива при потоковом выводе. '''Q:''' Могу ли я осуществить экспорт архивных данных (истории) в другой формат, скажем — CSV, Excel?<br /> '''Re:''' В целом, экспортировать архивные данные Вы можете и тут есть три особенности, а именно: место, форматы и режим экспорта. Поскольку конечным пользователем, для которого эти данные формируются, является пользователь конечного интерфейса визуализации — оператор, то встроенная функция экспорта предоставляется [[Special:MyLanguage/Modules/Vision|этими интерфейсами]] для данных примитивов [[Special:MyLanguage/Modules/VCAEngine#Diagram|диаграммы]] и [[Special:MyLanguage/Modules/VCAEngine#Document|документа]], где можно осуществить экспорт в CSV, файл изображения и HTML. Что касается других форматов данных, особенно закрытых и одноплатформенных вроде Excel, то экспорт в них может быть реализован [[Special:MyLanguage/Documents/User_API|пользовательской процедурой]] через общий интерфейс визуализации пользователя как прямым формированием, если формат простой, так и вызовом внешней утилиты преобразования, если она доступна. Экспорт в целом может осуществляться в двух режимах: интерактивном и потоковом. Именно интерактивный режим встроен в интерфейс пользователя и он предусматривает указание диапазона и качества данных (данных примитивов), как ограничивающих факторов целесообразного времени исполнения этой операции. Потоковый режим предусматривает фоновое, возможно даже вместе с основными процессами, осуществление экспорта как текущих данных так и данных локальных архивов и часто используется для экспорта в таблицу БД с нужной структурой. Экспорт из окружения разработки, как и потоковый режим, встроенными функциями не предусматривается, кроме экспериментальных вроде экспорта в WAV. Это, при необходимости, может быть реализовано [[Special:MyLanguage/Libs/Service_procedures|сервисной процедурой]] или частью кода основного процесса для потокового режима. === Интерфейс конечного пользователя === '''Q:''' Каким образом осуществляется речевая сигнализация и что нужно для её работы?<br /> '''Re:''' Речевая сигнализация, как и иные методы сигнализации, является элементом подсистемы "Пользовательские интерфейсы" и осуществляется в модулях среды визуализации и управления (СВУ), а именно: в движке СВУ [[Special:MyLanguage/Modules/VCAEngine|UI.VCAEngine]] и в визуализаторах [[Special:MyLanguage/Modules/Vision|UI.Vision]] и [[Special:MyLanguage/Modules/WebVision|UI.WebVision]]. Обычно, для синтеза речи нужен соответствующий синтезатор с поддержкой нужного языка, вроде '''RHVoice''', '''festival''', '''espeak'''. Для проигрывания синтезированного звука вам не нужны специфические инструменты в типовом окружении. Однако, для специфических окружений, нужна программа '''play''', которая обычно содержится в пакете '''sox''', но для точного определения зависимостей смотрите в [[Special:MyLanguage/Modules/VCAEngine#Alarms|соответствующих процедурах внешних методов уведомления]]. '''Q:''' Как я могу быстро и корректно изменить соотношение сторон экрана визуального интерфейса пользователя на другое, например, на 16:9?<br/> '''Re:''' Да, основной интерфейс пользователя OpenSCADA, основанный на концепции объектов сигнализации и её [[Special:MyLanguage/Libs/Main_graphical_elements#RootPgSo|корневой странице]], приспособлен и разработан под соотношение сторон 4:3. Для общих проектов СВУ запланирована реализация соответствующих стилей на разные соотношения сторон однако мнемосхемы должны оставаться неизменными. Т.е. для ручной, быстрой и корректной смены соотношения сторон Вы, на данный момент, должны выполнить следующее, в дереве проекта СВУ: * Установить, или умножить оригинальное, атрибут "Геометрия: x масштаб" (geomX) в значение (16/9)/(4/3) = 1.333, для: ** [[Special:MyLanguage/Libs/Main_graphical_elements#RootPgSo|корневой страницы]]; ** всех шаблонных страниц вроде "[[Special:MyLanguage/Libs/Main_graphical_elements#grpGraph|Группы графиков]]", только для страниц использованных как шаблоны; ** всех страниц документов и панелей управления, индивидуально. * Из-за того, что страницы мнемосхем редко допускают изменение оригинального соотношения сторон, ввиду использования правильных фигур вроде окружности и квадратов, мы вынуждены разрабатывать эти кадры с начала и в размере [900*1.333 x 550] = [1199 x 550]. '''Q:''' How can I connect the visualiser UI.Vision to a remote visualisation server or PLC with such function?<br/> '''Re:''' Yes, you are allowed for creation of visualiser servers and PLCs based on the module [[Special:MyLanguage/Modules/VCAEngine|UI.VCAEngine]] with all VCA-data of the user visualisation projects on them and obliviously with OpenSCADA installed there. Next you are allowed for a connection to the remote visualisation servers or PLCs by the module [[Special:MyLanguage/Modules/Vision|UI.Vision]] for locally developing and visualisation of the remote user visualisation projects. The detailed instruction you can get in the [[Special:MyLanguage/Documents/Quick_start|Quick Start manual's]] part "[[Special:MyLanguage/Documents/Quick_start#RemConUse|Connecting and using remote and background configurations]]" and here you have get a short instruction. This short instruction also usable to get remote control of the visualiser servers and PLCs. To do that you must follow next procedure on a client station with the module UI.Vision and any configuration include pure-empty one: * Create a connection to the visualiser server or PLC as an OpenSCADA station on [[:File:QTCfg_subsys_tr_sub.png|the transports page]] of any OpenSCADA configurator, in the "System" mode. If you will set also the "User" mode you will be allowed to control the remote station from the configurator and user, after the navigation tree updating. * Select on [[:File:Vision_cfg.png|the visualiser page]] of any OpenSCADA configurator: a new connection, start user, user's password of the remote station and a project or projects for their automatic execution, else you will get in the developing mode. Next starting of the module UI.Vision should cause establishing of the remote connection to the visualiser server or PLC with their projects developing or execution. For querying the station together user and password at the module generic call you can select the connection-station "<Select>", useful at presence of many control stations and for opening several of them simultaneously. '''Q:''' Как я могу автоматически запустить OpenSCADA с соответствующим оперативным интерфейсом пользователя — проектом диспетчерского контроля?<br/> '''Re:''' Конечно, после завершения процесса разработки, Вы должны обеспечить запуск программы вместе с запуском операционной системы и полно-экранное исполнение результирующего оперативного интерфейса пользователя. Для этого Вы должны следовать процедуре: * Обеспечьте специфические для системы мероприятия запуска самой OpenSCADA с вашим проектом. Тут Вы должны предварительно создать или найти иконку рабочего стола вашего проекта в OpenSCADA из [[Special:MyLanguage/Documents/Program_manual#Projects|менеджера проектов OpenSCADA]] и скопировать или разместить её в каталоге или перечне программ, которые запускаются автоматически вашим окружением рабочего стола. Детали смотрите в документации на соответствующее окружение рабочего стола. * Выберите запуск модуля [[Special:MyLanguage/Modules/Vision|UI.Vision]] с общим запуском OpenSCADA, в [[Special:MyLanguage/Modules/QTStarter#Cfg|поле "Модули Qt для запуска" модуля UI.QTStarter]] из любого конфигуратора OpenSCADA. * Выберите Ваш проект СВУ для его автоматического исполнения, в [[Special:MyLanguage/Modules/Vision#Cfg|поле "Перечень проектов для запуска" модуля UI.Vision]] из любого конфигуратора OpenSCADA. Тут мы также рекомендуем установить для исполнения проекта пользователя, отличного от системного, естественно с правами на этот проект. '''Q:''' May I adjust my project for some specific branding?<br/> '''Re:''' Most visible branding by the end user is placed in [[Special:MyLanguage/Modules/VCAEngine|the end user VCA interface]] but you may want also in some adjustment the splash image, icons and so on: * icon in the right upper of the frame "[[Special:MyLanguage/Libs/Main_graphical_elements#RootPgSo|Root page (SO)]]" — just upload your image in [[:file:Vision_wlbpg_mime.png|the project resources]] as "logo", in the preferred size '''110x55''' pixels (2x1); * icon of the project window-page in it runtime — just upload your [[:file:Vision_wlbpg.png|project icon]], in the preferred size '''128x128''' pixels or clean up that for use the common project icon image (see below) which can be translated — dependently from current interface language; * the project [[:file:QTStarter_splash.png|starting splash image]] — prepare a representative image in the preferred size '''600x300''' and place it to [[Special:MyLanguage/Documents/Program_manual#Config|the project's folder of icons]] with the name "'''{ProjectID}_splash.[png|gif|jpg|jpeg]'''" for both start and exit splash and "'''{ProjectID}_splash_exit.[png|gif|jpg|jpeg]'''" for the exit splash; * the project common icon image for [[:file:QTCfg_listelem.png|the navigation tree of the OpenSCADA configurators]] — prepare a representative image in the preferred size '''128x128''' and place it to [[Special:MyLanguage/Documents/Program_manual#Config|the project's folder of icons]] with the name "'''{ProjectName}.[png|gif|jpg|jpeg]'''", where ''ProjectName'' can be whether the language specific one or on the Basic Language for whole cases or even both if your project is [[Special:MyLanguage/Documents/How_to/Create_multi_language_project|the multilanguage one]]. '''Q:''' Оперативный интерфейс оператора запускается на весь экран и я не могу его закрыть для получения доступа к системному окружению рабочего стола!<br/> '''Re:''' Конечно, OpenSCADA защищает систему контроля от закрытия и непривилегированного доступа к системному окружению рабочего стола. Т.е. для получения доступа к системному окружению рабочего стола Вы должны быть привилегированным пользователем, изменить пользователя интерфейса на свою учётную запись и в появившемся глобальном меню осуществить нужное: выключить полно-экранный режим, закрыть или выйти из программы. Если глобальное меню не появляется то Вы имеете проблемное окружение рабочего пространства, вроде Unity, которое "отрывает" меню окна; соответственно, предварительно отключите эту функцию окружения! '''Q:''' Я могу легко подключать аналоговые сигналы для построения трендов примитивом [[Special:MyLanguage/Modules/VCAEngine#Diagram|Диаграмма]], но использование тут дискретных-логических сигналов не является таким очевидным...<br/> '''Re:''' Да, примитив [[Special:MyLanguage/Modules/VCAEngine#Diagram|Диаграмма]] разработан в основном для аналоговых сигналов, но вы можете также использовать тут дискретные-логические сигналы как аналоговые с двумя состояниями [0,1], т.е. их натуральная шкала это [0...1] и если вы подключите один сигнал в автоматической-натуральной шкале, то получите его на весь экран, с заполненными полосами для состояния ПРАВДА (TRUE). Но это не очень удобно и вы не сможете объединить его с другими аналоговыми или дискретными-логичными сигналами даже в полупрозрачном цвете, т.е. вы должны вручную указать шкалу для позиционирования полосы дискретного-логического сигнала в необходимой части экрана. Некоторые примеры шкал: * '''[0...5]''' — вы делите экран по вертикали на пять полос и отображаете сигнал внизу; * '''[-4...1]''' — вы делите экран по вертикали на пять полос и отображаете сигнал вверху; * '''[-2...3]''' — вы делите экран по вертикали на пять полос и отображаете сигнал в центре; * '''[0...10]''' — вы делите экран по вертикали на десять полос и отображаете сигнал внизу. '''Q:''' I have a very busy system with many OpenSCADA processes working through the Web interface and I want to decrease the server loading and speed up all those interfaces.<br/> '''Re:''' Yes, by default OpenSCADA interface designed for work in some fast enough carrying-live period (100 ms) which suitable mostly for active local Qt-interfaces of [[Special:MyLanguage/Modules/Vision|the module UI.Vision]] with high reactivity and on fast enough networks at working with the visualisation server. But currently you can tune your interface to achieve the loading decrease in times: * the first and an obviously step that is to increase the carrying-life period in [[:file:Vision_wlbpg.png|the VCA Project configuration]], where you can set the "Period of the calculation" in a value up to 500 ms for active local Qt-interfaces of [[Special:MyLanguage/Modules/Vision|the module UI.Vision]] and up to 1000 ms for not fast Web-interfaces of [[Special:MyLanguage/Modules/WebVision|the module UI.WebVision]]; * the second step that is to set the dynamic data updating period depending on what you mean as enough often or disable the periodic updating in whole by setting the period in -2; and do that for [[Special:MyLanguage/Libs/Main_graphical_elements#RootPgSo|the main-root page]] in [[:file:Vision_wdg.png|the Widget configuration]] of your project tree; the same you can do for all panels placed in the group "Control panels (control)" of the project logical structure from the same main-root page, setting the needing period for the group itself; * the third step that is deepening to your dynamic widgets-cadres adaption for work on big periodicity without loss the reactivity like to the already adapted ones from the standard library as [[Special:MyLanguage/Libs/Main_graphical_elements#RootPgSo|the main-root page]] and [[Special:MyLanguage/Libs/Main_graphical_elements#anShow|Analog show]]; and the adaption mostly means: ** sending user events at need of rapid updation in the next life cycle after the events processing; ** controlling the widget execution period depending on the activity situation like to blinking the selection cursor and the alarm colors. == {{Anch|Problems|Проблемы}} ([http://oscada.org/ru/forum/sbornyi-forum/?tx_mmforum_pi1%5Baction%5D=list_prefix&tx_mmforum_pi1%5Blist_prefix%5D%5Bprfx%5D=BugConfirmed актуально], [http://oscada.org/ru/forum/sbornyi-forum/?tx_mmforum_pi1%5Baction%5D=list_prefix&tx_mmforum_pi1%5Blist_prefix%5D%5Bprfx%5D=BugEnvironment окружение], [http://oscada.org/ru/forum/sbornyi-forum/?tx_mmforum_pi1%5Baction%5D=list_prefix&tx_mmforum_pi1%5Blist_prefix%5D%5Bprfx%5D=BugFixed исправлено]) == '''Q:''' Почему я потерял дробную часть у всех загруженных значениях вещественного типа?<br/> '''Re:''' Вы используете локаль, отличную от "C" или общего Английского, и устанавливаете её прямо переменной окружения "LC_NUMERIC" или её общим вариантом "LC_ALL", что приводит к использованию в функциях вроде atof() и sprintf() символа разделителя дробной части отличного от "." (точка), часто это "," (запятая). : '''!>''' Т.е., никогда не устанавливайте переменных окружения "LC_NUMERIC" и "LC_ALL" прямо поскольку они переопределяют корректную установке "LC_NUMERIC" в "C", в середине! Для изменения языка программы используйте только переменные "LANG" и "LANGUAGE", которых всегда достаточно. : '''+>''' На данный момент проблема полностью исключена, путём проверки и очистки переменной окружения "LC_ALL"! '''Q:''' "Нет доступа для создания политики реального времени для '****'. Создан поток по умолчанию!"<br /> '''Re:''' Такое сообщение OpenSCADA формирует при попытке установить для потока-задачи политику реального времени, по приоритету больше 0, в случае запуска от обычного пользователя. : '''+>''' Потенциально такие права можно предоставить путём редактирования файла "/etc/security/limits.conf" таким образом: <pre style="white-space: pre;"> user hard nice -20 user soft nice -15 user hard rtprio 99 user soft rtprio 90 </pre> '''Q:''' Я наблюдаю отсутствие всех текстовых меток на графиках (примитив "Диаграмма") интерфейсов модуля [[Special:MyLanguage/Modules/WebVision|UI.WebVision]]. Почему так?<br /> '''Re:''' Такой результат возможен на интерфейсах, построенных на библиотеке GD, и если сама эта библиотека собрана без использования библиотеки FontConfig. На данное время только модуль [[Special:MyLanguage/Modules/WebVision|UI.WebVision]] использует эту библиотеку для исключительного построения примитивов "Элементарная Фигура" и "Диаграмма". : '''+>''' Т.е. для исправления этой проблемы Вы должны установить корректный пакет-сборку библиотеки или собрать библиотеку самостоятельно с FontConfig. На данный момент известен один случай такого сорта проблемы с пакетом "libgd2-noxpm" старых версий дистрибутива Linux Debian, где Вы должны установить корректный пакет "libgd2-xpm". '''Q:''' Я наблюдаю отсутствие SVG-изображений в интерфейсах Qt. Почему так?<br /> '''Re:''' Как правило это указывает на отсутствие в системе Qt-модуля для SVG-графики, например, пакет "libqt5svg5" в Linux дистрибутивах на основе Debian. : '''+>''' Установите пакет или непосредственно Qt-плагин поддержки SVG-графики.
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