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/> {| class="wikitable" |- ! Назва !! Версія !! Ліцензія !! Джерело !! Мови !! Автор !! Опис |- <section begin=info /> | [[Special:MyLanguage/Libs/Devices|Бібліотека промислових пристроїв]] | 3.0 || GPLv2 || OscadaLibs.db ([http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/OscadaLibs.sql SQL], [[:File:OscadaLibs.db.gz|GZip]]) > DAQ.tmplb_DevLib | en, uk, ru <section end=info /> | {{Author|[[User:RomanSavochenko|Роман Савоченко]]|Константин (IrmIngeneer) (2018), Арсен Закоян (2017), Руслан Ярмолюк (2017)}} | Бібліотека шаблонів надання доступу до даних промислових пристроїв через мережу із доволі простими протоколами, на кшталт пристроїв загальної промислової автоматики та лічильників різних ресурсів. * '''Засновано''': Січень 2010 * '''Спонсоровано:''' залежно від елементу ... * '''Початково створено:''' у [http://wiki.oscada.org/HomePageEn/Using/APIFunctionLibs/LibUserPrtDevs старій Wiki] * '''Використано:''' [[Special:MyLanguage/Using|багатьма проектами на OpenSCADA]] |} Бібліотеку пристроїв користувацьких протоколів створено для надання доступу до даних промислових пристроїв через мережу із доволі простим протоколом, на кшталт пристроїв загальнопромислової автоматики та лічильників різних ресурсів, із протоколом достатньо простим до реалізації у [[Special:MyLanguage/Modules/UserProtocol|модулі користувацького протоколу]], з використанням наявних комплексних протоколів ([[Special:MyLanguage/Modules/ModBus|ModBus]], [[Special:MyLanguage/Modules/OPC_UA|OPC_UA]], [[Special:MyLanguage/Modules/HTTP|HTTP]]) або безпосередньо на [[Special:MyLanguage/Modules/JavaLikeCalc|внутрішній мові подібній до Java]]. Назви шаблонів та їх параметрів доступні на мовах: Англійська, Українська та mRussian. Їх вихідний код написано у мово(людська)-незалежному режимі з викликом функції перекладу ''tr()'' та переклад цих повідомлень також доступний Англійською, Українською та mRussian. Для підключення бібліотеки до проекту станції OpenSCADA ви можете отримати файл БД як: * такий що постачається з готовим та відповідним пакетом дистрибутиву Linux на кшталт "openscada-libdb-main", "openscada-LibDB.Main"; * найбільш актуальний та безпосередньо отриманий з [http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/vcaBase.sql репозиторію subversion], перетворений у файл БД SQLite шляхом: <syntaxhighlight lang="BASH" style="margin-left: 15px"> wget http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/OscadaLibs.sql sqlite3 -init OscadaLibs.sql OscadaLibs.db .exit </syntaxhighlight> * завантаження [[:File:OscadaLibs.db.gz|прикріпленого тут]]. Цей завантажений файл ви надалі можете розмістити у теці проекту станції та створити об'єкт бази даних модуля БД "SQLite", зареєструвавши файл бази даних у конфігурації. Для DAQ-шаблонів, загалом, вам треба створити представницький об'єкт пристрою у [[Special:MyLanguage/Modules/LogicLev|модулі Логічного контролеру]] та обрати відповідний шаблон із бібліотеки шаблонів. Далі, для коректної конфігурації, дотримуйтесь специфіки шаблону у його особистому описі. {{#lst:Documents/DAQ/uk|userPrt}} Для розташування реалізації протоколу тут ви маєте виконати та дотримуватися наведених вимог: * бути власником прав або автором коду та розповсюджувати його під будь-якою вільною ліцензією, перевага надається GPL; * приготувати та зберегти у окремому файлі БД SQLite, або як текстовий файл, щодо: опису параметрів (ВВ), коду процедури написаному та відформатованому за якоюсь системою; * написати короткий опис та інструкцію підключення пристрою за протоколом у спосіб схожий на інші тут; * написати прямий запит до теми форуму "[http://oscada.org/ua/forum/topics/rozrobka_openscada/ Розробка OpenSCADA]" щодо розташування протоколу тут, включити докази його працездатності від будь-якого розробника OpenSCADA або коротке демонстраційне відео. == Загальні протоколи == {| class="wikitable" <section begin=ModBusScan /> | {{Anch|ModBusScan|<h3>Сканер ModBus ([[Special:MyLanguage/Libs/Devices#ModBusScan|ModBusScan]])</h3>}} || 1.0 || GPLv2 || * || en, uk, ru <section end=ModBusScan /> | [[User:RomanSavochenko|Роман Савоченко]] |} [[File:LibsDevsModBusScanOp_uk.png|right|Результат та оперативна конфігурація.]] Сканер ModBus щодо Кілець (1), Вхідних Кілець (2), Регістрів (3), Вхідних Регістрів (4); у діапазоні [0...65535]. Шаблон корисний для вивчення невідомих пристроїв ModBus, скануванням їх мапи Кілець та Регістрів для виявлення наявних адрес даних. Сканування відбувається по одному елементу, чи то кільцю чи регістру, для попередження недоступності даних на пристроях суворого доступу даних. Сам протокол ModBus реалізовано модулем OpenSCADA [[Special:MyLanguage/Modules/ModBus|DAQ.ModBus]], разом з яким шаблон і передбачено до використання. * '''Загальна працемісткість:''' 0.2 {{CtxDetails|ЛД|людино-днів, 1ЛД — 10 годин}} * '''Спонсорування, загальну працемісткість:''' ТОВ "СВІТоВИР" {{CntHdr|ВВ шаблону}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Ідентифікатор !! Параметр !! Тип !! Режим !! Атрибут !! Конфігурація !! Значення |- | lim || Час обмеження, секунд || Ціле || Вхід || Не атрибут || Постійна || 10 |- | type || Тип || Вибір цілих чисел || Вхід || Повний доступ || Змінна | 2<br/> 0;1;2;3<br/> Кільця (1);Вхідні Кільця (2);Регістри (3);Вхідні Регістри (4) |- | begin || Початок (0...65536) || Ціле || Вихід || Повний доступ || Змінна || |- | end || Кінець (0...65536) || Ціле || Вихід || Повний доступ || Змінна || |- | res || Результат || Текст || Вихід || Тільки читання || Змінна || |- | this || Об'єкт || Об'єкт || Вхід || Не атрибут || Змінна || |} {{CntHdr|Конфігурація та використання}} :1. Створити об'єкт контролеру джерела, або використати придатний, у модулі "[[Special:MyLanguage/Modules/ModBus|ModBus]]". :2. Створити об'єкт параметру джерела у попередньому об'єкті контролеру джерела, встановити його Ідентифікатор на кшталт "ModBusScan", обрати його тип у "Логічний" та обрати цей шаблон для нього — увімкнути параметр. :3. У вкладці "Конфігурація шаблону" об'єкту логічного параметру ви маєте встановити: :* ''Час обмеження, секунд'' — час обмеження виконання одного циклу, значення по замовченню є нормальним. :4. РЕЗУЛЬТАТ: Обранням типу даних та встановленням атрибутів діапазону сканування "Початок" та "Кінець" ви отримаєте результат сканування у атрибуті "Результат", який буде доповнюватися у процесі сканування. {| class="wikitable" <section begin=mbBase /> | {{Anch|mbBase|<h3>ModBus base ([[Special:MyLanguage/Libs/Devices#mbBase|mbBase]])</h3>}} || 1.3 || GPLv2 || * || en <section end=mbBase /> | [[User:RomanSavochenko|Roman Savochenko]] |} [[File:LibsDevsMbBaseOp.png|right|Result and the operative setup.]] ModBus base template of the protocol implementing on the Logical Level. Designed mostly to use in the base of creation specific ModBus-based protocols for the standard-part registers' access (functions 3, 4 for reading and function 16 for writing) and appending the new protocol specific part. The template was designed to work both under control of the controller objects of the module [[Special:MyLanguage/Modules/ModBus|ModBus]] and [[Special:MyLanguage/Modules/LogicLev|LogicLev]] and can be managed from the template of [[Special:MyLanguage/Libs/Main#initConsAssignTrs|the initiative connections processing for assigned output transports]]. * '''Total complexity:''' 0.5 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Sponsored by, for whole complexity:''' Elyor Turaboev, BLUE STAR GROUP Ltd {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Sockets.mbbase |- | addr || Device address, [0...247] || Integer || Input || Not attribute || Constant || 1 |- | mbType || ModBus type, [RTU|ASCII|TCP] || String || Input || Not attribute || Constant || RTU |- | maxBlkSz || ModBus maximum block size, [10...200] || Integer || Input || Not attribute || Constant || 200 |- | fragMerge || ModBus blocks merging || Boolean || Input || Not attribute || Constant || 1 |- | items || Items set Rows in the form "<nowiki>[u|i|u2|i2|u4|i4|r|s]:{addr}:{w|r|~|i}:{id}[:{nm}]</nowiki>". | Text || Input || Full access || Variable | <nowiki>#<SnthHgl font="monospace"><rule expr="^#[^\n]*" color="gray" font_italic="1"/><rule expr=":[rw~i]*:" color="red"/><rule expr=":(0[xX][0-9a-fA-F]*|[0-9]*),?(0[xX][0-9a-fA-F]*|[0-9]*),?(0[xX][0-9a-fA-F]*|[0-9]*),?(0[xX][0-9a-fA-F]*|[0-9]*)" color="blue"/><rule expr="^(u|i|u2|i2|u4|i4|r|s)" color="darkorange"/><rule expr="\\:" color="blue"/></SnthHgl></nowiki><br/><br/> |- | tr || Output transport || Object || Input || Not attribute || Variable || |- | this || Object || Object || Input || Not attribute || Variable || |- | f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0 |- | f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0 |- | f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000 |- | f_err || Function error || String || Input || Not attribute || Variable || 0 |} [[File:LibsDevsMbBaseCfg.png|right|Configuration.]] {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Serial|Serial]]" or "[[Special:MyLanguage/Modules/Sockets|Sockets]]", and set its Identifier like to "mbbase", one for each the devices' used serial bus. :2. Set proper address and timeouts of the device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or [[Special:MyLanguage/Modules/ModBus|a ModBus controller object]] or use any present one with need scheduling properties. :4. Create a logical parameter object and select the template for that, one for the devices on one bus — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to the address of the automatically created transport with its parameters after ":", accordingly to the [[Special:MyLanguage/Documents/User_API#SYSTransport|function SYS.Transport.outAt() address format]]. Leave the field empty for [[Special:MyLanguage/Modules/ModBus|the ModBus controller object]]. Tracing for the address changing is supported. :* ''Device address'' (for [[Special:MyLanguage/Modules/LogicLev|the logical controller object]]) — to logical address of the device on the bus under the transport in step 1. Tracing for the address changing is supported. :* ''ModBus type'' (for [[Special:MyLanguage/Modules/LogicLev|the logical controller object]]) — to the ModBus protocol type/variant from the list: RTU, ASCII, TCP. :* ''ModBus maximum block size'' (for [[Special:MyLanguage/Modules/LogicLev|the logical controller object]]) — to the ModBus protocol package data maximum size in the range [10...200]. :* ''ModBus blocks merging'' (for [[Special:MyLanguage/Modules/LogicLev|the logical controller object]]) — for allowance of merging the ModBus protocol fragmented blocks of the registers. :6. RESULT: The logical parameter object will: dynamically create needed attributes accordingly to the attribute "Items set" value and perform interaction and placing of gathered data to the parameter attributes. Also you are able to change for writable attributes. {| class="wikitable" <section begin=DCON /> | {{Anch|DCON_Prt|<h3>DCON Protocol + Input AI ([[Special:MyLanguage/Libs/Devices#DCON_Prt|DCON_Prt]])</h3>}} || 1.0 || GPLv2 || * => [[Special:MyLanguage/Modules/UserProtocol|UserProtocol]] || en |- | {{Anch|DCON_Prt_AO|<h3>DCON Protocol + Input AO ([[Special:MyLanguage/Libs/Devices#DCON_Prt_AO|DCON_Prt_AO]])</h3>}} || 1.0 || GPLv2 || * => [[Special:MyLanguage/Modules/UserProtocol|UserProtocol]] || en |- | {{Anch|DCON_Prt_DI|<h3>DCON Protocol + Input DI ([[Special:MyLanguage/Libs/Devices#DCON_Prt_DI|DCON_Prt_DI]])</h3>}} || 1.0 || GPLv2 || * => [[Special:MyLanguage/Modules/UserProtocol|UserProtocol]] || en |- | {{Anch|DCON_Prt_DO|<h3>DCON Protocol + Input DO ([[Special:MyLanguage/Libs/Devices#DCON_Prt_DO|DCON_Prt_DO]])</h3>}} || 1.0 || GPLv2 || * => [[Special:MyLanguage/Modules/UserProtocol|UserProtocol]] || en <section end=DCON /> | [[User:RomanSavochenko|Roman Savochenko]] |} Input and output parts of {{Anch|DCON|the protocol DCON implementation}} with the input part designed for typical AI, DI, AO, DO modules at up to 20, 32, 8, 32 channels. The protocol DCON client part also implemented by the OpenSCADA module [[Special:MyLanguage/Modules/ModBus|DAQ.DCON]]. '''INPUT USER PROTOCOL'S PART''' — full-featured implementation of typical DAQ modules suitable to multiple using on one bus and multiple using of the templates. {{CntHdr|Configuring and using}} :1. Create of needed [[Special:MyLanguage/Modules/UserProtocol|user protocol objects]] based on the templates, with ID like to DCON_[AI,AO,DI,DO]. :2. Configure the input part of the protocol objects for their addresses, CRC and establish them links to real data. :3. Create one or several input transports of the type "[[Special:MyLanguage/Modules/Serial|Serial]]" mostly and set its to any ID. :4. Set proper address and the timeouts to the [[Special:MyLanguage/Modules/Serial|Serial]] devices. :5. Select for one or several user protocols created in the step 1. :6. RESULT: all requests to the input transport(s) will be processed by the input part of the user protocol objects. '''OUTPUT USER PROTOCOL'S XML REQUEST STRUCTURE''' — '''<ReqSymb addr="{toAddr}" err="{err}" CRC="{CRC}">{req}</ReqSymb>''' :''ReqSymb'' — symbol of the request type into the tag name, like to: '#', '@', etc; :''toAddr'' — remote host address [0...240]; :''CRC'' — sign [0,1] of using CRC; :''req'' — data of the request and response; :''err'' — sets for the request result. {{CntHdr|Configuring and using}} :1. Create or use allowed [[Special:MyLanguage/Modules/UserProtocol|user protocol objects]] based on the templates, with ID like to "DCON". :2. Create an output transport of the type "[[Special:MyLanguage/Modules/Serial|Serial]]" and set its ID like to "DCON", one transport suitable for more receivers. :3. Set proper address and timeouts for the [[Special:MyLanguage/Modules/Serial|Serial]] device. :4. Place some requesting commands directly into allowed or a new internal OpenSCADA procedure like to: <syntaxhighlight lang="JavaScript" style="margin-left: 30px"> req = SYS.XMLNode("#"); req.setAttr("ProtIt","DCON").setAttr("addr","5"); SYS.Transport.Serial.out_DCON.messIO(req, "UserProtocol"); data = req.attr("err").toInt() ? "" : req.text(); </syntaxhighlight> :5. RESULT: Into the variable ''data'' you will get the request's data part if no errors occur. The data is values of the analog inputs. {| class="wikitable" <section begin=DNP3 /> | {{Anch|DNP3|<h3>Distributed Network Protocol 3 ([[Special:MyLanguage/Libs/Devices#DNP3|DNP3]])</h3>}} | 0.8 || GPLv2 || * || en, uk, ru <section end=DNP3 /> | [[User:RomanSavochenko|Roman Savochenko]] |} [[File:LibsDevsDNP3Op.png|right|Result and the operative setup.]] [https://en.wikipedia.org/wiki/DNP3 Distributed Network Protocol 3 (DNP3)] is a set of communications protocols used between components in process automation systems. Its main use is in utilities such as electric and water companies. Usage in other industries is not common. It was developed for communications between various types of data acquisition and control equipment. Competing standards include the older Modbus protocol and the newer IEC 61850 protocol and IEC 61870. * '''Total complexity:''' 2.0 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Sponsored by, for whole complexity:''' Hadi Ramezani and Hossein Malakooti {{CntHdr|Details}} The template implements currently for the client, which uses the followed functions: Confirm (0x00), Read (0x01), Write (0x02), Enable (0x14) and Disable (0x15) Spontaneous Messages. And which implements and tested for the followed point-oriented objects (data types): * '''1.[2]''' — Binary Input [with status] * '''2.[1]''' — Binary Input Changed [w/o time] * '''3.[2]''' — Double-bit Input [with status] * '''4.[1]''' — Double-bit Input Changed [w/o time] * '''10.[2]''' — Binary Output (reading back and used to write also) [with status] * '''20,21.[1]''' — Binary Counter (Typical,Frozen) [32-Bit] * '''22,23.[1]''' — Binary Counter Changed (Typical,Frozen) [32-Bit w/o time] * '''30.[1,5]''' — Analog Input [32-bit integer value with flag, 32-bit floating point value with flag] * '''32.[7]''' — Analog Input Changed [32-bit floating point value with flag and event time] * '''40.[1]''' — Analog Output (reading back and used to write also) [32-bit integer value with flag] * '''50''' — Time and Date (just passed and not read) [indexed absolute time and long interval] * '''60.[1,2,3,4]''' — Classes [0,1,2,3] * '''80.[1]''' — Device [Restart 7=Off(0x01)] * '''110.[1]''' — Octet String (just passed and not read) [Sized by variation] Considering the purpose and the application area, the protocol does not provide the direct determination of the requested data and the device, that implements it, provides all available ones upon request for the Class 0 data, after which only changes are requested for the Classes 1, 2, 3. All received and controlled data is accumulated in an object of the attribute "items" for further control as an object in a table of the widget "[[Special:MyLanguage/Libs/Main_graphical_elements#objProps|Main.objProps]]", according to the [[Special:MyLanguage/Libs/Main#ComplexObject|complex object]] definition. For standard control over parameter attributes, including archiving, it is possible to define the necessary data to create a separate representative attribute for them, which is described in the attribute "itemsSet", where they can be defined individually, with a semantic identifier and name, or in a range named by a template. The data in the attribute "itemsSet" is defined by records in the format '''ai|ao|cnt|di|do:{pnt}[-{endPnt}][:a[:{NameBase}]]''', where: * ''ai|ao|cnt|di|do'' — data type, where: ** "ai" — analog inputs, transmitted by the functions 30 and 32; ** "ao" — analog outputs, transmitted by the function 40; ** "cnt" — counters, transmitted by the functions 20, 21, 22, 23; so Typical and Frozen counters is in one space; ** "di" — discrete inputs, transmitted by the functions 1, 2, 3, 4; so Binary Input and Double-bit Input is in one space; ** "do" — discrete outputs, transmitted by the function 10. * ''{pnt}'' — point number of the range begin; * ''{endPnt}'' — the range end (the last point number); * ''a'' — sign of creating the representative attribute for the parameter or the parameters group; * ''{NameBase}'' — naming base of the attributes. Examples of the parameters definition, rows of the attribute "itemsSet": * '''ai:0-9:a''' — analog inputs in the points range [0...9] with forming the attributes; * '''ao:0-9:a''' — analog outputs in the points range [0...9] with forming the attributes; * '''di:0-9:a''' — discrete inputs in the points range [0...9] with forming the attributes; * '''do:0-9:a''' — discrete outputs in the points range [0...9] with forming the attributes; * '''cnt:0-9:a''' — counters in the points range [0...9] with forming the attributes. {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Sockets.out_DNP3 |- | dest || Destination [0...65520] || Integer || Input || Not attribute || Constant || 10 |- | src || Source [0...65520] || Integer || Input || Not attribute || Constant || 1 |- | tmRetr || Retry connection time, seconds || Real || Input || Not attribute || Constant || 10 |- | tmPoolEv || Poll events time, seconds || Real || Input || Not attribute || Constant || 1 |- | tmPoolAll || Poll all time, seconds || Real || Input || Not attribute || Constant || 60 |- | itemsSet || Items set by: "ai|ao|cnt|di|do:{pnt}[-{endPnt}][:a[:{NameBase}]]" || Text || Input || Full access || Variable || |- | items || All items || Object || Output || Full access || Variable || |- | tr || Output transport || Object || Input || Not attribute || Variable || |- | ctx || IO context || Object || Input || Not attribute || Variable || |- | oAVals || Output values || Object || Output || Not attribute || Variable || |- | this || Object || Object || Input || Not attribute || Variable || |- | f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000 |- | f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0 |- | f_err || Function error || String || Input || Not attribute || Variable || 0 |- | f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0 |} [[File:LibsDevsDNP3Cfg.png|right|Configuration.]] {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Sockets|Sockets]]", set its Identifier like to "DNP3", one for each the device-PLC. :2. Set proper address with port '''20000''' and timeouts of the [[Special:MyLanguage/Modules/Sockets|Sockets]] device-PLC. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. The interaction period preferred to be about '''0.1''' second. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select this template for that, one for each the device-PLC — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to address of the transport into step 1. Tracing for the address changing is supported. :* ''Destination'' — remote station address in the integer range [0...65520]. :* ''Source'' — the same station address (source) in the integer range [0...65520]. :* ''Retry connection time'' — retry connection time in seconds, at the connection missing and no response detection. :* ''Poll events time'' — time in seconds of the events periodical polling (Class 1). :* ''Poll all time'' — time in seconds of the complete data requesting (Class 0,1,2,3). :6. RESULT: The logical parameter object will perform interaction and placing of the gathered data to the object "items", creation/placing and checking for commands of the proper attributes, created by the "itemsSet" instruction. :7. In the process of the working, through the tab "Attributes" of operational data, in addition to obtaining the result, it is possible to perform operative setup and control on: :* ''Items set by'' — for controlled items naming and definition as attributes and accessible for write. :* ''All items'', {Item attributes} — direct writing for the writable items. {| class="wikitable" <section begin=IEC60870 /> | {{Anch|IEC60870|<h3>IEC-60870 ([[Special:MyLanguage/Libs/Devices#IEC60870|IEC60870]])</h3>}} | 1.4 || GPLv2 || * || en, uk, ru <section end=IEC60870 /> | [[User:RomanSavochenko|Роман Савоченко]] |} [[File:LibsDevsIEC60870Op_uk.png|right|Результат та оперативна конфігурація.]] [https://en.wikipedia.org/wiki/IEC_60870 IEC 60870] у частині 5 є одним з набору стандартів IEC 60870 який визначає системи, що використовуються у віддаленому контролі (телемеханіці — диспетчерському контролі та зборі даних) у інженерній електриці та у застосунках автоматизації енергетичних систем. Частина 5 надає комунікаційний профіль для надсилання базових повідомлень віддаленого контролю між двома системами, який використовує постійні прямі підключення даних між системами. * '''Стан реалізації протоколу:''' ** КЛІЄНТ ЧАСТИНИ 104 (Ethernet транспорт) специфікації; ** Сервіси: STARTDT, STOPDT, TESTFR, Ack, C_IC_NA_1 (100), C_CI_NA_1 (101), C_SC_NA_1 (45), M_SP_NA_1 (1), M_SP_TA_1 (2), M_DP_NA_1 (3), M_DP_TA_1 (4), M_ME_NB_1 (11), M_ME_NC_1 (13), M_ME_TF_1 (36), C_CS_NA_1 (103); ** Для інформаційних сервісів підтримується ввімкнення та вимкнення послідовного (SQ) режиму. * '''Загальна працемісткість:''' 3.8 {{CtxDetails|ЛД|людино-днів, 1ЛД — 10 годин}} * '''Спонсорування, початкової імплементації на 3.0 {{CtxDetails|ЛД|людино-днів, 1ЛД — 10 годин}}:''' Устьянцев Михайло * '''Спонсорування, розширення на 0.8 {{CtxDetails|ЛД|людино-днів, 1ЛД — 10 годин}}:''' ТОВ "СВІТоВИР" * [http://oscada.org/en/development/tasks/posts/subsystem_daq/iec_60870_5_acquisition_protocol_implementation Завдання реалізації] {{CntHdr|Деталі}} Враховуючи призначення та сферу застосування, протокол не передбачає прямого визначення запитуваних даних та пристроєм, що його реалізує, надаються всі наявні, за запитом командою C_IC_NA_1, після чого надсилаються лише зміни. Всі отримані та контрольовані дані акумулюються у об'єкті атрибуту "items" задля подальшого контрою як об'єкт із представленням даних у таблиці віджету "[[Special:MyLanguage/Libs/Main_graphical_elements#objProps|Main.objProps]]", згідно до визначення [[Special:MyLanguage/Libs/Main#ComplexObject|комплексного об'єкту]]. Для стандартного контролю через атрибути параметру, включно з можливістю архівування, передбачено можливість визначити потрібні дані для створення для них окремого представницького атрибуту, що описується у атрибуті "itemsSet", де вони можуть визначатися як окремо, зі смисловим ідентифікатором та назвою, або за діапазоном із найменуванням по шаблону. Визначення даних у атрибуті "itemsSet" здійснюється записами у форматі '''ai|di|do:{IOA}[-{EndIOA}][:a[:{NameBase}]]''', де: * ''ai|di|do'' — тип даних, де: ** "ai" — аналогові входи, передані повідомленням M_ME_NB_1, M_ME_NC_1, M_ME_TF_1 та запитані C_IC_NA_1; ** "di" — дискретні входи, передані повідомленням M_SP_NA_1, M_SP_TA_1, M_DP_NA_1, M_DP_TA_1 та запитані C_IC_NA_1; ** "do" — дискретні виходи, передавані командою C_SC_NA_1. * ''{IOA}'' — адреса параметру або початок діапазону; * ''{EndIOA}'' — кінець (адреса останнього елементу) діапазону; * ''a'' — ознака створення репрезентативних атрибутів для параметру або групи параметрів; * ''{NameBase}'' — база назви атрибуту(ів). Приклади визначення параметрів, рядки атрибуту "itemsSet": * '''di:100-108:a''' — дискретні входи за діапазоном адрес [100...108] із формуванням атрибутів; * '''ai:873-880:a''' — аналогові входи за діапазоном адрес [873...880] із формуванням атрибутів; * '''do:1-10:a''' — дискретні виходи за діапазоном адрес [1...10] із формуванням атрибутів. Модулем надається вбудована підтримка синхронізації часу ПЛК, надсиланням сервісної команди C_CS_NA_1. У шаблоні вперше використано незапитувальний режим вихідного транспорту та вільне створення атрибутів під час виконання. {{CntHdr|ВВ шаблону}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Ідентифікатор !! Параметр !! Тип !! Режим !! Атрибут !! Конфігурація !! Значення |- | transport || Транспорт || Рядок || Вхід || Не атрибут || Константа || Sockets.out_IEC60870 |- | addr || Адреса, {addr}.{OA} || Рядок || Вхід || Не атрибут || Константа || 0.5 |- | tmRetr || Час відновлення підключення, секунд || Реальний || Вхід || Не атрибут || Константа || 10 |- | tmPoolAll || Час опитування всього, секунд || Реальний || Вхід || Не атрибут || Константа || 60 |- | t1 || Таймаут підтвердження відсутності активності, секунд || Реальний || Вхід || Не атрибут || Константа || 1.5 |- | t2 || Таймаут підтвердження, секунд || Реальний || Вхід || Не атрибут || Константа || 1 |- | t3 || Таймаут перевірки, секунд || Реальний || Вхід || Не атрибут || Константа || 2 |- | k || Максимально непідтверджених || Цілий || Вхід || Не атрибут || Константа || 12 |- | w || Максимальна відсутність "ack" || Цілий || Вхід || Не атрибут || Константа || 8 |- | itemsSet || Набір елементів за: "ai|di|do:{IOA}[-{EndIOA}][:a[:{NameBase}]]" || Текст || Вхід || Повний доступ || Змінна || |- | items || Всі елементи || Об'єкт || Вихід || Повний доступ || Змінна || |- | syncTimePLC || Синхронізація часу ПЛК || Логічний || Вхід || Повний доступ || Змінна || |- | oAVals || Вихідні значення || Об'єкт || Вхід || Не атрибут || Змінна || |- | this || Об'єкт || Об'єкт || Вхід || Не атрибут || Змінна || |- | f_start || Прапорець запуску функції || Логічний || Вхід || Не атрибут || Змінна || 0 |- | f_frq || Частота обчислення функції (Гц) || Реальний || Вхід || Не атрибут || Змінна || 1000 |- | f_stop || Прапорець зупинки функції || Логічний || Вхід || Не атрибут || Змінна || 0 |- | f_err || Помилка функції || Рядок || Вхід || Не атрибут || Змінна || 0 |} [[File:LibsDevsIEC60870Cfg_uk.png|right|Конфігурація.]] {{CntHdr|Конфігурація та використання}} :1. Створити вихідний транспорт типу "[[Special:MyLanguage/Modules/Sockets|Сокети]]", встановити його Ідентифікатор на кшталт "IEC60870", один на кожен пристрій-ПЛК. :2. Встановити відповідну адресу з портом '''2404''' та таймаутами [[Special:MyLanguage/Modules/Sockets|Сокетів]] пристрою-ПЛК. :3. Створити та запустити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного контролеру]] або використати придатний з потрібними властивостями планування. Для взаємодії за IEC-60870-104 вам потрібно період виконання не більше ніж '''0.1 секунда'''! :4. Створити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного параметру]] та обрати цей шаблон для нього, один на кожний пристрій-ПЛК — увімкнути параметр. :5. У вкладці "Конфігурація шаблону" об'єкту логічного параметру ви маєте встановити: :* ''Транспорт'' — адреса транспорту на кроці 1. Підтримується стеження за зміною адреси. :* ''Адреса'' — адреса віддаленої станції та об'єкту у форматі "{addr}.{OA}", для фізичних систем без шлюзування не має особливого значення. :* ''Час відновлення підключення'' — час відновлення підключення у секундах, за відсутності підключення. :* ''Час опитування всього'' — час запиту всіх даних у секундах, надсиланням C_IC_NA_1. :* ''Таймаут підтвердження відсутності активності'', у секундах. :* ''Таймаут підтвердження'', у секундах. :* ''Таймаут перевірки'', у секундах. :* ''Максимально непідтверджених'' — не використовується у клієнті оскільки він не генерує таких потоків. :* ''Максимальна відсутність "ack"'' — максимум вхідних пакетів після яких клієнт надсилає "Ack". :6. РЕЗУЛЬТАТ: Об'єкт логічного параметру буде здійснювати взаємодію та розміщення зібраних даних у об'єкті "items", створення/розміщення та перевірку команд за відповідними атрибутами, створеними за інструкцією у "itemsSet". :7. У процесі роботи, через вкладку оперативних даних "Атрибути", окрім отримання результату можна здійснювати оперативне налаштування та контроль щодо: :* ''Набір елементів за'' — для контрольованого найменування елементів та визначення як атрибути та доступні для запису. :* ''Всі елементи'', {Атрибути елементів} — прямий запис елементів доступних для запису. {| class="wikitable" <section begin=IEC62056 /> | {{Anch|IEC62056|<h3>IEC-62056 ([[Special:MyLanguage/Libs/Devices#IEC62056|IEC62056]])</h3>}} | 1.1 || GPLv2 || * || en, uk, ru <section end=IEC62056 /> | [[User:RomanSavochenko|Роман Савоченко]] |} [[File:LibsDevsIEC62056Op.png|right|Результат та оперативна конфігурація.]] [https://en.wikipedia.org/wiki/IEC_60870 IEC 62056] є набором стандартів для вимірювання електрики та обміну даними. IEC 62056 стандарти є міжнародними версіями специфікації DLMS/COSEM. * '''Стан реалізації протоколу:''' ** КЛІЄНТ ЧАСТИНИ 46 специфікації; ** читання прямо визначених OBIS. * '''Загальна працемісткість:''' 3.3 {{CtxDetails|ЛД|людино-днів, 1ЛД — 10 годин}} * '''Спонсорування, загальну працемісткість:''' ТОВ "СВІТоВИР АВТоМАТИК" {{CntHdr|Деталі}} DLMS або Специфікація Мов Повідомлень Пристроїв (початково Специфікація Повідомлень Розподілених Ліній) є набором стандартів розроблених та підтримуваних Асоціацією Користувачів DLMS (DLMS UA) та адаптованих IEC TC13 WG14 у серію стандартів IEC 62056. COSEM або Супутня Специфікація для Вимірювання Енергії, включає набір специфікацій які визначають транспорт та прикладний шар DLMS протоколу. Асоціація Користувачів DLMS визначає протоколи у наборі чотирьох документів специфікації, а саме Зелена Книга, Жовта Книга, Синя Книга та Біла Книга. Синя Книга описує об'єктну модель вимірювача COSEM та ідентифікаційну систему об'єктів OBIS, Зелена Книга описує архітектуру та протоколи, Жовта Книга опікується всіма питаннями зосередженими на тестуванні сумісності, Біла Книга містить глосарій термінів. При реалізації шаблону використано наступні стандарти: * "IEC 62056-46:2007" — Шар Комунікації Даними з використанням HDLC протоколу. * "IEC 13239:2002" — Телекомунікації та обмін інформацією між системами — процедури Високо-Рівневого контролю комунікацій даними (HDLC). * "IEC 62056-53:2006" — прикладний шар COSEM. * "IEC 62056-61:2006" — система ідентифікації Об'єктів (OBIS). * "IEC 62056-62:2006" — Інтерфейсні класи. [[file:at.png]] Цей протокол не визначає шляху запиту-опитування всіх доступних змінних, на кшталт протоколів [[#IEC60870|IEC-60870]] та [[#DNP3|DNP3]], тож ми маємо вказати їх безпосередньо та попередньо отримати їх для конкретного пристрою. Шаблон початково було реалізовано для роботи із лічильником електрики '''Actaris SL7000''', для якого отримано наступні корисні OBIS коди запиту: : ''Одиночні елементи'' * "1-0.0.96.1.255.255-2" — серійний номер; * "1-0.0.142.1.1.255-2" — версія програми; * "8-0.0.1.0.0.255-2" — час лічильника; * "3-1.1.14.7.0.255-0" — Миттєва Частота (основні частоти); : ''Множинні-групові елементи'' * "7-255.255.98.133.2.255-2" — Загальні Регістри Енергії; * "7-1.1.98.128.1.255-2" — кут фази; * "7-1.1.98.128.2.255-2" — нейтраль; * "7-1.1.98.128.3.255-2" — Потужність; * "7-1.1.98.128.4.255-2" — RMS; * "7-1.1.98.128.5.255-2" — фактор Потужності; * "7-1.1.98.128.6.255-2" — зсув фази. {{CntHdr|ВВ шаблону}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Ідентифікатор !! Параметр !! Тип !! Режим !! Атрибут !! Конфігурація !! Значення |- | transport || Транспорт || Рядок || Вхід || Не атрибут || Константа || Serial.out_IEC62056 |- | dest || Призначення "{UHDLC}[:{LHDLC}]", [0...16383] || Рядок || Вхід || Не атрибут || Константа || 17:6168 |- | src || Джерело [0...127] || Цілий || Вхід || Не атрибут || Константа || 1 |- | pass || Пароль пристрою || Рядок || Вхід || Не атрибут || Константа || ABCDEFGH |- | tmRetr || Час відновлення підключення, секунд || Реальний || Вхід || Не атрибут || Константа || 10 |- | tmPollAll || Час опитування всього, секунд || Реальний || Вхід || Не атрибут || Константа || 10 |- | itemsSet || Набір елементів за: "{OBIS}-{attr}" || Текст || Вхід || Повний доступ || Змінна || |- | items || Всі елементи || Об'єкт || Вихід || Повний доступ || Змінна || |- | tr || Вихідний транспорт || Об'єкт || Вхід || Не атрибут || Змінна || |- | ctx || Контекст ВВ || Об'єкт || Вхід || Не атрибут || Змінна || |- | this || Об'єкт || Об'єкт || Вхід || Не атрибут || Змінна || |- | f_start || Прапорець запуску функції || Логічний || Вхід || Не атрибут || Змінна || 0 |- | f_frq || Частота обчислення функції (Гц) || Реальний || Вхід || Не атрибут || Змінна || 1000 |- | f_stop || Прапорець зупинки функції || Логічний || Вхід || Не атрибут || Змінна || 0 |- | f_err || Помилка функції || Рядок || Вхід || Не атрибут || Змінна || 0 |} [[File:LibsDevsIEC60870Cfg_uk.png|right|Конфігурація.]] {{CntHdr|Конфігурація та використання}} :1. Безпосередньо створити вихідний транспорт типу "[[Special:MyLanguage/Modules/Serial|Послідовний]]", або за допомогою шлюзу "[[Special:MyLanguage/Modules/Sockets|Сокети]]", та встановити його Ідентифікатор на кшталт "IEC62056", один на використану послідовну шину пристрою. :2. Встановити відповідну адресу та таймаути [[Special:MyLanguage/Modules/Serial|Послідовного]] пристрою. :3. Створити та запустити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного контролеру]] або використати придатний з потрібними властивостями планування. Період виконання має бути біля '''0.1 секунда'''. :4. Створити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного параметру]] та обрати цей шаблон для нього, один на кожний пристрій-ПЛК — увімкнути параметр. :5. У вкладці "Конфігурація шаблону" об'єкту логічного параметру маєте встановити: :* ''Транспорт'' — адреса транспорту на кроці 1. Підтримується стеження за зміною адреси. :* ''Призначення "{UHDLC}[:{LHDLC}]"'' — адреса віддаленої станції у форматі двох цифр у діапазоні [0...16383], цю адресу може бути вказано як одна цифра діапазону [0...127]. :* ''Джерело'' — адреса самої станції (джерела) у діапазоні цілого числа [0...127]. :* ''Пароль пристрою'' — пароль доступу пристрою. :* ''Час відновлення підключення'' — час відновлення підключення у секундах, за відсутності підключення та відповіді. :* ''Час опитування всього'' — час запиту всіх даних у секундах, вказаних у "itemsSet". :6. РЕЗУЛЬТАТ: Об'єкт логічного параметру буде здійснювати взаємодію та розміщення зібраних даних у об'єкті "items", створення/розміщення зібраних даних у відповідних атрибутах значень. :7. У процесі роботи, через вкладку оперативних даних "Атрибути", окрім отримання результату можна здійснювати оперативне налаштування та контроль щодо: :* ''Набір елементів за'' — стосовно доповнення OBIS пристрою для їх читання. {| class="wikitable" <section begin=OWEN /> | {{Anch|OWEN|<h3>OWEN ([[Special:MyLanguage/Libs/Devices#OWEN|OWEN]])</h3>}} || 0.8 || GPLv2 || * || en <section end=OWEN /> | [[User:RomanSavochenko|Roman Savochenko]], Constantine (IrmIngeneer) |} OWEN data sources implementation in the OWEN protocol. Implemented wholly in the template for the protocol requesting and for dynamic data model of the OWEN data sources' data with support of the writing and original names of the parameters. * '''State of the protocol implementing:''' Client of the protocol for reading and writing the specified PLC properties. * '''Total complexity:''' 0.5 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Actual issues:''' The undocumented behaviour: ** МВ110-8А responds error 0x31 for reading "in-t": >1003023331932DCB43 <1010932D4791; ** and error 0x34 for it writing: >1003023334932D2A42 <1001932D0BEDBC. {{CntHdr|Details}} The field "addr" of the items can be wrote positive, for the 8 bit address [0...255], and negative, for the 11 bit address[-2047...0]. {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Serial.out_owen |- | items || Items set "<nowiki>{addr}:{func}:{f|i|u|s}:{r|w}[:{id}[:{nm}]]</nowiki>" || Text || Input || Full access || Variable || |- | this || Object || Object || Input || Not attribute || Variable || |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Serial|Serial]]" directly or by the "[[Special:MyLanguage/Modules/Sockets|Sockets]]" gate, and set its Identifier like to "owen", one for each the devices' used serial bus. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Serial|Serial]] device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for the devices on one bus — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to address of the transport into step 1. Tracing for the address changing is supported. :6. RESULT: The logical parameter object will: dynamically create needed attributes accordingly to the attribute "Items set" value and perform interaction and placing of gathered data to the parameter attributes. Also you are able to change for writable attributes. Into the "Error" attribute, additionally to the same errors, you will get for statuses of the read and wrote values. == Industrial automation devices == {| class="wikitable" <section begin=TM510x /> | {{Anch|TM510x|<h3>Elemer TM510x ([[Special:MyLanguage/Libs/Devices#TM510x|TM510x]])</h3>}} || 1.0 || GPLv2 || * => [[Special:MyLanguage/Modules/UserProtocol|UserProtocol]] || en, uk, ru <section end=TM510x /> | [[User:RomanSavochenko|Roman Savochenko]] |} Multi-channels thermometer Elemer TM5102 and TM5103 of the firm [http://www.elemer.ru Elemer]. * '''Sponsored by:''' [http://diyaorg.dp.ua DIYA Ltd] {{CntHdr|Output user protocol's XML request structure}} '''<mess addr="1" err="1:Error">{req}</mess>''' :''req'' — request/respond data; :''addr'' — remote station address (1...254); :''err'' — sets to result of the request.<br/> {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || tm510x |- | addr || Device address (1...254) || Integer || Input || Not attribute || Constant || 1 |- | devTp || Device type || Integer || Input || Read only || Variable || |- | errors || Errors || String || Input || Read only || Variable || |- | in1 || Input 1 || Real || Input || Read only || Variable || |- | in2 || Input 2 || Real || Input || Read only || Variable || |- | in3 || Input 3 || Real || Input || Read only || Variable || |- | in4 || Input 4 || Real || Input || Read only || Variable || |- | in5 || Input 5 || Real || Input || Read only || Variable || |- | in6 || Input 6 || Real || Input || Read only || Variable || |- | in7 || Input 7 || Real || Input || Read only || Variable || |- | in8 || Input 8 || Real || Input || Read only || Variable || |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Serial|Serial]]" and set its Identifier like to "tm510", one for each the devices' used serial bus. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Serial|Serial]] device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to Identifier of the transport into step 1. :* ''Device address'' — to logical address of the device on the bus under the transport in step 1. :6. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes. {| class="wikitable" <section begin=SCU750 /> | {{Anch|SCU750|<h3>EDWARDS TURBOMOLECULAR PUMPS ([[Special:MyLanguage/Libs/Devices#SCU750|SCU750]])</h3>}} || 1.0 || GPLv2 || * => [[Special:MyLanguage/Modules/UserProtocol|UserProtocol]] || en, uk, ru <section end=SCU750 /> | [[User:RomanSavochenko|Roman Savochenko]] |} Typical EDWARDS TURBOMOLECULAR PUMPS (http://edwardsvacuum.com) data acquisition by SCU750 Cotrol Unit protocol.<br/> * '''Sponsored by:''' Vassily Grigoriev, [http://e-beam.ru the Laboratory of Vacuum Technologies] {{CntHdr|Output user protocol's XML request structure}} '''<mess addr="1" err="1:Error">{req}</mess>''' :''req'' — request/respond data; :''addr'' — remote station address (<0 — single; >=0 — multi port); :''err'' — sets to result of the request. {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || SCU750 |- | addr || Device address (-1...255) || Integer || Input || Not attribute || Constant || 1 |- | perGet || Period data getting (s) || Real || Input || Not attribute || Constant || 10 |- | version || Version || String || Input || Read only || Variable || |- | snCntrUnit || Serial number: Control Unit || String || Input || Read only || Variable || |- | snPump || Serial number: Pump || String || Input || Read only || Variable || |- | cntPumpHour || Pump hour counter (minutes) || Real || Input || Read only || Variable || |- | cntCntrUnitHour ||Control unit hour counter (minutes) || Real || Input || Read only || Variable || |- | cntStart || Start counter || Real || Input || Read only || Variable || |- | operMode || Pump Operation Mode || String || Input || Read only || Variable || |- | errors || Errors || String || Input || Read only || Variable || |- | events || Events || String || Input || Read only || Variable || |- | tTMS || TMS temperature (°С) || Integer || Input || Read only || Variable || |- | tMotor || Motor temperature (°С) || Integer || Input || Read only || Variable || |- | rotSpeed || Rotational speed (HZ) || Integer || Input || Read only || Variable || |- | comStart || Command: START || Boolean || Input || Full access || Variable || |- | comStop || Command: STOP || Boolean || Input || Full access || Variable || |- | comReset || Command: RESET || Boolean || Input || Full access || Variable || |- | spSpeed || Set point: Speed || Integer || Input || Full access || Variable || |- | spTMSt || Set point: TMS temperature || Integer || Input || Read only || Variable || |- | spSpeedPrev || Set point: Speed (previous) || Integer || Output || Not attribute || Variable || |- | cnt || Counter || Integer || Output || Not attribute || Variable || |- | operModes || Operation modes || Object || Output || Not attribute || Variable || |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Serial|Serial]]" and set its Identifier like to "SCU750", one for each the devices' used serial bus. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Serial|Serial]] device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to Identifier of the transport into step 1. :* ''Device address'' — to logical address of the device on the bus under the transport in step 1. :* ''Period data getting'' — to needed acquisition period which more to the real processing by the logical level controller. Commands and some other functions will process immediately. :6. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes. Also you are able to send some commands to the device through the writable attributes. {| class="wikitable" <section begin=SMDP /> | {{Anch|SMDP|<h3>Sycon Multi Drop Protocol ([[Special:MyLanguage/Libs/Devices#SMDP|SMDP]])</h3>}} || 1.0 || GPLv2 || * => [[Special:MyLanguage/Modules/UserProtocol|UserProtocol]] || en, uk, ru <section end=SMDP /> | [[User:RomanSavochenko|Roman Savochenko]] |} STM devices for resonant frequency measurement for mass of deposited films attached to their surface by Sycon Instruments, Inc. (http://www.sycon.com).<br/> * '''Sponsored by:''' Vassily Grigoriev, [http://e-beam.ru the Laboratory of Vacuum Technologies] {{CntHdr|Output user protocol's XML request structure}} '''<mess addr="16" try="1" err="1:Error">{req}</mess>''' :''req'' — request/respond data; :''addr'' — remote device address [16...254]; :''try'' — tries of the request; :''err'' — sets to result of the request. {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || SMDP |- | addr || Device address (16...254) || Integer || Input || Not attribute || Constant || 16 |- | perGet || Period data getting (s) || Real || Input || Not attribute || Constant || 10 |- | version || Firmware Version || String || Input || Read only || Variable || |- | CfgPrmSSID || Configuration parameter session ID || Integer || Input || Read only || Variable || |- | Srlno || Measurement serial number || Integer || Input || Read only || Variable || |- | RawFreq || Channel freq. || Real || Input || Read only || Variable || |- | GoodFreq || Last used, good channel freq. (Hz) || Real || Input || Read only || Variable || |- | RawThick || Computed raw thickness, from frequency. (A) || Real || Input || Read only || Variable || |- | XtalThick || Computed material related thickness, can be zeroed. (A) || Real || Input || Read only || Variable || |- | XtalThick_F || Filtered computed material related thickness, can be zeroed. (A) || Real || Input || Read only || Variable || |- | XtalRate || Rate, angstroms per second. || Real || Input || Read only || Variable || |- | XtalRate_F || Rate, angstroms per second, filtered. || Real || Input || Read only || Variable || |- | XtalLife || XtalLife (%) || Real || Input || Read only || Variable || |- | XtalQual || Quality level (0-9). || Integer || Input || Read only || Variable || |- | XtalQualPeak || Highest quality level seen (0-9). || Integer || Input || Read only || Variable || |- | XtalStab || Stability level (0-9). || Integer || Input || Read only || Variable || |- | XtalStabPeak || Highest stability level seen (0-9). || Integer || Input || Read only || Variable || |- | XtalStat || Channel status. || String || Input || Read only || Variable || |- | XtalLife_C || XtalLife (%). || Integer || Input || Read only || Variable || |- | SessId || Session ID || Integer || Input || Full access || Variable || |- | Fq || Xtal start freq. (Hz) || Real || Input || Full access || Variable || |- | Fm || Xtal min freq. (Hz) || Real || Input || Full access || Variable || |- | Density || Material density (gm/cc). || Real || Input || Full access || Variable || |- | Zratio || Material Z ratio. Not scaled or unitized. || Real || Input || Full access || Variable || |- | Tooling || 1.000 is 100 % tooling (unity). || Real || Input || Full access || Variable || |- | RateReq || Requested rate (A/S). || Real || Input || Full access || Variable || |- | QlvlTrip || Quality threshold, if non 0 and exceeded, xtal fail occurs. || Integer || Input || Full access || Variable || |- | SlvlTrip || Stability threshold, if non 0 and exceeded, xtal fail occurs. || Integer || Input || Full access || Variable || |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Serial|Serial]]" and set its Identifier like to "SMDP", one for each the devices' used serial bus. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Serial|Serial]] device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to Identifier of the transport into step 1. :* ''Device address'' — to logical address of the device on the bus under the transport in step 1. :* ''Period data getting'' — to needed acquisition period which more to the real processing by the logical level controller. Commands and some other functions will process immediately. :6. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes. Also you are able to send some commands to the device through the writable attributes. {| class="wikitable" <section begin=TMH /> | {{Anch|TMH|<h3>Power supply for turbomolecular pumps ([[Special:MyLanguage/Libs/Devices#TMH|TMH]])</h3>}} || 1.0 || GPLv2 || * => [[Special:MyLanguage/Modules/UserProtocol|UserProtocol]] || en, uk, ru <section end=TMH /> | [[User:RomanSavochenko|Roman Savochenko]] |} Power supply for turbomolecular pumps of the firm [http://www.shimadzu.com SHIMADZU], model EI-R04M.<br/> * '''Sponsored by:''' Vassily Grigoriev, [http://e-beam.ru the Laboratory of Vacuum Technologies] {{CntHdr|Output user protocol's XML request structure}} '''<mess addr="1" err="1:Error">{req}</mess>''' :''req'' — request/respond data; :''addr'' — remote station address (1...32); :''err'' — sets to result of the request. {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || TMP |- | addr || Device address (-1...255) || Integer || Input || Not attribute || Constant || 1 |- | perGet || Period data getting (s) || Real || Input || Not attribute || Constant || 10 |- | modelID || Model ID || String || Input || Read only || Variable || |- | errors || Errors || String || Input || Read only || Variable || |- | rotSpeed || Rotational speed (HZ) || Integer || Input || Read only || Variable || |- | I || Current (A) || Real || Input || Read only || Variable || |- | axle1disb || Axle 1 disbalance || Integer || Input || Read only || Variable || |- | axle2disb || Axle 2 disbalance || Integer || Input || Read only || Variable || |- | MP_X1 || MP X1 || Integer || Input || Read only || Variable || |- | MP_Y1 || MP Y1 || Integer || Input || Read only || Variable || |- | MP_X2 || MP X2 || Integer || Input || Read only || Variable || |- | MP_Y2 || MP Y2 || Integer || Input || Read only || Variable || |- | MP_Z || MP Z || Integer || Input || Read only || Variable || |- | operMode || Operation Mode || String || Input || Read only || Variable || |- | comStart || Command: START || Boolean || Input || Full access || Variable || |- | comStop || Command: STOP || Boolean || Input || Full access || Variable || |- | comReset || Command: RESET || Boolean || Input || Full access || Variable || |- | operCntr || Operation Control Mode || String || Input || Read only || Variable || |- | comInteract || Interactive mode || Boolean || Input || Full access || Variable || |- | comAutonom || Autonomous mode || Boolean || Input || Full access || Variable || |- | cnt || Counter || Integer || Output || Not attribute || Variable || |- | operModes || Operation modes || Object || Output || Not attribute || Variable || |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Serial|Serial]]" and set its Identifier like to "TMP", one for each the devices' used serial bus. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Serial|Serial]] device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to Identifier of the transport into step 1. :* ''Device address'' — to logical address of the device on the bus under the transport in step 1. :* ''Period data getting'' — to needed acquisition period which more to the real processing by the logical level controller. Commands and some other functions will process immediately. :6. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes. Also you are able to send some commands to the device through the writable attributes. {| class="wikitable" <section begin=IT3 /> | {{Anch|IT3|<h3>Temperature measurement IT-3 ([[Special:MyLanguage/Libs/Devices#IT3|IT3]])</h3>}} || 1.2 || GPLv2 || * => [[Special:MyLanguage/Modules/UserProtocol|UserProtocol]] || en, uk, ru <section end=IT3 /> | [[User:RomanSavochenko|Roman Savochenko]] |} Temperature measurement IT-3 from [http://www.omsketalon.ru OmskEtalon].<br/> * '''Sponsored by:''' Vassily Grigoriev, [http://e-beam.ru the Laboratory of Vacuum Technologies] {{CntHdr|Output user protocol's XML request structure}} '''<mess addr="1" err="1:Error">{req}</mess>''' :''req'' — request/respond data; :''addr'' — remote station address (1...32); :''err'' — sets to result of the request. {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || IT3 |- | addr || Device address || Integer || Input || Not attribute || Constant || 1 |- | T || Temperature || Real || Input || Read only || Variable || |- | H || Upper border || Boolean || Input || Read only || Variable || |- | L || Lower border || Boolean || Input || Read only || Variable || |- | relSt || Relay state || Boolean || Input || Read only || Variable || |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Serial|Serial]]" and set its Identifier like to "IT3", one for each the devices' used serial bus. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Serial|Serial]] device, typical it is "{serDevPath}:4800:8N2". :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to Identifier of the transport into step 1. :* ''Device address'' — to logical address of the device on the bus under the transport in step 1. :6. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes. {| class="wikitable" <section begin=IVE_452HS_02 /> | {{Anch|IVE_452HS_02|<h3>Power supply of beam-electrons evaporator ([[Special:MyLanguage/Libs/Devices#IVE_452HS_02|IVE-452HS-02]])</h3>}} || 1.0 || GPLv2 || * => [[Special:MyLanguage/Modules/UserProtocol|UserProtocol]] || en, uk, ru <section end=IVE_452HS_02 /> | [[User:RomanSavochenko|Roman Savochenko]] |} Power supply of beam-electrons evaporator of "Plasma Tech" Ltd, from Moskov.<br/> * '''Sponsored by:''' Vassily Grigoriev, [http://e-beam.ru the Laboratory of Vacuum Technologies] {{CntHdr|Output user protocol's XML request structure:}} '''<mess addr="255" err="1:Error">{req}</mess>''' :''req'' — request/respond data; :''addr'' — remote station address (0...255); :''err'' — sets to result of the request. {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Sockets.out_IVE |- | addr || Device address || Integer || Input || Not attribute || Constant || 255 |- | COIA || Output current level set-point || Integer || Output || Full access || Variable || |- | COUA || Output voltage level set-point || Integer || Output || Full access || Variable || |- | COPA || Output power level set-point || Integer || Output || Full access || Variable || |- | DIA || Output current || Integer || Input || Read only || Variable || |- | DUA || Output voltage || Integer || Input || Read only || Variable || |- | DPA || Output power || Integer || Input || Read only || Variable || |- | DFA || Electric arcs frequency || Integer || Input || Read only || Variable || |- | DAC || Electric arcs counter || Integer || Input || Read only || Variable || |- | COM_DEW || Command: Blocking by SC and XX || Boolean || Input || Full access || Variable || |- | COM_OUT || Command: Display on UI out block's params || Boolean || Input || Full access || Variable || |- | COM_DEP || Command: Enable MK || Boolean || Input || Full access || Variable || |- | COM_DEL || Command: Blocks #1,2 to net || Boolean || Input || Full access || Variable || |- | COM_UF || Command: Display on UI frequency and current || Boolean || Input || Full access || Variable || |- | DKW || MUBR of the block overheated || Boolean || Input || Read only || Variable || |- | DKZ || Short circuits on the block out || Boolean || Input || Read only || Variable || |- | DK || MK of the block overheated || Boolean || Input || Read only || Variable || |- | DE || Power and voltage on out present || Boolean || Input || Read only || Variable || |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Serial|Serial]]" directly or by the "[[Special:MyLanguage/Modules/Sockets|Sockets]]" gate, and set its Identifier like to "Sockets.out_IVE", one for each the devices' used serial bus. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Serial|Serial]] device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to address of the transport into step 1. Tracing for the address changing is supported. :* ''Device address'' — to logical address of the device on the bus under the transport in step 1. Tracing for the address changing is supported. :6. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes. Also you are able to send some commands to the device through the writable attributes. {| class="wikitable" <section begin=OPTRIS /> | {{Anch|OPTRIS|<h3>OPTRIS CT/CTL ([[Special:MyLanguage/Libs/Devices#OPTRIS|OPTRIS]])</h3>}} || 1.0 || GPLv2 || * => [[Special:MyLanguage/Modules/UserProtocol|UserProtocol]] || en, uk, ru <section end=OPTRIS /> | [[User:RomanSavochenko|Roman Savochenko]] |} OPTRIS CT/CTL communication interface of "Optris" GmbH, from Berlin.<br/> * '''Sponsored by:''' Vassily Grigoriev, [http://e-beam.ru the Laboratory of Vacuum Technologies] {{CntHdr|Output user protocol's XML request structure}} '''<mess addr="1" cs="1" err="1:Error">{req}</mess>''' :''req'' — request/respond data; :''addr'' — remote station address (0...15); :''сs'' — use control sum for SET commands [0,1]; :''err'' — sets to result of the request. {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Serial.out_OPTRIS |- | addr || Device address || Integer || Input || Not attribute || Constant || 1 |- | Tproc || T process || Real || Input || Read only || Variable || |- | Thead || T head || Real || Input || Read only || Variable || |- | Tbox || T box || Real || Input || Read only || Variable || |- | Tact || T act. || Real || Input || Read only || Variable || |- | eps || IR epsilon || Real || Input || Full access || Variable || |- | trans || IR transmission || Real || Input || Full access || Variable || |- | spIll || Spot illumination || Logical || Input || Full access || Variable || |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Serial|Serial]]" directly or by the "[[Special:MyLanguage/Modules/Sockets|Sockets]]" gate, and set its Identifier like to "Serial.out_OPTRIS", one for each the devices' used serial bus. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Serial|Serial]] device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to address of the transport into step 1. Tracing for the address changing is supported. :* ''Device address'' — to logical address of the device on the bus under the transport in step 1. :6. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes. Also you are able to send some commands to the device through the writable attributes. {| class="wikitable" <section begin=CTR /> | {{Anch|CTR|<h3>CTR 100, 101 ([[Special:MyLanguage/Libs/Devices#CTR|CTR]])</h3>}} || 1.0 || GPLv2 || * => [[Special:MyLanguage/Modules/UserProtocol|UserProtocol]] || en, uk, ru <section end=CTR /> | [[User:RomanSavochenko|Roman Savochenko]] |} The RS232C Serial Interface permits the communication between the digital Oerlikon Leybold Vacuum CERAVAC, from Köln.<br/> * '''Sponsored by:''' Vassily Grigoriev, [http://e-beam.ru the Laboratory of Vacuum Technologies] {{CntHdr|Output user protocol's XML request structure}} '''<mess err="1:Error">{req}</mess>''' :''req'' — request/respond data; :''err'' — sets to result of the request. {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Serial.out_CTR |- | press || Pressure, Tor || Real || Output || Read only || Variable || |- | zeroSet || Zero set || Logical || Input || Full access || Variable || |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Serial|Serial]]" directly or by the "[[Special:MyLanguage/Modules/Sockets|Sockets]]" gate, and set its Identifier like to "Serial.out_CTR", one for each the devices' used serial bus. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Serial|Serial]] device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to address of the transport into step 1. Tracing for the address changing is supported. :6. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes. Also you are able to send some commands to the device through the writable attributes. {| class="wikitable" <section begin=SSCP /> | {{Anch|SSCP|<h3>Shark Slave Communication Protocol ([[Special:MyLanguage/Libs/Devices#SSCP|SSCP]])</h3>}} || 0.6 || GPLv2 || * || en, uk, ru <section end=SSCP /> | [[User:RomanSavochenko|Roman Savochenko]] |} Shark Slave Communication Protocol from EnergoCentrum PLUS, s.r.o. * '''Total complexity:''' 1.35 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Sponsored by, for whole complexity:''' [http://faster.cz Costumer Faster CZ] {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport of the Ethernet network, Sockets || String || Input || Not attribute || Constant || SSCP |- | addr || Address [0...255] || Integer || Input || Not attribute || Constant || 1 |- | user || User || String || Input || Not attribute || Constant || admin |- | pass || Password || String || Input || Not attribute || Constant || rw |- | maxDtFrm || Maximum data frame size || Integer || Input || Not attribute || Constant || 2048 |- | listsDir || Folder of the list files || String || Input || Not attribute || Constant || SSCP |- | verPrt || Protocol version || Integer || Input || Read only || Variable || |- | maxDtFrmServ || Server's maximum data frame size || Integer || Input || Read only || Variable || |- | list || Variables selected for processing || Text || Input || Full access || Variable || |- | this || Object || Object || Input || Not attribute || Variable || |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Sockets|Sockets]]", set its Identifier like to "SSCP", one for each the device. :2. Set proper address of the [[Special:MyLanguage/Modules/Sockets|Sockets]] device to IP-address or host address of the remote device in the Ethernet network. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to address of the transport into step 1. Tracing for the address changing is supported. :* ''Address'' — to logical address of the device on the bus under the transport in step 1. :6. RESULT: The logical parameter object will perform: :* reading files of lists ''listsDir'' for creation and content forming of the attribute "selList" of list of all allowed device's attributes; :* reading of content of the attribute ''list'' of selected device's attributes to dynamic form their representing attributes into the parameter object; :* reading of the dynamic formed representing attributes; :* checking for changes and writing of the dynamic formed representing attributes. {| class="wikitable" <section begin=pulsarM /> | {{Anch|pulsarM|<h3>Pulsar-M ([[Special:MyLanguage/Libs/Devices#pulsarM|pulsarM]])</h3>}} || 1.0 || GPLv2 || * || en, uk, ru <section end=pulsarM /> | [[User:RomanSavochenko|Roman Savochenko]] |} Pulsar-M counters protocol. * '''Sponsored by:''' Zubarev Dmitry, [http://kip-i-a.pro IP INTEGRAL] {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Serial.out_pulsar |- | addr || Address [0...99999999] || Integer || Input || Not attribute || Constant || 12345678 |- | nChnl || Channels number || Integer || Input || Full access || Variable || 0 |- | this || Object || Object || Input || Not attribute || Variable || |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Serial|Serial]]" directly or by the "[[Special:MyLanguage/Modules/Sockets|Sockets]]" gate, and set its Identifier like to "Serial.out_pulsar", one for each the devices' used serial bus. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Serial|Serial]] device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to address of the transport into step 1. Tracing for the address changing is supported. :* ''Address'' — to logical address of the device on the bus under the transport in step 1. Tracing for the address changing is supported. :6. RESULT: The logical parameter object will: dynamically create needed attributes accordingly to the attribute "Channels number" value and perform interaction and placing of gathered data to the parameter attributes. Also you are able to change some writable attributes. {| class="wikitable" <section begin=VSE002 /> | {{Anch|VSE002|<h3>VSE002 ([[Special:MyLanguage/Libs/Devices#VSE002|VSE002]])</h3>}} || 1.0 || GPLv2 || * || en <section end=VSE002 /> | [[User:RomanSavochenko|Roman Savochenko]] |} The template implements for main data acquisition of the vibration sensors of the firm [https://www.ifm.com/ IFM] according to the reverse-engineering. Development and testing was performed on base of the sensor [https://www.ifm.com/gb/en/product/VSE002 VSE002], so you can use the template in compatible devices. The main data are ones transferred by the packages with indexed parameters: B16 — two different and B20 — one with three additional. The parameters are specific for configuration the device, so their representative attributes are created dynamically at receiving the packages. The template provides also of creation the aliased attributes with user specified ID and some simple processing by their describing in the attribute "User signals (custSign)". * '''Total complexity:''' 3.0 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Sponsored by:''' Vinnica Poultry Farm {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Sockets.VSE:10.63.42.224:3321 |- | tmCon || Reconnection time, in seconds || Integer || Input || Not attribute || Constant || 10 |- | custSign || User signals in the format — "{code}:{id}:{mult}" | Text || Input || Full access || Variable || |- | tr || Output transport || Object || Output || Not attribute || Variable || |- | custSignO || Object of the user signals || Object || Output || Not attribute || Variable || |- | this || Object || Object || Input || Not attribute || Variable || |- | f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0 |- | f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0 |- | f_frq || Frequency of calculation of the function, Hz Real || Input || Not attribute || Variable || 1000 |- | f_err || Function error || String || Input || Not attribute || Variable || 0 |} {{CntHdr|Configuring and using}} :1. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] — one for each the devices since traffic is big (~2KB/s) with the execution period in 1 (one) second. :2. Create one [[Special:MyLanguage/Modules/LogicLev|logical parameter object]] and select this template for it — enable the parameter. :3. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to the address of the automatically created transport with its parameters after ":", according to [[Special:MyLanguage/Documents/User_API#SYSTransport|the function SYS.Transport.outAt() address format]]. :* ''Reconnection time'' — in time of detection the data missing for reconnection, due to the request is only one and next we filter the data stream. :* ''User signals'' — describes of aliases to the obtaining parameters in the format "{code}:{id}:{mult}", when for the ''code'' parameter is created attribute ''id'' with the value multiplication ''mult''. :4. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes. {| class="wikitable" <section begin=Incubator /> | {{Anch|Incubator|<h3>Incubator ([[Special:MyLanguage/Libs/Devices#Incubator|Incubator]])</h3>}} || 1.0 || GPLv2 || * || en <section end=Incubator /> | [[User:RomanSavochenko|Roman Savochenko]] |} The template implements the data acquisition of the Incubator Machines of firm ? in active and passive modes according to the reverse-engineering. Data of the machines is static but due to implementing two modes — active and passive, their attributes are created dynamically. The active mode means direct data requesting in a corresponded machine, when the passive mode is filtered whole traffic in the RS422 network and is created child virtual parameters for each machine corresponding to the obtained data. The template implements the collection of statistics about the network in general and for each individual machine. General statistics include: the number of read and processed packages, and the time of the last one; the remaining time (seconds) before the restart-reconnection of the transport in the absence of traffic in the input channel from "Reconnection time, data missing for passive (tmCon)". The statistics of a separate machine include: the number of received and processed packages, and the time of the last one; the current data update periodicity with maximum; the number of machine shutdowns, i.e. setting the attributes of the machine parameters in EVAL due to the lack of packages data during the specified time "Time of missing the machine data to set EVAL (tmToEVAL)". * '''Total complexity:''' 4.3 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Sponsored by:''' Vinnica Poultry Farm {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Sockets.LE:10.39.170.2:9761 |- | addr || Device address [0...255], and -1 for the passive mode || Integer || Input || Not attribute || Constant || 1 |- | tmCon || Reconnection time, data missing for passive, in seconds || Integer || Input || Not attribute || Constant || 10 |- | tmToEVAL || Time of missing the machine data to set EVAL || Integer || Input || Not attribute || Constant || 120 |- | tr || Output transport || Object || Output || Not attribute || Variable || |- | machs || Machines || Object || Output || Not attribute || Variable || |- | this || Object || Object || Input || Not attribute || Variable || |- | f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0 |- | f_err || Function error || String || Input || Not attribute || Variable || 0 |- | f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000 |- | f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0 |} {{CntHdr|Configuring and using}} :1. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :2. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select this template for it, one for each the devices in the active mode or one for whole devices in the RS422 network for the passive mode — enable the parameter. :3. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to the address of the automatically created transport with its parameters after ":", according to [[Special:MyLanguage/Documents/User_API#SYSTransport|the function SYS.Transport.outAt() address format]]. :* ''Device address [0...255], and -1 for the passive mode'' — set here the corresponded device address for the active mode or -1 for the passive mode. :* ''Reconnection time, data missing for passive'' — in time of detection the data missing for reconnection in the passive filtering mode. :* ''Time of missing the machine data to set EVAL'' — in time of detection the machine data missing for marking its attributes to EVAL in the passive filtering mode. :4. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes. {| class="wikitable" <section begin=MTP4D /> | {{Anch|MTP4D|<h3>MTP 4D ([[Special:MyLanguage/Libs/Devices#MTP4D|MTP4D]])</h3>}} || 1.1 || GPLv2 || * || en,uk,ru <section end=MTP4D /> | [[User:RomanSavochenko|Roman Savochenko]] |} The connection template of a simple vacuumeter MTP 4D of the firm "[http://www.erstvak.com Erstevak Ltd]". * '''Total complexity:''' 0.3 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Sponsored by, for whole complexity:''' Magomed, [https://www.savtech.ru SAVTECH] {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Serial.MTP |- | addr || Device address, [1...999] || Integer || Input || Not attribute || Constant || 1 |- | type || Device type || String || Input || Read only || Variable || |- | P || Pressure || Real || Input || Read only || Variable || |- | zeroP || Set zero || Boolean || Input || Full access || Variable || |- | zeroAP || Set atmosphere || Boolean || Input || Full access || Variable || |- | tr || Output transport || Object || Input || Not attribute || Variable || |- | this || Object || Object || Input || Not attribute || Variable || |- | f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0 |- | f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000 |- | f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0 |- | f_err || Function error || String || Input || Not attribute || Variable || 0 |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Serial|Serial]]" directly or by the "[[Special:MyLanguage/Modules/Sockets|Sockets]]" gate, and set its Identifier like to "MTP", one for each the devices' used serial bus. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Serial|Serial]] device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for the devices on one bus — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to address of the transport into step 1. Tracing for the address changing is supported. :* ''Device address'' — to logical address of the device on the bus under the transport in step 1. Tracing for the address changing is supported. :6. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes. Also you are able to change some writable attributes. == Counters of the resources == {| class="wikitable" <section begin=VKT7 /> | {{Anch|VKT7|<h3>Heat counter computer VKT7 ([[Special:MyLanguage/Libs/Devices#VKT7|VKT7]])</h3>}} || 1.0 || GPLv2 || * => [[Special:MyLanguage/Modules/UserProtocol|UserProtocol]] || en, uk, ru <section end=VKT7 /> | [[User:RomanSavochenko|Roman Savochenko]] |} Firm "Teplocom" (http://www.teplocom.spb.ru) computer "VKT-7" for complex heat measurement and counting. The device complex enough to provide more parameters, more history and accessed by a nonlinear Serial-based protocol at low speed. The template implements acquisition for all significant parameters, gets for their history by hours, days and result months. Also you can to append easily enough for processing of the remained parameters.<br/> * '''Total complexity:''' 4.9 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Sponsored by, for initial implementation on 4.0 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' Vladislav Chubuk, Teplocom LTD {{CntHdr|Output user protocol's XML request structure}} '''<mess addr="1" err="1:Error">{req}</mess>''' :''req'' — request/respond data; :''addr'' — remote station address (0...254); :''err'' — sets for the request result.<br/> {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | imit || Imitation drift % (0-disable) || Real || Input || Not attribute || Constant || 0 |- | trAddr || Transport || String || Input || Not attribute || Constant || Transport.Serial.out_VKT7 |- | arhH || Archiver: hours || String || Input || Not attribute || Constant || |- | arhD || Archiver: days || String || Input || Not attribute || Constant || |- | arhRes || Archiver: results-month || String || Input || Not attribute || Constant || |- | maxDayDepth || Archiver: maximum depth of reading for not hours archivers, days || Integer || Input || Not attribute || Constant || 366 |- | lastResTm || Last result months read time (s) || Integer || Output || Full access || Variable || 0 |- | leftResTm || Left result months for read from archive || Integer || Output || Read only || Variable || |- | lastDTm || Last days read time (s) || Integer || Output || Full access || Variable || 0 |- | leftDTm || Left days for read from archive || Integer || Output || Read only || Variable || |- | lastHTm || Last hours read time (s) || Integer || Output || Full access || Variable || |- | leftHTm || Left hours for read from archive || Integer || Output || Read only || Variable || |- | diffTm || Difference time (server-counter), hours || Integer || Input || Read only || Variable || |- | firmVer || Firmware version || Real || Input || Read only || Variable || |- | abonId || Subscriber ID || String || Input || Read only || Variable || |- | repDay || Report day || Integer || Input || Read only || Variable || |- | netNum || Network number || Integer || Input || Read only || Variable || |- | modelImpl || Model implementation || Integer || Input || Read only || Variable || |- | tTypeM || t: dimension || String || Input || Read only || Variable || |- | GTypeM || G: dimension || String || Input || Read only || Variable || |- | VTypeM || V: dimension || String || Input || Read only || Variable || |- | MTypeM || M: dimension || String || Input || Read only || Variable || |- | PTypeM || P: dimension || String || Input || Read only || Variable || |- | QoTypeM || Qo: dimension || String || Input || Read only || Variable || |- | QntTypeHIM || ВНР: dimension || String || Input || Read only || Variable || |- | QntTypeM || ВОК: dimension || String || Input || Read only || Variable || |- | t1_1 || t1 (Tв1) || Real || Input || Full access || Variable || |- | t2_1 || t2 (Tв1) || Real || Input || Full access || Variable || |- | t3_1 || t3 (Tв1) || Real || Input || Full access || Variable || |- | V1_1 || V1 (Tв1) || Real || Input || Full access || Variable || |- | V2_1 || V2 (Tв1) || Real || Input || Full access || Variable || |- | V3_1 || V3 (Tв1) || Real || Input || Full access || Variable || |- | M1_1 || M1 (Tв1) || Real || Input || Full access || Variable || |- | M2_1 || M2 (Tв1) || Real || Input || Full access || Variable || |- | M3_1 || M3 (Tв1) || Real || Input || Full access || Variable || |- | P1_1 || P1 (Tв1) || Real || Input || Full access || Variable || |- | P2_1 || P2 (Tв1) || Real || Input || Full access || Variable || |- | Mg_1 || Mg (Tв1) || Real || Input || Full access || Variable || |- | Qo_1 || Qo (Tв1) || Real || Input || Full access || Variable || |- | Qg_1 || Qg (Tв1) || Real || Input || Full access || Variable || |- | dt_1 || dt (Tв1) || Real || Input || Full access || Variable || |- | BNR_1 || ВНР (Tв1) || Real || Input || Full access || Variable || |- | BOC_1 || ВОС (Tв1) || Real || Input || Full access || Variable || |- | G1_1 || G1 (Tв1) || Real || Input || Full access || Variable || |- | G2_1 || G2 (Tв1) || Real || Input || Full access || Variable || |- | t1_2 || t1 (Tв2) || Real || Input || Full access || Variable || |- | t2_2 || t2 (Tв2) || Real || Input || Full access || Variable || |- | t3_2 || t3 (Tв2) || Real || Input || Full access || Variable || |- | V1_2 || V1 (Tв2) || Real || Input || Full access || Variable || |- | V2_2 || V2 (Tв2) || Real || Input || Full access || Variable || |- | V3_2 || V3 (Tв2) || Real || Input || Full access || Variable || |- | M1_2 || M1 (Tв2) || Real || Input || Full access || Variable || |- | M2_2 || M2 (Tв2) || Real || Input || Full access || Variable || |- | M3_2 || M3 (Tв2) || Real || Input || Full access || Variable || |- | P1_2 || P1 (Tв2) || Real || Input || Full access || Variable || |- | P2_2 || P2 (Tв2) || Real || Input || Full access || Variable || |- | Mg_2 || Mg (Tв2) || Real || Input || Full access || Variable || |- | Qo_2 || Qo (Tв2) || Real || Input || Full access || Variable || |- | Qg_2 || Qg (Tв2) || Real || Input || Full access || Variable || |- | dt_2 || dt (Tв2) || Real || Input || Full access || Variable || |- | BNR_2 || ВНР (Tв2) || Real || Input || Full access || Variable || |- | BOC_2 || ВОС (Tв2) || Real || Input || Full access || Variable || |- | G1_2 || G1 (Tв2) || Real || Input || Full access || Variable || |- | G2_2 || G2 (Tв2) || Real || Input || Full access || Variable || |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Serial|Serial]]" and set its Identifier like to "VKT7", one for each the devices. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Serial|Serial]] device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Create or use a minutes (current ones) value archivator object (1m, period=60sek.). :6. Create a hours value archivator object (arhH, period=3600sek.), a days value archivator object (arhD, 86400sek.) and a result month value archivator object (arhM, 86400sek.). Set the "Period archiving (sec)" property of the archivators to '0' for disable the data flow from the archive buffer. :7. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Imitation drift %'' — to '0' for the imitation disable. :* ''Transport'' — to path of the transport into step 1, like to "Transport.Serial.out_VKT7". :* ''Archiver: hours'' — to the hours archiver into step 6, like to "FSArch.arhH". :* ''Archiver: days'' — to the days archiver into step 6, like to "FSArch.arhD". :* ''Archiver: results-month'' — to the result month archiver into step 6, like to "FSArch.arhM". :* ''Archiver: maximum depth of reading for not hours archivers, days'' — to needed depth of not hours archives reading, in days. :8. Into the tab "Archiving" to set archiving for needed attributes by the archivators. :9. RESULT: The logical parameter object will perform interaction and placing of current gathered data to the parameter attributes and the current archive. Other archives' data will read in parallel from the previously set depth per one value for the period i.e. one day (for the days archive) per the minute period and up to the current and last value. {| class="wikitable" <section begin=SLOT /> | {{Anch|SLOT|<h3>Slot LTD devices ([[Special:MyLanguage/Libs/Devices#SLOT|SLOT]])</h3>}} || 0.8 || GPLv2 || * || en <section end=SLOT /> | [[User:RomanSavochenko|Roman Savochenko]] |} [[File:LibsDevsSLOT.png|right|Result and the operative setup.]] The template implements support for counters and correctors of the "SLOT" LTD production. The devices protocol is flexible and uniform for implementation of reading all available archives also as setting the configuration fields, but currently there was need only for reading the hourly archives, so the template reads the daily and hourly archives and some set of the instantaneous parameters. The template includes also code for connect the counters through modems using the AT-commands. * '''Total complexity:''' 4.8 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Sponsored by:''' Vinnica Poultry Farm {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Sockets.SLOT:10.39.77.10:4001 |- | modem || Modem<br/>In the format "{TelN}[:{Init1}[:{Init2}[...{InitN}]]]" || String || Input || Not attribute || Constant || |- | modemTm || Modem times<br/>In the format "{tm}:{ConTm}" || String || Input || Not attribute || Constant || 40:5 |- | addr || Device address [0...65535] || Integer || Input || Not attribute || Constant || 1 |- | pipeN || Pipe number [0...1] || Integer || Input || Not attribute || Constant || 0 |- | sched || Scheduling at CRON || String || Input || Read only || Link || |- | arhTmLim || Time limit of processing the archiving, seconds || Integer || Input || Not attribute || Constant || 120 |- | arhD || OpenSCADA archiver for device archive of days || String || Input || Not attribute || Constant || |- | arhH || OpenSCADA archiver for device's archive of hours || String || Input || Not attribute || Constant || |- | reset || Reset the archives reading || Boolean || Input || Full access || Variable || |- | devTime || Device time || String || Input || Read only || Variable || |- | devTp || Device type || String || Input || Read only || Variable || |- | devSWVers || Device software version || String || Input || Read only || Variable || |- | devSN || Device Serial Number || Integer || Input || Read only || Variable || |- | devModel || Device model || String || Input || Read only || Variable || |- | devPollPer || Device poll period || Integer || Input || Read only || Variable || |- | devContrDay || Device contract day || Integer || Input || Read only || Variable || |- | devContrHour || Device contract hour || Integer || Input || Read only || Variable || |- | devSesonTimeCh || Device season time change || Integer || Input || Read only || Variable || |- | objNm || Object name || String || Input || Read only || Variable || |- | apH || Absolute pressure high limit, MPa || Real || Input || Read only || Variable || |- | apMax || Maximum absolute pressure, MPa || Real || Input || Read only || Variable || |- | apMin || Minimum absolute pressure, MPa || Real || Input || Read only || Variable || |- | apConst || Absolute pressure constant, MPa || Real || Input || Read only || Variable || |- | tMax || Maximum temperature, °С || Real || Input || Read only || Variable || |- | tMin || Minimum temperature, °С || Real || Input || Read only || Variable || |- | tConst || Temperature constant, °С || Real || Input || Read only || Variable || |- | pulseVl || Pulse value, m3 || Real || Input || Read only || Variable || |- | dpMax || Maximum different pressure, kPa || Real || Input || Read only || Variable || |- | dpMin || Minimum different pressure, kPa || Real || Input || Read only || Variable || |- | fMax || Maximum flow, m3/h || Real || Input || Read only || Variable || |- | fMin || Minimum flow, m3/h || Real || Input || Read only || Variable || |- | cntrCutOffConst || Constant of the counter cut off, m3/h || Real || Input || Read only || Variable || |- | flowConst || Constant of the flow, m3/h || Real || Input || Read only || Variable || |- | pipeD || Pipe diameter at 20°С, mm || Real || Input || Read only || Variable || |- | pipeTExt || Pipe material extension, 1/°С || Real || Input || Read only || Variable || |- | pipeBeCoef || Pipe Be coefficient || Real || Input || Read only || Variable || |- | pipeCeCoef || Pipe Ce coefficient || Real || Input || Read only || Variable || |- | pipeRoughCoef || Pipe roughness coefficient || Real || Input || Read only || Variable || |- | diaphD || Diaphragm diameter at 20°С, mm || Real || Input || Read only || Variable || |- | diaphTExt || Diaphragm material extension, 1/°С || Real || Input || Read only || Variable || |- | diaphBeCoef || Diaphragm Be coefficient || Real || Input || Read only || Variable || |- | diaphCeCoef || Diaphragm Ce coefficient || Real || Input || Read only || Variable || |- | diaphEdgeBluntCoef || Diaphragm edge blunting coefficient || Real || Input || Read only || Variable || |- | correctorTime || Corrector time || String || Input || Read only || Variable || |- | dP || Pressure difference, kPa [arh] || Real || Input || Read only || Variable || |- | P || Pressure, MPa [arh] || Real || Input || Read only || Variable || |- | T || Temperature, °С [arh] || Real || Input || Read only || Variable || |- | Fstd || Volume standard cond., m3 [arh] || Real || Input || Read only || Variable || |- | Fwork || Volume work cond., m3 [arh] || Real || Input || Read only || Variable || |- | itSt || Item status [arh] || String || Input || Read only || Variable || |- | tr || Output transport || Object || Output || Not attribute || Variable || |- | reqCntr || Counter of the requests and the reconnection waiting (negative) || Real || Input || Not attribute || Variable || 0 |- | arhLastD || Daily archive last item || Integer || Input || Not attribute || Variable || 0 |- | arhLastH || Hourly archive last item || Integer || Input || Not attribute || Variable || 0 |- | this || Object of the parameter || Object || Input || Not attribute || Variable || |- | f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0 |- | f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000 |- | f_err || Function error || String || Input || Not attribute || Variable || 0 |- | f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0 |} {{CntHdr|Configuring and using}} [[File:LibsDevsSLOTCfg.png|right|Configuration.]] :1. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :2. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select this template for it, one for each the devices — enable the parameter. :3. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to the address of the automatically created transport with its parameters after ":", according to [[Special:MyLanguage/Documents/User_API#SYSTransport|the function SYS.Transport.outAt() address format]]. :* ''Modem'' — here you can set the modem configuration in the format "{TelN}[:{Init1}[:{Init2}[...{InitN}]]]" if your device accessed through a modem. :* ''Modem times'' — here you can change the default modem timeouts in the form "{tm}:{ConTm}" if your device accessed through a modem. :* ''Device address [0...65535]'' — set here the device address — Serial Number converted from hex to decimal. :* ''Pipe number [0...1]'' — change here the default pipe of the device. :* ''Scheduling at CRON'' — set here the logical execution at the [[Special:MyLanguage/Documents/User_API#CRON|CRON]]. :* ''Time limit of processing the archiving, seconds'' — change here the default safety timeout. :* ''OpenSCADA archiver for device archive of days'' — set here the archive used for storing the daily (86400 seconds) values — enables the day archive reading. :* ''OpenSCADA archiver for device's archive of hours'' — set here the archive used for storing the hourly (3600 seconds) values — enables the hour archive reading. :4. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes. {| class="wikitable" <section begin=CorBK /> | {{Anch|CorBK|<h3>Corrector BK ([[Special:MyLanguage/Libs/Devices#CorBK|CorBK]])</h3>}} || 1.0 || GPLv2 || * || en <section end=CorBK /> | [[User:RomanSavochenko|Roman Savochenko]] |} The template implements support for BK Correctors of Gas Flow in most completed volume, that is it is the most complex and advanced template for this consumer. Parameters, provided by this protocol, are static, that is all their representing attributes are provided by the template. Part of these parameters have hourly (4 parameters), day (6 parameters) and month (4 parameters) history. Some part of the parameters are settings. And the protocol also provides reading of the alarm history. Archives reading enabled only for specified archivers in the proper configuration fields. The template works in two modes: initial and tracing. Where the initial mode means first reading all archives from hourly one and switching to the tracing mode after finish the reading, that is reading current values and the fresh archiving. Status of the template is shown in the "Error (err)" attribute with information about the mode and position of the read data of the archives. Due to the communication is slow and archives can be big, status of the read archive data saved at it change, that is you can stop the template or disable PC in whole but the template will continue the archives reading from saved position and not from the begin, which reset you can by the proper boolean attribute. * '''Total complexity:''' 5.2 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Ordered by:''' BLUE STAR GROUP Ltd {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Serial.out_BK |- | addr || Device address [0...15] || Integer || Input || Not attribute || Constant || 1 |- | curRegul || Current values request in regular || Boolean || Input || Not attribute || Constant || 0 |- | arhH || OpenSCADA archiver for device's archive of hours || String || Input || Not attribute || Constant || |- | arhD || OpenSCADA archiver for device's archive of days || String || Input || Not attribute || Constant || |- | arhM || OpenSCADA archiver for device's archive of months || String || Input || Not attribute || Constant || |- | arhAlrm || OpenSCADA archiver for device's archive of Alarms || String || Input || Not attribute || Constant || |- | arhTryPer || Currents try period, seconds || Integer || Input || Not attribute || Constant || 3600 |- | arhTmLim || Time limit of processing of archiving, seconds || Integer || Input || Not attribute || Constant || 40 |- | reset || Reset the archives reading and configuration || Boolean || Input || Full access || Variable || |- | dtTm || Date and time || String || Output || Read only || Variable || |- | devSt || Device state || String || Output || Read only || Variable || |- | motoHours || Moto-hours || Integer || Input || Read only || Variable || |- | vWork || Volume: work || Real || Input || Read only || Variable || |- | vAccWork || Volume: accumulated work || Real || Input || Read only || Variable || |- | vResult || Volume: resume || Real || Input || Read only || Variable || |- | vAccResult || Volume: accumulated resume || Real || Input || Read only || Variable || |- | p || Pressure || Real || Input || Read only || Variable || |- | t || Temperature || Real || Input || Read only || Variable || |- | pFact || Pressing factor || Real || Input || Read only || Variable || |- | fWork || Flow: work || Real || Input || Read only || Variable || |- | fResult || Flow: resume || Real || Input || Read only || Variable || |- | stN2 || Set: Concentration N2 || Real || Output || Full access || Variable || |- | stCO2 || Set: Concentration CO2 || Real || Output || Full access || Variable || |- | stQ || Set: Gas density, kg/m3 || Real || Output || Full access || Variable || |- | stBP || Set: Barometric pressure, kgs/sm2 || Real || Output || Full access || Variable || |- | stSubPL || Set: Pressure substitution for lower border, kgs/sm2 || Real || Output || Full access || Variable || |- | stSubPH || Set: Pressure substitution for high border, kgs/sm3 || Real || Output || Full access || Variable || |- | stSubT || Set: Temperature substitution, °С || Real || Output || Full access || Variable || |- | stFH || Set: Flow maximum, m3/h || Real || Output || Full access || Variable || |- | stFL || Set: Flow minimum, m3/h || Real || Output || Full access || Variable || |- | stSubFL || Set: Flow substitution for lower border, m3/h || Real || Output || Full access || Variable || |- | stSubFH || Set: Flow substitution for high border, m3/h || Real || Output || Full access || Variable || |- | arhs || Archives object || Object || Output || Not attribute || Variable || |- | this || Object of the parameter || Object || Input || Not attribute || Variable || |- | f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0 |- | f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0 |- | f_err || Function error || String || Input || Not attribute || Variable || 0 |- | f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000 |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Sockets|Sockets]]" or "[[Special:MyLanguage/Modules/Serial|Serial]]" and set its Identifier like to "BK", one for each the device. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Sockets|Sockets]] or [[Special:MyLanguage/Modules/Serial|Serial]] device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties — must be set in the period 10...60 seconds. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to Identifier of the transport in step 1. :* ''Device address [0...15]'' — to logical address of the device on the bus under the transport in step 1. Tracing for the address changing is supported. :* ''Current values request in regular'' — a sign of requesting current values in regular, which can be disabled for saving the device battery. :* ''OpenSCADA archiver for device's archive of hours'' — set to the value archiver whole ID like to "FSArch.1h" for an archiver with data quality-period in 3600 seconds — create one at missing. :* ''OpenSCADA archiver for device's archive of days'' — set to the value archiver whole ID like to "FSArch.1d" for an archiver with data quality-period in 86400 seconds — create one at missing. :* ''OpenSCADA archiver for device's archive of months'' — set to the value archiver whole ID like to "FSArch.1m" for an archiver with data quality-period in 86400 seconds — create one at missing. :* ''OpenSCADA archiver for device's archive of Alarms'' — set to the message archiver whole ID like to "FSArch.alarms" for an archiver — create one at missing. :* ''Currents try period'' — to reading period of current values and last archive values. :* ''Time limit of processing of archiving'' — to time limit of execution the procedure during archives reading. :6. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes and archives. :7. In the process of the working, through the tab "Archiving" you have to select the archiving parameters in the used archivers to create the representative archives. :8. ... through the tab "Attributes" of operational data, in addition to obtaining the result, it is possible to perform operative setup and control on: :* ''Reset the archives reading and configuration'' — to reset positions of the archive reading. :* ''Set: ...'' — to set need device settings. {| class="wikitable" <section begin=AutoPILOT /> | {{Anch|AutoPILOT|<h3>AutoPILOT PRO Flow Computers ([[Special:MyLanguage/Libs/Devices#AutoPILOT|AutoPILOT]])</h3>}} || 1.0 || GPLv2 || * || en <section end=AutoPILOT /> | [[User:RomanSavochenko|Roman Savochenko]] |} The template implements support for AutoPILOT PRO Flow Computers from [http://www.thermofisher.com Thermo Fisher Scientific]. Communication protocol of the devices is based on ModBus but it implements only nonstandard functions. Parameters, provided by this protocol, are mixed for static and dynamic, that is attributes for archiving parameters are provided by the template and settings from some table can be specified in the attribute "Read tables set" for dynamic creation the representative attributes. Table 128 also has named parameters. For archiving parameters (8) there are provided hourly and daily archives. Also there are provided alarms and audits archives. The template works in two modes: initial and tracing. Where the initial mode means first reading all archives from hourly one and switching to the tracing mode after finish the reading, that is reading fresh archiving and the specified tables of the settings. Status of the template is shown in the "Error (err)" attribute with information about the mode and position of the read data of the archives. * '''Total complexity:''' 4.25 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Ordered by:''' BLUE STAR GROUP Ltd {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Sockets.pilot |- | addr || Device address [0...255] || Integer || Input || Not attribute || Constant || 1 |- | tmConTry || Connection try time, seconds || Integer || Input || Not attribute || Constant || 60 |- | arhH || OpenSCADA archiver for device's archive of hours || String || Input || Not attribute || Constant || |- | arhD || OpenSCADA archiver for device's archive of days || String || Input || Not attribute || Constant || |- | arhALRM || OpenSCADA archiver for device's archive of ALARMS || String || Input || Not attribute || Constant || |- | arhAUDIT || OpenSCADA archiver for device's archive of AUDIT || String || Input || Not attribute || Constant || |- | tmZone || Archive time zone || Integer || Input || Not attribute || Constant || 5 |- | tmPoolEv || Poll events (ALARMS and AUDITS) time, seconds || Integer || Input || Not attribute || Constant || 3600 |- | rdTblsSet || Read tables set by: "{tblN}:{pgN}:{updPer}:{reqSubStr}" || Text || Input || Full access || Variable || |- | reset || Reset the archives reading || Boolean || Input || Full access || Variable || |- | vAcc || Accumulated Volume || Real || Input || Read only || Variable || |- | dp || Average Different Pressure || Real || Input || Read only || Variable || |- | p || Average Static Pressure || Real || Input || Read only || Variable || |- | t || Average Temperature || Real || Input || Read only || Variable || |- | flowTm || Flow Time Minute || Real || Input || Read only || Variable || |- | grav || Average Gravity || Real || Input || Read only || Variable || |- | C || Average Carbon || Real || Input || Read only || Variable || |- | N || Average Nitrogen || Real || Input || Read only || Variable || |- | tr || Output transport || Object || Output || Not attribute || Variable || |- | reqCntr || Counter of the requests and the reconnection waiting (negative) || Real || Input || Not attribute || Variable || 0 |- | arhLastH || Hour archive last item || Integer || Input || Not attribute || Variable || 0 |- | arhLastD || Daily archive last item || Integer || Input || Not attribute || Variable || 0 |- | arhLastALRM || ALARM archive last item || Integer || Input || Not attribute || Variable || 0 |- | arhLastAUDIT || AUDIT archive last item || Integer || Input || Not attribute || Variable || 0 |- | this || Object of the parameter || Object || Input || Not attribute || Variable || |- | f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0 |- | f_err || Function error || String || Input || Not attribute || Variable || 0 |- | f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000 |- | f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0 |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Sockets|Sockets]]" or "[[Special:MyLanguage/Modules/Serial|Serial]]" and set its Identifier like to "pilot", one for each the device. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Sockets|Sockets]] or [[Special:MyLanguage/Modules/Serial|Serial]] device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or [[Special:MyLanguage/Modules/ModBus|a ModBus controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to the address of the created transport in Step 1. Leave the field empty for [[Special:MyLanguage/Modules/ModBus|the ModBus controller object]]. Tracing for the address changing is supported. :* ''Device address [0...255]'' — to logical address of the device on the bus under the transport in Step 1. :* ''Connection try time'' — to time of try and restore loss connections. :* ''OpenSCADA archiver for device's archive of hours'' — set to the value archiver whole ID like to "FSArch.1h" for an archiver with data quality-period in 3600 seconds — create one at missing. :* ''OpenSCADA archiver for device's archive of days'' — set to the value archiver whole ID like to "FSArch.1d" for an archiver with data quality-period in 86400 seconds — create one at missing. :* ''OpenSCADA archiver for device's archive of ALARMS'' — set to the message archiver whole ID like to "FSArch.alarms" for an archiver — create one at missing. :* ''OpenSCADA archiver for device's archive of AUDIT'' — set to the message archiver whole ID like to "FSArch.audit" for an archiver — create one at missing. :* ''Archive time zone'' — to timezone of the remote archives' time. :* ''Poll events (ALARMS and AUDITS) time'' — to time of checking new alarms and audits. :* ''Read tables set'' — to reading setting tables by lines in the format "{tblN}:{pgN}:{updPer}:{reqSubStr}". :6. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes and archives. :7. In the process of the working, through the tab "Archiving" you have to select the archiving parameters in the used archivers to create the representative archives. :8. ... through the tab "Attributes" of operational data, in addition to obtaining the result, it is possible to perform operative setup and control on: :* ''Reset the archives reading'' — to reset positions of the archive reading. {| class="wikitable" <section begin=AutoPILOT_old /> | {{Anch|AutoPILOT_old|<h3>AutoPILOT Flow Computers ([[Special:MyLanguage/Libs/Devices#AutoPILOT_old|AutoPILOT_old]])</h3>}} || 1.0 || GPLv2 || * || en <section end=AutoPILOT_old /> | [[User:RomanSavochenko|Roman Savochenko]] |} The template implements support for AutoPILOT Flow Gas Computers from [http://www.thermofisher.com Thermo Fisher Scientific] known as old devices of the firm, when new-pro ones are [[#AutoPILOT|here]]. Communication protocol of the devices is completely specific and also works on serial busses with the same CRC algorithm as in ModBus/RTU. Parameters, provided by this protocol, are all static, that is the representative attributes are provided by the template. For archiving parameters (6) there are provided hourly and daily archives. The template works in two modes: initial and tracing. Where the initial mode means first reading all archives from hourly one and switching to the tracing mode after finish the reading, that is reading fresh archiving, the instantaneous and calculated data. Status of the template is shown in the "Error (err)" attribute with information about the mode and position of the read data of the archives. * '''Total complexity:''' 1.2 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Ordered by:''' BLUE STAR GROUP Ltd {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Sockets.pilotOld |- | addr || Device address [0...255] || Integer || Input || Not attribute || Constant || 1 |- | tmConTry || Connection try time, seconds || Integer || Input || Not attribute || Constant || 60 |- | arhH || OpenSCADA archiver for device's archive of hours || String || Input || Not attribute || Constant || |- | arhD || OpenSCADA archiver for device's archive of days || String || Input || Not attribute || Constant || |- | arhTmLim || Time limit of processing the archiving, seconds || Integer || Input || Not attribute || Constant || 40 |- | reset || Reset the archives reading || Boolean || Input || Full access || Variable || |- | dtTm || Date and time || String || Input || Read only || Variable || |- | dp || [H] Average Different Pressure || Real || Input || Read only || Variable || |- | p || [H] Average Static Pressure || Real || Input || Read only || Variable || |- | t || [H] Average Temperature || Real || Input || Read only || Variable || |- | sqrRootExt || [H] Square Root Extension || Real || Input || Read only || Variable || |- | f || Instantaneous Flow Rate || Real || Input || Read only || Variable || |- | fTotal || [H] Current Day Flow Total || Real || Input || Read only || Variable || |- | eTotal || [H] Current Day Energy Total || Real || Input || Read only || Variable || |- | fAcc || Total Accumulated Flow || Real || Input || Read only || Variable || |- | b || Beta || Real || Input || Read only || Variable || |- | supComprF || Supercompressibility Factor || Real || Input || Read only || Variable || |- | Fr || Fr (Fn - 2530-92) || Real || Input || Read only || Variable || |- | E_D || E_over_D (in Fr) (Fsl - 2530-92) || Real || Input || Read only || Variable || |- | K || K (in Fr) (Fc - 2530-92) || Real || Input || Read only || Variable || |- | Fb || Fb (Red - 2530-92) || Real || Input || Read only || Variable || |- | Fg || Fg || Real || Input || Read only || Variable || |- | Fa || Fa (Y1 - 2530-92) || Real || Input || Read only || Variable || |- | Ftf || Ftf || Real || Input || Read only || Variable || |- | Fpb || Fpb || Real || Input || Read only || Variable || |- | Ftb || Ftb || Real || Input || Read only || Variable || |- | extFY || Expansion Factor Y (Spare-2530-92) || Real || Input || Read only || Variable || |- | subFY || Y Subfactor (Spare-2530-92) || Real || Input || Read only || Variable || |- | yestDayTotal || Yesterday Total || Real || Input || Read only || Variable || |- | factFlowSt || Factor: Flow Status || Integer || Input || Read only || Variable || |- | factFwv || Factor: Fwv || Real || Input || Read only || Variable || |- | factWatCnt || Factor: Water Content || Real || Input || Read only || Variable || |- | factWellStr || Factor: Well Stream || Real || Input || Read only || Variable || |- | factGasVeloc || Factor: Gas Velocity || Real || Input || Read only || Variable || |- | factLocGrav || Factor: Local Gravity || Real || Input || Read only || Variable || |- | factCalbGrav || Factor: Calib. Gravity || Real || Input || Read only || Variable || |- | tr || Output transport || Object || Output || Not attribute || Variable || |- | reqCntr || Counter of the requests and the reconnection waiting (negative) || Real || Input || Not attribute || Variable || 0 |- | arhLastH || Hour archive last item || Integer || Input || Not attribute || Variable || 0 |- | arhLastD || Daily archive last item || Integer || Input || Not attribute || Variable || 0 |- | this || Object of the parameter || Object || Input || Not attribute || Variable || |- | f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0 |- | f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0 |- | f_err || Function error || String || Input || Not attribute || Variable || 0 |- | f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000 |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Sockets|Sockets]]" or "[[Special:MyLanguage/Modules/Serial|Serial]]" and set its Identifier like to "pilotOld", one for each the device. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Sockets|Sockets]] or [[Special:MyLanguage/Modules/Serial|Serial]] device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to the address of the created transport in Step 1. Tracing for the address changing is supported. :* ''Device address [0...255]'' — to logical address of the device on the bus under the transport in Step 1. :* ''Connection try time'' — to time of try and restore loss connections. :* ''OpenSCADA archiver for device's archive of hours'' — set to the value archiver whole ID like to "FSArch.1h" for an archiver with data quality-period in 3600 seconds — create one at missing. :* ''OpenSCADA archiver for device's archive of days'' — set to the value archiver whole ID like to "FSArch.1d" for an archiver with data quality-period in 86400 seconds — create one at missing. :* ''Time limit of processing the archiving'' — to limit time of processing the archives in one cycle. :6. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes and archives. :7. In the process of the working, through the tab "Archiving" you have to select the archiving parameters in the used archivers to create the representative archives. :8. ... through the tab "Attributes" of operational data, in addition to obtaining the result, it is possible to perform operative setup and control on: :* ''Reset the archives reading'' — to reset positions of the archive reading. {| class="wikitable" <section begin=Goboy1M /> | {{Anch|Goboy1M|<h3>Goboy 1M ([[Special:MyLanguage/Libs/Devices#Goboy1M|Goboy1M]])</h3>}} || 1.0 || GPLv2 || * || en <section end=Goboy1M /> | [[User:RomanSavochenko|Roman Savochenko]] |} The template implements support for Goboy 1M Gas Counters. Communication protocol of the devices is based on ModBus but it implements only nonstandard functions. Parameters, provided by this protocol, are all static, that is the representative attributes are provided by the template. For archiving parameters (7) there are provided hourly, daily and month archives. The template works in two modes: initial and tracing. Where the initial mode means first reading all archives from hourly one and switching to the tracing mode after finish the reading, that is reading fresh archiving and current data. Status of the template is shown in the "Error (err)" attribute with information about the mode and position of the read data of the archives. * '''Total complexity:''' 1.0 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Ordered by:''' BLUE STAR GROUP Ltd {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Serial.goboy |- | addr || Device address [0...247] || Integer || Input || Not attribute || Constant || 1 |- | arhH || OpenSCADA archiver for device's archive of hours || String || Input || Not attribute || Constant || |- | arhD || OpenSCADA archiver for device's archive of days || String || Input || Not attribute || Constant || |- | arhM || OpenSCADA archiver for device's archive of months || String || Input || Not attribute || Constant || |- | arhTryPer || Currents try period, seconds || Integer || Input || Not attribute || Constant || 3600 |- | arhTmLim || Time limit of processing the archiving, seconds || Integer || Input || Not attribute || Constant || 40 |- | reset || Reset the archives reading and configuration || Boolean || Input || Full access || Variable || |- | devManuf || Device manufacturer || String || Input || Read only || Variable || |- | devNameVer || Device name and SW version || String || Input || Read only || Variable || |- | devSN || Device SN || String || Input || Read only || Variable || |- | batV || Battery voltage || Real || Input || Read only || Variable || |- | batMinV || Battery minimum voltage || Real || Input || Read only || Variable || |- | baseL || Base length, mm || Real || Input || Read only || Variable || |- | baseD || Base diameter, mm || Real || Input || Read only || Variable || |- | sndSpd || Sound speed, m/s || Real || Input || Read only || Variable || |- | flowSpd || Flow speed, m/s || Real || Input || Read only || Variable || |- | p || Gas P, kPa [arh] || Real || Input || Read only || Variable || |- | t || Gas T, °С [arh] || Real || Input || Read only || Variable || |- | coefCompr || Coefficient of the compression || Real || Input || Read only || Variable || |- | notWorkTm || Not work time [arh] || Integer || Input || Read only || Variable || |- | curTm || Current time || String || Input || Full access || Variable || |- | arhStart || Archive begin || String || Input || Read only || Variable || |- | arhLastH || Archive last hour || String || Input || Read only || Variable || |- | arhLastD || Archive last day || String || Input || Read only || Variable || |- | arhLastM || Archive last month || String || Input || Read only || Variable || |- | cntH || Count hour || Integer || Input || Full access || Variable || |- | vWork || Volume: work, m3 [arh] || Real || Input || Read only || Variable || |- | vAccWork || Volume: accumulated work, m3 [arh] || Real || Input || Read only || Variable || |- | vResult || Volume: resume, m3 [arh] || Real || Input || Read only || Variable || |- | vAccResult || Volume: accumulated resume, m3 [arh] || Real || Input || Read only || Variable || |- | fWork || Flow: work, m3/h || Real || Input || Read only || Variable || |- | fResult || Flow: resume, m3/h || Real || Input || Read only || Variable || |- | arhs || Archives object || Object || Output || Not attribute || Variable || |- | tr || Output transport || Object || Output || Not attribute || Variable || |- | this || Object of the parameter || Object || Input || Not attribute || Variable || |- | f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0 |- | f_err || Function error || String || Input || Not attribute || Variable || 0 |- | f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0 |- | f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000 |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Sockets|Sockets]]" or "[[Special:MyLanguage/Modules/Serial|Serial]]" and set its Identifier like to "goboy", one for each the device. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Sockets|Sockets]] or [[Special:MyLanguage/Modules/Serial|Serial]] device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or [[Special:MyLanguage/Modules/ModBus|a ModBus controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to the address of the created transport in Step 1. Leave the field empty for [[Special:MyLanguage/Modules/ModBus|the ModBus controller object]]. Tracing for the address changing is supported. :* ''Device address [0...247]'' — to logical address of the device on the bus under the transport in Step 1. :* ''OpenSCADA archiver for device's archive of hours'' — set to the value archiver whole ID like to "FSArch.1h" for an archiver with data quality-period in 3600 seconds — create one at missing. :* ''OpenSCADA archiver for device's archive of days'' — set to the value archiver whole ID like to "FSArch.1d" for an archiver with data quality-period in 86400 seconds — create one at missing. :* ''OpenSCADA archiver for device's archive of months'' — set to the value archiver whole ID like to "FSArch.1m" for an archiver with data quality-period in 86400 seconds — create one at missing. :* ''Currents try period'' — to reading period of current values and last archive values. :* ''Time limit of processing of archiving'' — to time limit of execution the procedure during archives reading. :6. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes and archives. :7. In the process of the working, through the tab "Archiving" you have to select the archiving parameters in the used archivers to create the representative archives. :8. ... through the tab "Attributes" of operational data, in addition to obtaining the result, it is possible to perform operative setup and control on: :* ''Reset the archives reading and configuration'' — to reset positions of the archive reading. :* ''Current time'' — to time on PLC. :* ''Count hour'' — account hour of day. {| class="wikitable" <section begin=UltraMag /> | {{Anch|UltraMag|<h3>Ultramag ([[Special:MyLanguage/Libs/Devices#UltraMag|UltraMag]])</h3>}} || 1.0 || GPLv2 || * || en <section end=UltraMag /> | [[User:RomanSavochenko|Roman Savochenko]] |} The template implements support for Ultramag Gas Meters of the firm "EPO Signal" LTD. Communication protocol of the devices is based on ModBus but with support only function 4 (Read Input Registers) and 16 (Preset Multiple Registers). The protocol supports reading archives also, that is why it implemented as a different template. Parameters, provided by this protocol, are static, that is all their representing attributes are provided by the template. Part of these parameters have hourly (4 parameters), day (6 parameters) and month (4 parameters) history. Archives reading enabled only for specified archivers in the proper configuration fields. The template works in two modes: initial and tracing. Where the initial mode means first reading all archives from hourly one and switching to the tracing mode after finish the reading, that is reading current values and the fresh archiving. Status of the template is shown in the "Error (err)" attribute with information about the mode and position of the read data of the archives. Due to the communication is slow and archives can be big, status of the read archive data saved at it change, that is you can stop the template or disable PC in whole but the template will continue the archives reading from saved position and not from the begin, which reset you can by the proper boolean attribute. * '''Total complexity:''' 1.0 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Ordered by:''' BLUE STAR GROUP Ltd {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Serial.umag |- | addr || Device address [0...247] || Integer || Input || Not attribute || Constant || 1 |- | arhH || OpenSCADA archiver for device's archive of hours || String || Input || Not attribute || Constant || |- | arhD || OpenSCADA archiver for device's archive of days || String || Input || Not attribute || Constant || |- | arhM || OpenSCADA archiver for device's archive of months || String || Input || Not attribute || Constant || |- | arhTryPer || Currents try period, seconds || Integer || Input || Not attribute || Constant || 3600 |- | arhTmLim || Time limit of processing of archiving, seconds || Integer || Input || Not attribute || Constant || 40 |- | reset || Reset the archives reading and configuration || Boolean || Input || Full access || Variable || |- | devManuf || Device manufacturer || String || Input || Read only || Variable || |- | devSN || Device SN || String || Input || Read only || Variable || |- | sensP_SN || Sensor P SN || String || Input || Read only || Variable || |- | sensT_SN || Sensor T SN || String || Input || Read only || Variable || |- | p || Gas P, kPa [arh] || Real || Input || Read only || Variable || |- | t || Gas T, °С [arh] || Real || Input || Read only || Variable || |- | coefCor || Coefficient of the correction || Real || Input || Read only || Variable || |- | curTm || Current time || String || Input || Read only || Variable || |- | vWork || Volume: work, m3 [arh] || Real || Input || Read only || Variable || |- | vAccWork || Volume: accumulated work [arh] || Real || Input || Read only || Variable || |- | vResult || Volume: standard, m3 [arh] || Real || Input || Read only || Variable || |- | vAccResult || Volume: accumulated resume [arh] || Real || Input || Read only || Variable || |- | fWork || Flow: work, m3/h || Real || Input || Read only || Variable || |- | fResult || Flow: standard, m3/h || Real || Input || Read only || Variable || |- | arhs || Archives object || Object || Output || Not attribute || Variable || |- | tr || Output transport || Object || Output || Not attribute || Variable || |- | this || Object of the parameter || Object || Input || Not attribute || Variable || |- | f_err || Function error || String || Input || Not attribute || Variable || 0 |- | f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000 |- | f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0 |- | f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0 |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Sockets|Sockets]]" or "[[Special:MyLanguage/Modules/Serial|Serial]]" and set its Identifier like to "umag", one for each the device. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Sockets|Sockets]] or [[Special:MyLanguage/Modules/Serial|Serial]] device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or [[Special:MyLanguage/Modules/ModBus|a ModBus controller object]] or use any present one with need scheduling properties — must be set in the period 10...60 seconds. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to the address of the created transport in Step 1. Leave the field empty for [[Special:MyLanguage/Modules/ModBus|the ModBus controller object]]. Tracing for the address changing is supported. :* ''Device address [0...247]'' — to logical address of the device on the bus under the transport in Step 1. :* ''OpenSCADA archiver for device's archive of hours'' — set to the value archiver whole ID like to "FSArch.1h" for an archiver with data quality-period in 3600 seconds — create one at missing. :* ''OpenSCADA archiver for device's archive of days'' — set to the value archiver whole ID like to "FSArch.1d" for an archiver with data quality-period in 86400 seconds — create one at missing. :* ''OpenSCADA archiver for device's archive of months'' — set to the value archiver whole ID like to "FSArch.1m" for an archiver with data quality-period in 86400 seconds — create one at missing. :* ''Currents try period'' — to reading period of current values and last archive values. :* ''Time limit of processing of archiving'' — to time limit of execution the procedure during archives reading. :6. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes and archives. :7. In the process of the working, through the tab "Archiving" you have to select the archiving parameters in the used archivers to create the representative archives. :8. ... through the tab "Attributes" of operational data, in addition to obtaining the result, it is possible to perform operative setup and control on: :* ''Reset the archives reading and configuration'' — to reset positions of the archive reading. {| class="wikitable" <section begin=TDS /> | {{Anch|TDS|<h3>Tancy Data ([[Special:MyLanguage/Libs/Devices#TDS|TDS]])</h3>}} || 1.0 || GPLv2 || * || en <section end=TDS /> | [[User:RomanSavochenko|Roman Savochenko]] |} The template implements support for Tianxin V1 protocol of Gas Correctors TC220 from [http://www.gaselectro.ru/ GasElectro]. Communication protocol of the devices is completely specific. Parameters, provided by this protocol, are all static, that is the representative attributes are provided by the template. For archiving parameters (4) there is provided only the hourly archive. * '''Total complexity:''' 0.95 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Ordered by:''' BLUE STAR GROUP Ltd {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Serial.out_TDS |- | addr || Device address [0...255] || Integer || Input || Not attribute || Constant || 0 |- | tryPer || Currents try period, seconds || Integer || Input || Not attribute || Constant || 600 |- | arhH || OpenSCADA archiver for device's archive of hours || String || Input || Not attribute || Constant || |- | dtTm || Date and time || String || Output || Read only || Variable || |- | p || Pressure || Real || Input || Read only || Variable || |- | t || Temperature || Real || Input || Read only || Variable || |- | fWork || Flow: work || Real || Input || Read only || Variable || |- | fResult || Flow: resume || Real || Input || Read only || Variable || |- | tr || Output transport || Object || Output || Not attribute || Variable || |- | this || Object of the parameter || Object || Input || Not attribute || Variable || |- | f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0 |- | f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000 |- | f_err || Function error || String || Input || Not attribute || Variable || 0 |- | f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0 |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Sockets|Sockets]]" or "[[Special:MyLanguage/Modules/Serial|Serial]]" and set its Identifier like to "TDS", one for each the device. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Sockets|Sockets]] or [[Special:MyLanguage/Modules/Serial|Serial]] device — the symbol/next timeout must be big enough for archives reading since the response packages can come with the interval about 5 seconds. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to the address of the created transport in Step 1. Tracing for the address changing is supported. :* ''Device address [0...255]'' — to logical address of the device on the bus under the transport in Step 1. :* ''Currents try period'' — to reading period of current values and last archive values. :* ''OpenSCADA archiver for device's archive of hours'' — set to the value archiver whole ID like to "FSArch.1h" for an archiver with data quality-period in 3600 seconds — create one at missing. :6. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes and archives. :7. In the process of the working, through the tab "Archiving" you have to select the archiving parameters in the used archivers to create the representative archives. {| class="wikitable" <section begin=FlowGAS /> | {{Anch|FlowGAS|<h3>Flow GAS ([[Special:MyLanguage/Libs/Devices#FlowGAS|FlowGAS]])</h3>}} || 1.0 || GPLv2 || * || en <section end=FlowGAS /> | [[User:RomanSavochenko|Roman Savochenko]] |} The template implements support for FlowGas Gas Correctors of the firm "EPO Signal" LTD. Communication protocol of the devices is based on standard ModBus but with re-implementing function 16 for reading archives. So, the template became the first one used the template "ModBus base ([[#mbBase|mbBase]])" in own ground. Parameters, provided by this protocol, are mixed for static and dynamic, that is attributes for archiving parameters are provided by the template and extra current ones can be specified in the attribute "Items set" for dynamic creation the representative attributes. For archiving parameters (4) there is provided only the hourly archive. The template works in two modes: initial and tracing. Where the initial mode means first reading all archives from hourly one and switching to the tracing mode after finish the reading, that is reading current values and the fresh archiving. Status of the template is shown in the "Error (err)" attribute with information about the mode and position of the read data of the archives. Due to the communication is slow and archives can be big, status of the read archive data saved at it change, that is you can stop the template or disable PC in whole but the template will continue the archives reading from saved position and not from the begin, which reset you can by the proper boolean attribute. * '''Total complexity:''' 1.3 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Ordered by:''' BLUE STAR GROUP Ltd {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Sockets.fgas |- | addr || Device address [0...247] || Integer || Input || Not attribute || Constant || 1 |- | mbType || ModBus type <nowiki>[RTU|ASCII|TCP]</nowiki> || String || Input || Not attribute || Constant || RTU |- | maxBlkSz || ModBus maximum block size [10...200] || Integer || Input || Not attribute || Constant || 200 |- | arhH || OpenSCADA archiver for device's archive of hours || String || Input || Not attribute || Constant || |- | arhTmLim || Time limit of processing the archiving, seconds || Integer || Input || Not attribute || Constant || 40 |- | items || Items set "<nowiki>[u|i|u2|i2|u4|i4|r|s]:{addr}:{w|r|~}:{id}:{nm}</nowiki>" || Text || Input || Full access || Variable || |- | reset || Reset the archives reading and configuration || Boolean || Input || Full access || Variable || |- | tr || Output transport || Object || Input || Not attribute || Variable || |- | p || Pressure (history) || Real || Input || Read only || Variable || |- | t || Temperature (history) || Real || Input || Read only || Variable || |- | vWork || Volume: work (history) || Real || Input || Read only || Variable || |- | vResult || Volume: resume (history) || Real || Input || Read only || Variable || |- | arhs || Archives object || Object || Output || Not attribute || Variable || |- | this || Object || Object || Input || Not attribute || Variable || |- | f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0 |- | f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000 |- | f_err || Function error || String || Input || Not attribute || Variable || 0 |- | f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0 |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Serial|Serial]]" or "[[Special:MyLanguage/Modules/Sockets|Sockets]]", and set its Identifier like to "fgas", one for each the devices' used serial bus. :2. Set proper address and timeouts of the device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or [[Special:MyLanguage/Modules/ModBus|a ModBus controller object]] or use any present one with need scheduling properties. :4. Create a logical parameter object and select the template for that, one for the devices on one bus — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to the address of the created transport in Step 1. Leave the field empty for [[Special:MyLanguage/Modules/ModBus|the ModBus controller object]]. Tracing for the address changing is supported. :* ''Device address [0...255]'' — to logical address of the device on the bus under the transport in Step 1. :* ''ModBus type'' (for [[Special:MyLanguage/Modules/LogicLev|the logical controller object]]) — to the ModBus protocol type/variant from the list RTU, ASCII, TCP — set to RTU. :* ''ModBus maximum block size'' (for [[Special:MyLanguage/Modules/LogicLev|the logical controller object]]) — to the ModBus protocol package data maximum size in the range [10...200]. :* ''OpenSCADA archiver for device's archive of hours'' — set here the archive used for storing the hourly (3600 seconds) values — enables the hour archive reading. :* ''Time limit of processing the archiving, seconds'' — change here the default safety timeout. :6. RESULT: The logical parameter object will: perform interaction and placing of gathered data to the parameter attributes, dynamically create needed attributes accordingly to the attribute "Items set" value and perform interaction and placing of gathered data to the parameter attributes. Also you are able to change for writable attributes. :7. In the process of the working, through the tab "Archiving" you have to select the archiving parameters in the used archivers to create the representative archives. :8. ... through the tab "Attributes" of operational data, in addition to obtaining the result, it is possible to perform operative setup and control on: :* ''Reset the archives reading and configuration'' — to reset positions of the archive reading. {| class="wikitable" <section begin=enronDaniel /> | {{Anch|enronDaniel|<h3>Enron, Daniel ([[Special:MyLanguage/Libs/Devices#enronDaniel|enronDaniel]])</h3>}} || 1.0 || GPLv2 || * || en <section end=enronDaniel /> | [[User:RomanSavochenko|Roman Savochenko]] |} The template implements support for Enron, Daniel Gas Counters. Communication protocol of the devices is based on ModBus but with registers size 4 bytes instead standard 2 bytes, that is they cannot be polled by the standard OpenSCADA module [[Special:MyLanguage/Modules/ModBus|DAQ.ModBus]]. So, the template implements that protocol variant on the [[Special:MyLanguage/Documents/DAQ#LogicLev|Logical Level]] and with main features of the DAQ.ModBus module, that is allows for free registers specifying. On ground the module later was created the "[[#mbBase|ModBus base (mbBase)]]" template as a base for further creation related to ModBus templates with standard functions and additional implementing only specific functions. For numbers need registers go to documentation of vendor the devices! The template provides only reading current values and has not got any archives due to missing such feature in the communication protocol. * '''Total complexity:''' 0.6 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Ordered by:''' BLUE STAR GROUP Ltd {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Sockets.enron |- | addr || Device address [0...247] || Integer || Input || Not attribute || Constant || 1 |- | mbType || ModBus type [<nowiki>RTU|ASCII|TCP</nowiki>] || String || Input || Not attribute || Constant || RTU |- | maxBlkSz || ModBus maximum block size [10...200] || Integer || Input || Not attribute || Constant || 12 |- | fragMerge || ModBus blocks merging || Boolean || Input || Not attribute || Constant || 0 |- | items || Items set "<nowiki>[u|i|r|s]:{addr}:{w|r}:{id}:{nm}</nowiki>" || Text || Input || Full access || Variable || |- | tr || Output transport || Object || Input || Not attribute || Variable || |- | this || Object || Object || Input || Not attribute || Variable || |- | f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0 |- | f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0 |- | f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000 |- | f_err || Function error || String || Input || Not attribute || Variable || 0 |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Serial|Serial]]" or "[[Special:MyLanguage/Modules/Sockets|Sockets]]", and set its Identifier like to "enron", one for each the devices' used serial bus. :2. Set proper address and timeouts of the device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or [[Special:MyLanguage/Modules/ModBus|a ModBus controller object]] or use any present one with need scheduling properties. :4. Create a logical parameter object and select the template for that, one for the devices on one bus — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to the address of the created transport in Step 1. Leave the field empty for [[Special:MyLanguage/Modules/ModBus|the ModBus controller object]]. Tracing for the address changing is supported. :* ''Device address'' (for [[Special:MyLanguage/Modules/LogicLev|the logical controller object]]) — to logical address of the device on the bus under the transport in Step 1. :* ''ModBus type'' (for [[Special:MyLanguage/Modules/LogicLev|the logical controller object]]) — to the ModBus protocol type/variant from the list RTU, ASCII, TCP — set to RTU. :* ''ModBus maximum block size'' (for [[Special:MyLanguage/Modules/LogicLev|the logical controller object]]) — to the ModBus protocol package data maximum size in the range [10...200]. :* ''ModBus blocks merging'' (for [[Special:MyLanguage/Modules/LogicLev|the logical controller object]]) — for allowance of merging the ModBus protocol fragmented blocks of the registers. :6. RESULT: The logical parameter object will: dynamically create needed attributes accordingly to the attribute "Items set" value and perform interaction and placing of gathered data to the parameter attributes. Also you are able to change for writable attributes. {| class="wikitable" <section begin=m200 /> | {{Anch|m200|<h3>Mercury 200 ([[Special:MyLanguage/Libs/Devices#m200|m200]])</h3>}} || 1.0 || GPLv2 || * => [[Special:MyLanguage/Modules/UserProtocol|UserProtocol]] || en, uk, ru <section end=m200 /> | [mailto:godzilla919@gmail.com Arsen Zakojan] |} One phase counter of electricity Mercury 200, 203.2Т, 206 from the firm "Incotex" (http://www.incotexcom.ru) {{CntHdr|Output user protocol's XML request structure}} '''<req first="255" second="16777215" data="{req}">{resp}</req>''' :''req'' — request data; :''resp'' — respond data; :''first'', ''second'' — first and three of second's bytes of the common address (0...4294967295). {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | s || Energy from reset, tariffs sum || String || Input || Read only || Variable || |- | t1 || Energy from reset, tariff 1 || Real || Input || Read only || Variable || |- | t2 || Energy from reset, tariff 2 || Real || Input || Read only || Variable || |- | t3 || Energy from reset, tariff 3 || Real || Input || Read only || Variable || |- | t4 || Energy from reset, tariff 4 || Real || Input || Read only || Variable || |- | U || Voltage U(V) || Real || Input || Read only || Variable || |- | I || Current I(A) || Real || Input || Read only || Variable || |- | P || Power P(W) || Real || Input || Read only || Variable || |- | transport || Transport || String || Input || Not attribute || Constant || merc200 |- | netaddr || Network address || Real || Input || Not attribute || Constant || 1 |- | naladchik || Coded address by the program Fixer+ || Boolean || Input || Not attribute || Constant || 0 |- | tarif || Read energy from reset || Boolean || Input || Not attribute || Constant || 1 |- | UIP || Read current values || Boolean || Input || Not attribute || Constant || 1 |- | first || First byte of the address || Integer || Input || Not attribute || Variable || |- | second || Last 3 bytes of the address || Integer || Input || Not attribute || Variable || |- | f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0 |- | f_err || Function error || String || Input || Not attribute || Variable || 0 |- | f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0 |- | f_frq || Function calculate frequency (Hz) || Real || Input || Not attribute || Variable || 1000 |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Serial|Serial]]" and set its Identifier like to "merc200", one for each the devices' used serial bus. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Serial|Serial]] device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to Identifier of the transport into step 1. :* ''Network address'' — to logical address of the device on the bus under the transport in step 1. :* ''Coded address by the program Fixer+'' — set the flag for counters coded by the program. Most likely the address will equal to apartment number. :* ''Read energy from reset'' — set the flag if you need the data. :* ''Read current values'' — set the flag to read current values. :6. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes. {| class="wikitable" <section begin=m230 /> | {{Anch|m230|<h3>Mercury 230 ([[Special:MyLanguage/Libs/Devices#m230|m230]])</h3>}} || 1.0 || GPLv2 || * => [[Special:MyLanguage/Modules/UserProtocol|UserProtocol]] || en, uk, ru <section end=m230 /> | [mailto:godzilla919@gmail.com Arsen Zakojan] |} Three phase counter of electricity Mercury 230, 231, 232, 233, 234, 236 from the firm "Incotex" (http://www.incotexcom.ru) {{CntHdr|Output user protocol's XML request structure}} '''<req netaddr="255" data="{req}">{resp}</req>''' :''req'' — request data; :''resp'' — respond data; :''netaddr'' — network address; for counters Mercury 230, 231 and 233 the tree last digits are serial number or they are last two digits for the number more to 240; if the last numbers are zero, the network address is "1"; universal, broadcast address is "0".<br/> {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | answer || Answer to the password request || String|| Input || Read only || Variable || |- | TS || Read energy of tariffs sum || Boolean || Input || Not attribute || Constant || 0 |- | T1 || Read energy of tariff 1 || Boolean || Input || Not attribute || Constant || 0 |- | T2 || Read energy of tariff 2 || Boolean || Input || Not attribute || Constant || 0 |- | T3 || Read energy of tariff 3 || Boolean || Input || Not attribute || Constant || 0 |- | T4 || Read energy of tariff 4 || Boolean || Input || Not attribute || Constant || 0 |- | P || Read power P || Boolean || Input || Not attribute || Constant || 0 |- | Q || Read power Q || Boolean || Input || Not attribute || Constant || 0 |- | S || Read power S || Boolean || Input || Not attribute || Constant || 0 |- | U || Read voltage U || Boolean || Input || Not attribute || Constant || 0 |- | I || Read current I || Boolean || Input || Not attribute || Constant || 0 |- | K || Read power coefficient || Boolean || Input || Not attribute || Constant || 0 |- | F || Read frequency F || Boolean || Input || Not attribute || Constant || 0 |- | N || Read serial number || Boolean || Input || Not attribute || Constant || 0 |- | TSAp || Energy from resetting, tariffs sum A+ || Real || Input || Read only || Variable || |- | TSAm || Energy from resetting, tariffs sum A- || Real || Input || Read only || Variable || |- | TSRp || Energy from resetting, tariffs sum R+ || Real || Input || Read only || Variable || |- | TSRm || Energy from resetting, tariffs sum R- || Real || Input || Read only || Variable || |- | T1Ap || Energy from resetting, tariff 1 A+ || Real || Input || Read only || Variable || |- | T1Am || Energy from resetting, tariff 1 A- || Real || Input || Read only || Variable || |- | T1Rp || Energy from resetting, tariff 1 R+ || Real || Input || Read only || Variable || |- | T1Rm || Energy from resetting, tariff 1 R- || Real || Input || Read only || Variable || |- | T2Ap || Energy from resetting, tariff 2 A+ || Real || Input || Read only || Variable || |- | T2Am || Energy from resetting, tariff 2 A- || Real || Input || Read only || Variable || |- | T2Rp || Energy from resetting, tariff 2 R+ || Real || Input || Read only || Variable || |- | T2Rm || Energy from resetting, tariff 2 R- || Real || Input || Read only || Variable || |- | T3Ap || Energy from resetting, tariff 3 A+ || Real || Input || Read only || Variable || |- | T3Am || Energy from resetting, tariff 3 A- || Real || Input || Read only || Variable || |- | T3Rp || Energy from resetting, tariff 3 R+ || Real || Input || Read only || Variable || |- | T3Rm || Energy from resetting, tariff 3 R- || Real || Input || Read only || Variable || |- | T4Ap || Energy from resetting, tariff 4 A+ || Real || Input || Read only || Variable || |- | T4Am || Energy from resetting, tariff 4 A- || Real || Input || Read only || Variable || |- | T4Rp || Energy from resetting, tariff 4 R+ || Real || Input || Read only || Variable || |- | T4Rm || Energy from resetting, tariff 4 R- || Real || Input || Read only || Variable || |- | PS || Power P(W) by the phases sum || Real || Input || Read only || Variable || |- | P1 || Power P(W) by the phase 1 || Real || Input || Read only || Variable || |- | P2 || Power P(W) by the phase 2 || Real || Input || Read only || Variable || |- | P3 || Power P(W) by the phase 3 || Real || Input || Read only || Variable || |- | QS || Power Q(var) by the phases sum || Real || Input || Read only || Variable || |- | Q1 || Power Q(var) by the phase 1 || Real || Input || Read only || Variable || |- | Q2 || Power Q(var) by the phase 2 || Real || Input || Read only || Variable || |- | Q3 || Power Q(var) by the phase 3 || Real || Input || Read only || Variable || |- | SS || Power S(VA) by the phases sum || Real || Input || Read only || Variable || |- | S1 || Power S(VA) by the phase 1 || Real || Input || Read only || Variable || |- | S2 || Power S(VA) by the phase 2 || Real || Input || Read only || Variable || |- | S3 || Power S(VA) by the phase 3 || Real || Input || Read only || Variable || |- | U1 || Voltage U(V) by the phase 1 || Real || Input || Read only || Variable || |- | U2 || Voltage U(V) by the phase 2 || Real || Input || Read only || Variable || |- | U3 || Voltage U(V) by the phase 3 || Real || Input || Read only || Variable || |- | I1 || Current I(A) by the phase 1 || Real || Input || Read only || Variable || |- | I2 || Current I(A) by the phase 2 || Real || Input || Read only || Variable || |- | I3 || Current I(A) by the phase 3 || Real || Input || Read only || Variable || |- | KS || Power coefficient by the phases sum || Real || Input || Read only || Variable || |- | K1 || Power coefficient by the phase 1 || Real || Input || Read only || Variable || |- | K2 || Power coefficient by the phase 2 || Real || Input || Read only || Variable || |- | K3 || Power coefficient by the phase 3 || Real || Input || Read only || Variable || |- | F1 || Frequency F(Hz) || Real || Input || Read only || Variable || |- | N1 || Serial number || String || Input || Read only || Variable || |- | netaddr || Network address (0...240) || Integer || Input || Not attribute || Constant || 1 |- | password || Password || String || Input || Not attribute || Constant || 111111 |- | transport || Transport || String || Input || Not attribute || Constant || merc230 |- | f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0 |- | f_err || Function error || String || Input || Not attribute || Variable || 0 |- | f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0 |- | f_frq || Function calculate frequency (Hz) || Real || Input || Not attribute || Variable || 1000 |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Serial|Serial]]" and set its Identifier like to "merc230", one for each the devices' used serial bus. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Serial|Serial]] device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to Identifier of the transport into step 1. :* ''Network address (0...240)'' — to logical address of the device on the bus under the transport in step 1. :* ''Password'' — first level password, by default 111111. :* Set flags for all parameters you need to read. :6. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes. {| class="wikitable" <section begin=Nik2303I /> | {{Anch|Nik2303I|<h3>Nik2303I ([[Special:MyLanguage/Libs/Devices#Nik2303I|Nik2303I]])</h3>}} || 1.0 || GPLv2 || * => [[Special:MyLanguage/Modules/UserProtocol|UserProtocol]] || en, uk, ru <section end=Nik2303I /> | [mailto:rylio74@gmail.com Ruslan Yarmoliuk] |} Three phase counter of electricity NIK 2303 from firm NIK LLC (http://www.nik.net.ua). {{CntHdr|Output user protocol's XML request structure}} '''<req SN="1234567" cntr="0x10">{resp}</req>''' :''SN'' — serial number of the counter; :''cntr'' — control word; :''resp'' — respond data. {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Sockets.out_ |- | serial || Factory number of the counter || String || Input || Not attribute || Constant || |- | passw || Password || String || Input || Not attribute || Constant || 1111111111111111 |- | kT || Coefficient of transformation || Integer || Input || Not attribute || Constant || 1 |- | T0 || Current values || Boolean || Input || Not attribute || Constant || 0 |- | T1 || Current values tariff T1 || Boolean || Input || Not attribute || Constant || 0 |- | T2 || Current values tariff T2 || Boolean || Input || Not attribute || Constant || 0 |- | T3 || Current values tariff T3 || Boolean || Input || Not attribute || Constant || 0 |- | U || Instantaneous value "Voltage" || Boolean || Input || Not attribute || Constant || 0 |- | I || Instantaneous value "Current" || Boolean || Input || Not attribute || Constant || 0 |- | P || Instantaneous value "Power" || Boolean || Input || Not attribute || Constant || 0 |- | kP || Instantaneous value "Power coefficient" || Boolean || Input || Not attribute || Constant || 0 |- | Q || Instantaneous value "Power reactive" || Boolean || Input || Not attribute || Constant || 0 |- | K || Instantaneous value "Vectors angle" || Boolean || Input || Not attribute || Constant || 0 |- | Ae || А+(kW*h) || Real || Output || Read only || Variable || |- | Ae_ || А-(kW*h) || Real || Output || Read only || Variable || |- | Re || R+(1+2quadrant)(kVar*h) || Real || Output || Read only || Variable || |- | Re_ || R-(3+4quadrant)(kVar*h) || Real || Output || Read only || Variable || |- | Ae1 || А1+(kW*h) || Real || Output || Read only || Variable || |- | Ae_1 || А1-(kW*h) || Real || Output || Read only || Variable || |- | Re1 || R1+(1+2quadrant)(kVar*h) || Real || Output || Read only || Variable || |- | Re_1 || R1-(3+4quadrant)(kVar*h) || Real || Output || Read only || Variable || |- | Ae2 || А2+(kW*h) || Real || Output || Read only || Variable || |- | Ae_2 || А2-(kW*h) || Real || Output || Read only || Variable || |- | Re2 || R2+(1+2quadrant)(kVar*h) || Real || Output || Read only || Variable || |- | Re_2 || R2-(3+4quadrant)(kVar*h) || Real || Output || Read only || Variable || |- | Ae3 || А3+(kW*h) || Real || Output || Read only || Variable || |- | Ae_3 || А3-(kW*h) || Real || Output || Read only || Variable || |- | Re3 || R3+(1+2quadrant)(kVar*h) || Real || Output || Read only || Variable || |- | Re_3 || R3-(3+4quadrant)(kVar*h) || Real || Output || Read only || Variable || |- | U1 || Phase voltage 1(V) || Real || Output || Read only || Variable || |- | U2 || Phase voltage 2(V) || Real || Output || Read only || Variable || |- | U3 || Phase voltage 3(V) || Real || Output || Read only || Variable || |- | I1 || Phase current 1(A) || Real || Output || Read only || Variable || |- | I2 || Phase current 2(A) || Real || Output || Read only || Variable || |- | I3 || Phase current 3(A) || Real || Output || Read only || Variable || |- | kP1 || Power coeff. cos φ phase 1 || Real || Output || Read only || Variable || |- | kP2 || Power coeff. cos φ phase 2 || Real || Output || Read only || Variable || |- | kP3 || Power coeff. cos φ phase 3 || Real || Output || Read only || Variable || |- | Psum || Summary active power (kW) || Real || Output || Read only || Variable || |- | P1 || Active power phase 1 (kW) || Real || Output || Read only || Variable || |- | P2 || Active power phase 2 (kW) || Real || Output || Read only || Variable || |- | P3 || Active power phase 3 (kW) || Real || Output || Read only || Variable || |- | Qsum || Summary reactive power (kVar) || Real || Output || Read only || Variable || |- | Q1 || Reactive power phase 1 (kVar) || Real || Output || Read only || Variable || |- | Q2 || Reactive power phase 2 (kVar) || Real || Output || Read only || Variable || |- | Q3 || Reactive power phase 3 (kVar) || Real || Output || Read only || Variable || |- | V12 || Vector angle U1_U2 (degr.) || Integer || Output || Read only || Variable || |- | V13 || Vector angle U1_U3 (degr.) || Integer || Output || Read only || Variable || |- | this || Object || Object || Input || Not attribute || Variable || |- | NAME || Name || String || Input || Read only || Variable || |- | SHIFR || Shifr || String || Input || Read only || Variable || |- | DESCR || Description || String || Input || Read only || Variable || |- | f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0 |- | f_err || Function error || String || Input || Not attribute || Variable || 0 |- | f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0 |- | f_frq || Function calculate frequency (Hz) || Real || Input || Not attribute || Variable || 1000 |} {{CntHdr|Configuring and using}} :1. Create an output transport of the type "[[Special:MyLanguage/Modules/Sockets|Sockets]]" or "[[Special:MyLanguage/Modules/Serial|Serial]]" and set its Identifier like to "nik2303", one for each the device. :2. Set proper address and timeouts of the [[Special:MyLanguage/Modules/Sockets|Sockets]] or [[Special:MyLanguage/Modules/Serial|Serial]] device. :3. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :4. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select the template for that, one for each the devices — enable the parameter. :5. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to Identifier of the transport into step 1. :* ''Factory number of the counter'' — to proper factory number of the counter. :* ''Password'' — first level password, by default 1111111111111111. :* ''Coefficient of transformation'' — at accounting through the current transformers set the coefficient, by default it us — 1. :* Set flags for all parameters you need to read. :6. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes. {| class="wikitable" <section begin=FF_LE /> | {{Anch|FF_LE|<h3>FF LE-03MB CT ([[Special:MyLanguage/Libs/Devices#FF_LE|FF_LE]])</h3>}} || 1.0 || GPLv2 || * || en <section end=FF_LE /> | [[User:RomanSavochenko|Roman Savochenko]] |} The template implements support for counters of electricity bidirectional on 1-phase/3-phase with analyse the network parameters [https://www.fif.com.pl/en/usage-electric-power-meters/639-electric-energy-meter-le-03mb-ct.html LE-03MB CT] of the firm "[http://www.fif.com.pl F&F]". Protocol of the counters is [https://en.wikipedia.org/wiki/Meter-Bus M-bus] and it doesn't provide of reading the data history, so the template has to obtain instant values only with need periodicity related to the network quality. Data of the counters are completely static, that is all their representing attributes are provided by the template. [[File:at.png]] Coefficients for P (in 100) and P_{N} (in 1000) was set at demands of the end user, so that is no error. * '''Total complexity:''' 0.9 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Sponsored by:''' Vinnica Poultry Farm {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Sockets.LE:10.39.170.2:9761 |- | addr || Device address [0...255] || Integer || Input || Not attribute || Constant || 1 |- | tr || Output transport || Object || Output || Not attribute || Variable || |- | EnActFull || Energy Active Full, kWh || Real || Output || Read only || Variable || |- | EnActImp || Energy Active Import, kWh || Real || Output || Read only || Variable || |- | EnActExp || Energy Active Export, kWh || Real || Output || Read only || Variable || |- | EnActFullDrop || Energy Active Full drops, kWh || Real || Output || Read only || Variable || |- | EnActImpDrop || Energy Active Import drops, kWh || Real || Output || Read only || Variable || |- | EnActExpDrop || Energy Active Export drops, kWh || Real || Output || Read only || Variable || |- | EnReactFull || Energy Reactive Full, kVAh || Real || Output || Read only || Variable || |- | EnReactImp || Energy Reactive Import, kWh || Real || Output || Read only || Variable || |- | EnReactExp || Energy Reactive Export, kWh || Real || Output || Read only || Variable || |- | EnReactFullDrop || Energy Reactive Full drops, kWh || Real || Output || Read only || Variable || |- | EnReactImpDrop || Energy Reactive Import drops, kWh || Real || Output || Read only || Variable || |- | EnReactExpDrop || Energy Reactive Export drops, kWh || Real || Output || Read only || Variable || |- | V_L1 || Voltage L1, V || Real || Output || Read only || Variable || |- | V_L2 || Voltage L2, V || Real || Output || Read only || Variable || |- | V_L3 || Voltage L3, V || Real || Output || Read only || Variable || |- | V_L12 || Voltage L1-L2, V || Real || Output || Read only || Variable || |- | V_L23 || Voltage L2-L3, V || Real || Output || Read only || Variable || |- | V_L31 || Voltage L3-L1, V || Real || Output || Read only || Variable || |- | I_1 || Current L1, A || Real || Output || Read only || Variable || |- | I_2 || Current L2, A || Real || Output || Read only || Variable || |- | I_3 || Current L3, A || Real || Output || Read only || Variable || |- | I_N || Current N, A || Real || Output || Read only || Variable || |- | P || P Full, kW || Real || Output || Read only || Variable || |- | P_1 || P L1, kW || Real || Output || Read only || Variable || |- | P_2 || P L2, kW || Real || Output || Read only || Variable || |- | P_3 || P L3, kW || Real || Output || Read only || Variable || |- | Pr || Pr Full, kVA || Real || Output || Read only || Variable || |- | Pr_1 || Pr 1, kVA || Real || Output || Read only || Variable || |- | Pr_2 || Pr 2, kVA || Real || Output || Read only || Variable || |- | Pr_3 || Pr 3, kVA || Real || Output || Read only || Variable || |- | CoefP || CoefP Full || Real || Output || Read only || Variable || |- | CoefP_1 || CoefP 1 || Real || Output || Read only || Variable || |- | CoefP_2 || CoefP 2 || Real || Output || Read only || Variable || |- | CoefP_3 || CoefP 3 || Real || Output || Read only || Variable || |- | this || Object || Object || Input || Not attribute || Variable || |- | f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0 |- | f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000 |- | f_err || Function error || String || Input || Not attribute || Variable || 0 |- | f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0 |} {{CntHdr|Configuring and using}} :1. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :2. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select this template for it, one for each the devices — enable the parameter. :3. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to the address of the automatically created transport with its parameters after ":", according to [[Special:MyLanguage/Documents/User_API#SYSTransport|the function SYS.Transport.outAt() address format]]. :* ''Device address [0...255]'' — set here the device address. :4. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes. {| class="wikitable" <section begin=ergomera625 /> | {{Anch|ergomera625|<h3>Ergomera 625 ([[Special:MyLanguage/Libs/Devices#ergomera625|ergomera625]])</h3>}} || 0.1 || GPLv2 || * || en <section end=ergomera625 /> | [[User:RomanSavochenko|Roman Savochenko]] |} The template implements support for Ergomera 625 Counters of electricity and it based on the common template "ModBus base ([[#mbBase|mbBase]])" since protocol of the counters grounded on standard ModBus function in main parameters. [[File:at.png]] The template currently supports only reading the ModBus registers without accessing the history due to the device protocol has got common problems here. * '''Total complexity:''' 0.3 {{CtxDetails|HD|human-days, 1 HD — 10 hours}} * '''Sponsored by:''' Vinnica Poultry Farm {{CntHdr|Template IOs}} {| class="mw-collapsible mw-collapsed wikitable sortable" |+ style=white-space:nowrap | |- ! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value |- | transport || Transport || String || Input || Not attribute || Constant || Sockets.em625:10.39.170.4:5555 |- | addr || Device address [0...247] || Integer || Input || Not attribute || Constant || 1 |- | mbType || ModBus type, [RTU|ASCII|TCP] || String || Input || Not attribute || Constant || RTU |- | maxBlkSz || ModBus maximum block size, [10...200] || Integer || Input || Not attribute || Constant || 200 |- | fragMerge || ModBus blocks merging || Boolean || Input || Not attribute || Constant || 1 |- | items || Items set Rows in the form "<nowiki>[u|i|u2|i2|u4|i4|r|s]:{addr}:{w|r|~}:{id}[:{nm}]</nowiki>". | Text || Input || Full access || Variable | <nowiki>#<SnthHgl font="monospace"><rule expr="^#[^\n]*" color="gray" font_italic="1"/><rule expr=":[rw~]*:" color="red"/><rule expr=":(0[xX][0-9a-fA-F]*|[0-9]*),?(0[xX][0-9a-fA-F]*|[0-9]*),?(0[xX][0-9a-fA-F]*|[0-9]*),?(0[xX][0-9a-fA-F]*|[0-9]*)" color="blue"/><rule expr="^(u|i|u2|i2|u4|i4|r|s)" color="darkorange"/><rule expr="\\:" color="blue"/></SnthHgl></nowiki><br/><br/> |- | tr || Output transport || Object || Input || Not attribute || Variable || |- | this || Object || Object || Input || Not attribute || Variable || |- | f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0 |- | f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0 |- | f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000 |- | f_err || Function error || String || Input || Not attribute || Variable || 0 |} {{CntHdr|Configuring and using}} :1. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any present one with need scheduling properties. :2. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select this template for it, one for each the devices — enable the parameter. :3. Into the tab "Template configuration" of the logical parameter object you need to set: :* ''Transport'' — to the address of the automatically created transport with its parameters after ":", according to [[Special:MyLanguage/Documents/User_API#SYSTransport|the function SYS.Transport.outAt() address format]]. :* ''Device address [0...247]'' — set here the device address. :* ''ModBus type'' (for [[Special:MyLanguage/Modules/LogicLev|the logical controller object]]) — to the ModBus protocol type/variant from the list — RTU. :* ''ModBus maximum block size'' (for [[Special:MyLanguage/Modules/LogicLev|the logical controller object]]) — to the ModBus protocol package data maximum size in the range [10...200] — 200. :* ''ModBus blocks merging'' (for [[Special:MyLanguage/Modules/LogicLev|the logical controller object]]) — for allowance of merging the ModBus protocol fragmented blocks of the registers — 1. :6. RESULT: The logical parameter object will: dynamically create needed attributes accordingly to the attribute "Items set" value and perform interaction and placing of gathered data to the parameter attributes. Also you are able to change writable attributes.
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