From OpenSCADAWiki
Jump to: navigation, search
This page is a translated version of the page Libs/Devices and the translation is 15% complete.

Other languages:
English • ‎mRussian • ‎Українська
Назва Версія Ліцензія Джерело Мови Автор Опис
Бібліотека промислових пристроїв 3.0 GPLv2 OscadaLibs.db (SQL, GZip) > DAQ.tmplb_DevLib en, uk, ru Роман Савоченко
  Константин (IrmIngeneer) (2018), Арсен Закоян (2017), Руслан Ярмолюк (2017)
Бібліотека шаблонів надання доступу до даних промислових пристроїв через мережу із доволі простими протоколами, на кшталт пристроїв загальної промислової автоматики та лічильників різних ресурсів.

Бібліотеку пристроїв користувацьких протоколів створено для надання доступу до даних промислових пристроїв через мережу із доволі простим протоколом, на кшталт пристроїв загальнопромислової автоматики та лічильників різних ресурсів, із протоколом достатньо простим до реалізації у модулі користувацького протоколу, з використанням наявних комплексних протоколів (ModBus, OPC_UA, HTTP) або безпосередньо на внутрішній мові подібній до Java.

Назви шаблонів та їх параметрів доступні на мовах: Англійська, Українська та mRussian. Їх вихідний код написано у мово(людська)-незалежному режимі з викликом функції перекладу tr() та переклад цих повідомлень також доступний Англійською, Українською та mRussian.

Для підключення бібліотеки до проекту станції OpenSCADA ви можете отримати файл БД як:

  • такий що постачається з готовим та відповідним пакетом дистрибутиву Linux на кшталт "openscada-libdb-main", "openscada-LibDB.Main";
  • найбільш актуальний та безпосередньо отриманий з репозиторію subversion, перетворений у файл БД SQLite шляхом:
wget http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/OscadaLibs.sql
sqlite3 -init OscadaLibs.sql OscadaLibs.db .exit

Цей завантажений файл ви надалі можете розмістити у теці проекту станції та створити об'єкт бази даних модуля БД "SQLite", зареєструвавши файл бази даних у конфігурації.

Для DAQ-шаблонів, загалом, вам треба створити представницький об'єкт пристрою у модулі Логічного контролеру та обрати відповідний шаблон із бібліотеки шаблонів. Далі, для коректної конфігурації, дотримуйтесь специфіки шаблону у його особистому описі. Концепцію доступу до даних через користувацький протокол можна зобразити як на рисунку 1.

Рис.1. Концепція доступу до даних через користувацький протокол.

Як можна бачити з рисунку 1, взаємодія з пристроєм відбувається через деякий транспорт на якому вони фізично базуються. Запит до транспорту Ви можете надіслати:

  1. Безпосередньо за допомогою функції системного API OpenSCADA об'єкту транспорту string messIO( string mess, real timeOut = 0 );, якщо протоколоспецифічна частина дуже проста та дані вам потрібно лише вилучити.
  2. Загорнутий запит даних req, функцією int messIO( XMLNodeObj req, string prt ); та для протоколу prt, якщо протокольна частина достатньо складна та вже представлена у OpenSCADA.
  3. Загорнутий запит даних специфічний до користувача за допомогою функції int messIO( XMLNodeObj req, "UserProtocol" ); та реалізації користувацького протоколу, якщо протокольна частина достатньо складна та ще відсутня у OpenSCADA. Користувач реалізує тут саму протоколоспецифічну частину у модулі UserProtocol та частину специфічну до даних у шаблоні для модуля Логічного Рівня або безпосередньо у процедурі контролеру на внутрішній мові програмування модуля JavaLikeCalc.
At.png Цей останній метод наразі розвинено до можливості формування протокольної частини коду безпосередньо у тому-ж коді шаблону, як окрема вбудована функція через виклик функції запиту першого методу, якщо немає потреби повторного використання, або навіть якщо така потреба є та тут має сенс створення комплексного шаблону, який зможе поєднувати роль й вихідного протоколу, через його підключення також до модуля користувацького протоколу. Та воно буде повністю зберігатися у одній бібліотеці шаблонів.

At.png Пряма робота із вихідним транспортом функції string messIO( string mess, real timeOut = 0 ); не передбачає блокування транспорту поза викликом цієї функції, а відтак, для складних протоколів із посилками відповіді більш ніж у одному пакеті, що передбачає процес "доочікування", не можна використовувати спільний транспорт, за яким можливе надсилання пакетів різних протоколів або навіть один, але з різних завдань (об'єктів контролерів). Відтак, якщо є потреба використання спільного транспорту, то розташовуйте параметри опитування за протоколом у одному об'єкті контролеру (завдані) або використовуйте модуль користувацького протоколу, до якого це зауваження не має стосунку, оскільки він здійснює таке блокування на час виклику процедури обробки, як і решта модульних протоколів OpenSCADA. Для розташування реалізації протоколу тут ви маєте виконати та дотримуватися наведених вимог:

  • бути власником прав або автором коду та розповсюджувати його під будь-якою вільною ліцензією, перевага надається GPL;
  • приготувати та зберегти у окремому файлі БД SQLite, або як текстовий файл, щодо: опису параметрів (ВВ), коду процедури написаному та відформатованому за якоюсь системою;
  • написати короткий опис та інструкцію підключення пристрою за протоколом у спосіб схожий на інші тут;
  • написати прямий запит до теми форуму "Розробка OpenSCADA" щодо розташування протоколу тут, включити докази його працездатності від будь-якого розробника OpenSCADA або коротке демонстраційне відео.

1 Загальні протоколи

1.1 Сканер ModBus (ModBusScan)

1.0 GPLv2 * en, uk, ru Роман Савоченко
Результат та оперативна конфігурація.

Сканер ModBus щодо Кілець (1), Вхідних Кілець (2), Регістрів (3), Вхідних Регістрів (4); у діапазоні [0...65535]. Шаблон корисний для вивчення невідомих пристроїв ModBus, скануванням їх мапи Кілець та Регістрів для виявлення наявних адрес даних. Сканування відбувається по одному елементу, чи то кільцю чи регістру, для попередження недоступності даних на пристроях суворого доступу даних. Сам протокол ModBus реалізовано модулем OpenSCADA DAQ.ModBus, разом з яким шаблон і передбачено до використання.

  • Загальна працемісткість: 0.2 ЛД[!]
  • Спонсорування, загальну працемісткість: ТОВ "СВІТоВИР"

ВВ шаблону

Ідентифікатор Параметр Тип Режим Атрибут Конфігурація Значення
lim Час обмеження, секунд Ціле Вхід Не атрибут Постійна 10
type Тип Вибір цілих чисел Вхід Повний доступ Змінна 2

0;1;2;3
Кільця (1);Вхідні Кільця (2);Регістри (3);Вхідні Регістри (4)

begin Початок (0...65536) Ціле Вихід Повний доступ Змінна
end Кінець (0...65536) Ціле Вихід Повний доступ Змінна
res Результат Текст Вихід Тільки читання Змінна
this Об'єкт Об'єкт Вхід Не атрибут Змінна

Конфігурація та використання

1. Створити об'єкт контролеру джерела, або використати придатний, у модулі "ModBus".
2. Створити об'єкт параметру джерела у попередньому об'єкті контролеру джерела, встановити його Ідентифікатор на кшталт "ModBusScan", обрати його тип у "Логічний" та обрати цей шаблон для нього — увімкнути параметр.
3. У вкладці "Конфігурація шаблону" об'єкту логічного параметру ви маєте встановити:
  • Час обмеження, секунд — час обмеження виконання одного циклу, значення по замовченню є нормальним.
4. РЕЗУЛЬТАТ: Обранням типу даних та встановленням атрибутів діапазону сканування "Початок" та "Кінець" ви отримаєте результат сканування у атрибуті "Результат", який буде доповнюватися у процесі сканування.


1.2 ModBus base (mbBase)

1.2 GPLv2 * en,uk,ru Roman Savochenko
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 (function 3 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 ModBus and LogicLev and can be managed from the template of the initiative connections processing for assigned output transports.

  • Total complexity: 0.5 HD[!]
  • Sponsored by, for whole complexity: Elyor Turaboev, BLUE STAR GROUP Ltd

Template IOs

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 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 "[u|i|u2|i2|u4|i4|r|s]:{addr}:{w|r|~}:{id}[:{nm}]".

Text Input Full access Variable #<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>

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
Configuration.

Configuring and using

1. Create an output transport of the type "Serial" or "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 a logical controller object or 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:
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.


1.3 DCON Protocol + Input AI (DCON_Prt)

1.0 GPLv2 * => UserProtocol en

1.4 DCON Protocol + Input AO (DCON_Prt_AO)

1.0 GPLv2 * => UserProtocol en

1.5 DCON Protocol + Input DI (DCON_Prt_DI)

1.0 GPLv2 * => UserProtocol en

1.6 DCON Protocol + Input DO (DCON_Prt_DO)

1.0 GPLv2 * => UserProtocol en Roman Savochenko

Input and output parts of 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 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.

Configuring and using

1. Create of needed 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 "Serial" mostly and set its to any ID.
4. Set proper address and the timeouts to the 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.

Configuring and using

1. Create or use allowed user protocol objects based on the templates, with ID like to "DCON".
2. Create an output transport of the type "Serial" and set its ID like to "DCON", one transport suitable for more receivers.
3. Set proper address and timeouts for the Serial device.
4. Place some requesting commands directly into allowed or a new internal OpenSCADA procedure like to:
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();
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.


1.7 Distributed Network Protocol 3 (DNP3)

0.8 GPLv2 * en, uk, ru Roman Savochenko
Result and the operative setup.

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 HD[!]
  • Sponsored by, for whole complexity: Hadi Ramezani and Hossein Malakooti

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 "Main.objProps", according to the 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.

Template IOs

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 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
Configuration.

Configuring and using

1. Create an output transport of the type "Sockets", set its Identifier like to "DNP3", one for each the device-PLC.
2. Set proper address with port 20000 and timeouts of the Sockets device-PLC.
3. Create and start 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 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.


1.8 IEC-60870 (IEC60870)

1.4 GPLv2 * en, uk, ru Роман Савоченко
Результат та оперативна конфігурація.

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 ЛД[!]
  • Спонсорування, початкової імплементації на 3.0 ЛД[!]: Устьянцев Михайло
  • Спонсорування, розширення на 0.8 ЛД[!]: ТОВ "СВІТоВИР"
  • Завдання реалізації

Деталі
Враховуючи призначення та сферу застосування, протокол не передбачає прямого визначення запитуваних даних та пристроєм, що його реалізує, надаються всі наявні, за запитом командою C_IC_NA_1, після чого надсилаються лише зміни.

Всі отримані та контрольовані дані акумулюються у об'єкті атрибуту "items" задля подальшого контрою як об'єкт із представленням даних у таблиці віджету "Main.objProps", згідно до визначення комплексного об'єкту.

Для стандартного контролю через атрибути параметру, включно з можливістю архівування, передбачено можливість визначити потрібні дані для створення для них окремого представницького атрибуту, що описується у атрибуті "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.

У шаблоні вперше використано незапитувальний режим вихідного транспорту та вільне створення атрибутів під час виконання.

ВВ шаблону

Ідентифікатор Параметр Тип Режим Атрибут Конфігурація Значення
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 di|do:{IOA}[-{EndIOA}][:a[:{NameBase}]]" Текст Вхід Повний доступ Змінна
items Всі елементи Об'єкт Вихід Повний доступ Змінна
syncTimePLC Синхронізація часу ПЛК Логічний Вхід Повний доступ Змінна
oAVals Вихідні значення Об'єкт Вхід Не атрибут Змінна
this Об'єкт Об'єкт Вхід Не атрибут Змінна
f_start Прапорець запуску функції Логічний Вхід Не атрибут Змінна 0
f_frq Частота обчислення функції (Гц) Реальний Вхід Не атрибут Змінна 1000
f_stop Прапорець зупинки функції Логічний Вхід Не атрибут Змінна 0
f_err Помилка функції Рядок Вхід Не атрибут Змінна 0
Конфігурація.

Конфігурація та використання

1. Створити вихідний транспорт типу "Сокети", встановити його Ідентифікатор на кшталт "IEC60870", один на кожен пристрій-ПЛК.
2. Встановити відповідну адресу з портом 2404 та таймаутами Сокетів пристрою-ПЛК.
3. Створити та запустити об'єкт логічного контролеру або використати придатний з потрібними властивостями планування. Для взаємодії за IEC-60870-104 вам потрібно період виконання не більше ніж 0.1 секунда!
4. Створити об'єкт логічного параметру та обрати цей шаблон для нього, один на кожний пристрій-ПЛК — увімкнути параметр.
5. У вкладці "Конфігурація шаблону" об'єкту логічного параметру ви маєте встановити:
  • Транспорт — адреса транспорту на кроці 1. Підтримується стеження за зміною адреси.
  • Адреса — адреса віддаленої станції та об'єкту у форматі "{addr}.{OA}", для фізичних систем без шлюзування не має особливого значення.
  • Час відновлення підключення — час відновлення підключення у секундах, за відсутності підключення.
  • Час опитування всього — час запиту всіх даних у секундах, надсиланням C_IC_NA_1.
  • Таймаут підтвердження відсутності активності, у секундах.
  • Таймаут підтвердження, у секундах.
  • Таймаут перевірки, у секундах.
  • Максимально непідтверджених — не використовується у клієнті оскільки він не генерує таких потоків.
  • Максимальна відсутність "ack" — максимум вхідних пакетів після яких клієнт надсилає "Ack".
6. РЕЗУЛЬТАТ: Об'єкт логічного параметру буде здійснювати взаємодію та розміщення зібраних даних у об'єкті "items", створення/розміщення та перевірку команд за відповідними атрибутами, створеними за інструкцією у "itemsSet".
7. У процесі роботи, через вкладку оперативних даних "Атрибути", окрім отримання результату можна здійснювати оперативне налаштування та контроль щодо:
  • Набір елементів за — для контрольованого найменування елементів та визначення як атрибути та доступні для запису.
  • Всі елементи, {Атрибути елементів} — прямий запис елементів доступних для запису.


1.9 IEC-62056 (IEC62056)

1.1 GPLv2 * en, uk, ru Роман Савоченко
Результат та оперативна конфігурація.

IEC 62056 є набором стандартів для вимірювання електрики та обміну даними. IEC 62056 стандарти є міжнародними версіями специфікації DLMS/COSEM.

  • Стан реалізації протоколу:
    • КЛІЄНТ ЧАСТИНИ 46 специфікації;
    • читання прямо визначених OBIS.
  • Загальна працемісткість: 3.3 ЛД[!]
  • Спонсорування, загальну працемісткість: ТОВ "СВІТоВИР АВТоМАТИК"

Деталі
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" — Інтерфейсні класи.

At.png Цей протокол не визначає шляху запиту-опитування всіх доступних змінних, на кшталт протоколів IEC-60870 та 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" — зсув фази.

ВВ шаблону

Ідентифікатор Параметр Тип Режим Атрибут Конфігурація Значення
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
Конфігурація.

Конфігурація та використання

1. Безпосередньо створити вихідний транспорт типу "Послідовний", або за допомогою шлюзу "Сокети", та встановити його Ідентифікатор на кшталт "IEC62056", один на використану послідовну шину пристрою.
2. Встановити відповідну адресу та таймаути Послідовного пристрою.
3. Створити та запустити об'єкт логічного контролеру або використати придатний з потрібними властивостями планування. Період виконання має бути біля 0.1 секунда.
4. Створити об'єкт логічного параметру та обрати цей шаблон для нього, один на кожний пристрій-ПЛК — увімкнути параметр.
5. У вкладці "Конфігурація шаблону" об'єкту логічного параметру маєте встановити:
  • Транспорт — адреса транспорту на кроці 1. Підтримується стеження за зміною адреси.
  • Призначення "{UHDLC}[:{LHDLC}]" — адреса віддаленої станції у форматі двох цифр у діапазоні [0...16383], цю адресу може бути вказано як одна цифра діапазону [0...127].
  • Джерело — адреса самої станції (джерела) у діапазоні цілого числа [0...127].
  • Пароль пристрою — пароль доступу пристрою.
  • Час відновлення підключення — час відновлення підключення у секундах, за відсутності підключення та відповіді.
  • Час опитування всього — час запиту всіх даних у секундах, вказаних у "itemsSet".
6. РЕЗУЛЬТАТ: Об'єкт логічного параметру буде здійснювати взаємодію та розміщення зібраних даних у об'єкті "items", створення/розміщення зібраних даних у відповідних атрибутах значень.
7. У процесі роботи, через вкладку оперативних даних "Атрибути", окрім отримання результату можна здійснювати оперативне налаштування та контроль щодо:
  • Набір елементів за — стосовно доповнення OBIS пристрою для їх читання.


1.10 OWEN (OWEN)

0.8 GPLv2 * en 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 HD[!]
  • Actual issues: The undocumented behaviour:
    • МВ110-8А responds error 0x31 for reading "in-t": >1003023331932DCB43 <1010932D4791;
    • and error 0x34 for it writing: >1003023334932D2A42 <1001932D0BEDBC.

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].

Template IOs

Identifier Parameter Type Mode Attribute Configuration Value
transport Transport String Input Not attribute Constant Serial.out_owen
items Items set "{addr}:{func}:{f|i|u|s}:{r|w}[:{id}[:{nm}]]" Text Input Full access Variable
this Object Object Input Not attribute Variable

Configuring and using

1. Create an output transport of the type "Serial" directly or by the "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 Serial device.
3. Create and start a logical 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 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.

2 Industrial automation devices

2.1 Elemer TM510x (TM510x)

1.0 GPLv2 * => UserProtocol en, uk, ru Roman Savochenko

Multi-channels thermometer Elemer TM5102 and TM5103 of the firm Elemer.

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.

Template IOs

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

Configuring and using

1. Create an output transport of the type "Serial" and set its Identifier like to "tm510", one for each the devices' used serial bus.
2. Set proper address and timeouts of the Serial device.
3. Create and start a logical 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 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.


2.2 EDWARDS TURBOMOLECULAR PUMPS (SCU750)

1.0 GPLv2 * => UserProtocol en, uk, ru Roman Savochenko

Typical EDWARDS TURBOMOLECULAR PUMPS (http://edwardsvacuum.com) data acquisition by SCU750 Cotrol Unit protocol.

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.

Template IOs

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

Configuring and using

1. Create an output transport of the type "Serial" and set its Identifier like to "SCU750", one for each the devices' used serial bus.
2. Set proper address and timeouts of the Serial device.
3. Create and start a logical 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 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.


2.3 Sycon Multi Drop Protocol (SMDP)

1.0 GPLv2 * => UserProtocol en, uk, ru 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).

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.

Template IOs

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

Configuring and using

1. Create an output transport of the type "Serial" and set its Identifier like to "SMDP", one for each the devices' used serial bus.
2. Set proper address and timeouts of the Serial device.
3. Create and start a logical 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 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.


2.4 Power supply for turbomolecular pumps (TMH)

1.0 GPLv2 * => UserProtocol en, uk, ru Roman Savochenko

Power supply for turbomolecular pumps of the firm SHIMADZU, model EI-R04M.

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.

Template IOs

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

Configuring and using

1. Create an output transport of the type "Serial" and set its Identifier like to "TMP", one for each the devices' used serial bus.
2. Set proper address and timeouts of the Serial device.
3. Create and start a logical 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 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.


2.5 Temperature measurement IT-3 (IT3)

1.2 GPLv2 * => UserProtocol en, uk, ru Roman Savochenko

Temperature measurement IT-3 from OmskEtalon.

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.

Template IOs

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

Configuring and using

1. Create an output transport of the type "Serial" and set its Identifier like to "IT3", one for each the devices' used serial bus.
2. Set proper address and timeouts of the Serial device, typical it is "{serDevPath}:4800:8N2".
3. Create and start a logical 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 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.


2.6 Power supply of beam-electrons evaporator (IVE-452HS-02)

1.0 GPLv2 * => UserProtocol en, uk, ru Roman Savochenko

Power supply of beam-electrons evaporator of "Plasma Tech" Ltd, from Moskov.

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.

Template IOs

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

Configuring and using

1. Create an output transport of the type "Serial" directly or by the "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 Serial device.
3. Create and start a logical 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 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.


2.7 OPTRIS CT/CTL (OPTRIS)

1.0 GPLv2 * => UserProtocol en, uk, ru Roman Savochenko

OPTRIS CT/CTL communication interface of "Optris" GmbH, from Berlin.

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.

Template IOs

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

Configuring and using

1. Create an output transport of the type "Serial" directly or by the "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 Serial device.
3. Create and start a logical 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 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.


2.8 CTR 100, 101 (CTR)

1.0 GPLv2 * => UserProtocol en, uk, ru Roman Savochenko

The RS232C Serial Interface permits the communication between the digital Oerlikon Leybold Vacuum CERAVAC, from Köln.

Output user protocol's XML request structure
<mess err="1:Error">{req}</mess>

req — request/respond data;
err — sets to result of the request.

Template IOs

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

Configuring and using

1. Create an output transport of the type "Serial" directly or by the "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 Serial device.
3. Create and start a logical 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 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.


2.9 Shark Slave Communication Protocol (SSCP)

0.6 GPLv2 * en, uk, ru Roman Savochenko

Shark Slave Communication Protocol from EnergoCentrum PLUS, s.r.o.

Template IOs

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

Configuring and using

1. Create an output transport of the type "Sockets", set its Identifier like to "SSCP", one for each the device.
2. Set proper address of the Sockets device to IP-address or host address of the remote device in the Ethernet network.
3. Create and start a logical 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 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.


2.10 Pulsar-M (pulsarM)

1.0 GPLv2 * en, uk, ru Roman Savochenko

Pulsar-M counters protocol.

Template IOs

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

Configuring and using

1. Create an output transport of the type "Serial" directly or by the "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 Serial device.
3. Create and start a logical 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 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.


2.11 VSE002 (VSE002)

1.0 GPLv2 * en Roman Savochenko

The template implements for main data acquisition of the vibration sensors of the firm IFM according to the reverse-engineering. Development and testing was performed on base of the sensor 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 HD[!]
  • Sponsored by: Vinnica Poultry Farm

Template IOs

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

Configuring and using

1. Create and start 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 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 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.


2.12 Incubator (Incubator)

1.0 GPLv2 * en 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 HD[!]
  • Sponsored by: Vinnica Poultry Farm

Template IOs

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

Configuring and using

1. Create and start a logical controller object or use any present one with need scheduling properties.
2. Create 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 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.


2.13 MTP 4D (MTP4D)

1.1 GPLv2 * en,uk,ru Roman Savochenko

The connection template of a simple vaccuumeter MTP 4D of the firm "Erstevak Ltd".

  • Total complexity: 0.3 HD[!]
  • Sponsored by, for whole complexity: Magomed, SAVTECH

Template IOs

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

Configuring and using

1. Create an output transport of the type "Serial" directly or by the "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 Serial device.
3. Create and start a logical 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 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.

3 Counters of the resources

3.1 Heat counter computer VKT7 (VKT7)

1.0 GPLv2 * => UserProtocol en, uk, ru 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.

  • Total complexity: 4.9 HD[!]
  • Sponsored by, for initial implementation on 4.0 HD[!]: Vladislav Chubuk, Teplocom LTD

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.

Template IOs

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

Configuring and using

1. Create an output transport of the type "Serial" and set its Identifier like to "VKT7", one for each the devices.
2. Set proper address and timeouts of the Serial device.
3. Create and start a logical 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 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.


3.2 Slot LTD devices (SLOT)

0.8 GPLv2 * en Roman Savochenko
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 HD[!]
  • Sponsored by: Vinnica Poultry Farm

Template IOs

Identifier Parameter Type Mode Attribute Configuration Value
transport Transport String Input Not attribute Constant Sockets.SLOT:10.39.77.10:4001
modem Modem
In the format "{TelN}[:{Init1}[:{Init2}[...{InitN}]]]"
String Input Not attribute Constant
modemTm Modem times
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

Configuring and using

Configuration.
1. Create and start a logical controller object or use any present one with need scheduling properties.
2. Create 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 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 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.


3.3 Corrector BK (CorBK)

1.0 GPLv2 * en 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 HD[!]
  • Ordered by: BLUE STAR GROUP Ltd

Template IOs

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

Configuring and using

1. Create an output transport of the type "Sockets" or "Serial" and set its Identifier like to "BK", one for each the device.
2. Set proper address and timeouts of the Sockets or Serial device.
3. Create and start a logical controller object or use any present one with need scheduling properties — must be set in the period 10...60 seconds.
4. Create 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.


3.4 AutoPILOT PRO Flow Computers (AutoPILOT)

1.0 GPLv2 * en Roman Savochenko

The template implements support for AutoPILOT PRO Flow Computers from 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 HD[!]
  • Ordered by: BLUE STAR GROUP Ltd

Template IOs

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

Configuring and using

1. Create an output transport of the type "Sockets" or "Serial" and set its Identifier like to "pilot", one for each the device.
2. Set proper address and timeouts of the Sockets or Serial device.
3. Create and start a logical controller object or 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 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 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.


3.5 AutoPILOT Flow Computers (AutoPILOT_old)

1.0 GPLv2 * en Roman Savochenko

The template implements support for AutoPILOT Flow Gas Computers from Thermo Fisher Scientific known as old devices of the firm, when new-pro ones are 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 HD[!]
  • Ordered by: BLUE STAR GROUP Ltd

Template IOs

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

Configuring and using

1. Create an output transport of the type "Sockets" or "Serial" and set its Identifier like to "pilotOld", one for each the device.
2. Set proper address and timeouts of the Sockets or Serial device.
3. Create and start a logical 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 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.


3.6 Goboy 1M (Goboy1M)

1.0 GPLv2 * en 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 HD[!]
  • Ordered by: BLUE STAR GROUP Ltd

Template IOs

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

Configuring and using

1. Create an output transport of the type "Sockets" or "Serial" and set its Identifier like to "goboy", one for each the device.
2. Set proper address and timeouts of the Sockets or Serial device.
3. Create and start a logical controller object or 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 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 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.


3.7 Ultramag (UltraMag)

1.0 GPLv2 * en 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 HD[!]
  • Ordered by: BLUE STAR GROUP Ltd

Template IOs

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

Configuring and using

1. Create an output transport of the type "Sockets" or "Serial" and set its Identifier like to "umag", one for each the device.
2. Set proper address and timeouts of the Sockets or Serial device.
3. Create and start a logical controller object or a ModBus controller object or use any present one with need scheduling properties — must be set in the period 10...60 seconds.
4. Create 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 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.


3.8 Tancy Data (TDS)

1.0 GPLv2 * en Roman Savochenko

The template implements support for Tianxin V1 protocol of Gas Correctors TC220 from 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 HD[!]
  • Ordered by: BLUE STAR GROUP Ltd

Template IOs

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

Configuring and using

1. Create an output transport of the type "Sockets" or "Serial" and set its Identifier like to "TDS", one for each the device.
2. Set proper address and timeouts of the Sockets or 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 a logical 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 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.


3.9 Flow GAS (FlowGAS)

1.0 GPLv2 * en 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)" 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 HD[!]
  • Ordered by: BLUE STAR GROUP Ltd

Template IOs

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 [RTU|ASCII|TCP] 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 "[u|i|u2|i2|u4|i4|r|s]:{addr}:{w|r|~}:{id}:{nm}" 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

Configuring and using

1. Create an output transport of the type "Serial" or "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 a logical controller object or 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 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 the logical controller object) — to the ModBus protocol type/variant from the list RTU, ASCII, TCP — set to RTU.
  • ModBus maximum block size (for 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.


3.10 Enron, Daniel (enronDaniel)

1.0 GPLv2 * en 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 DAQ.ModBus. So, the template implements that protocol variant on the 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 "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 HD[!]
  • Ordered by: BLUE STAR GROUP Ltd

Template IOs

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 [RTU|ASCII|TCP] 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 "[u|i|r|s]:{addr}:{w|r}:{id}:{nm}" 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

Configuring and using

1. Create an output transport of the type "Serial" or "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 a logical controller object or 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:
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.


3.11 Mercury 200 (m200)

1.0 GPLv2 * => UserProtocol en, uk, ru Arsen Zakojan

One phase counter of electricity Mercury 200, 203.2Т, 206 from the firm "Incotex" (http://www.incotexcom.ru)

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).

Template IOs

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

Configuring and using

1. Create an output transport of the type "Serial" and set its Identifier like to "merc200", one for each the devices' used serial bus.
2. Set proper address and timeouts of the Serial device.
3. Create and start a logical 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 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.


3.12 Mercury 230 (m230)

1.0 GPLv2 * => UserProtocol en, uk, ru Arsen Zakojan

Three phase counter of electricity Mercury 230, 231, 232, 233, 234, 236 from the firm "Incotex" (http://www.incotexcom.ru)

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".

Template IOs

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

Configuring and using

1. Create an output transport of the type "Serial" and set its Identifier like to "merc230", one for each the devices' used serial bus.
2. Set proper address and timeouts of the Serial device.
3. Create and start a logical 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 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.


3.13 Nik2303I (Nik2303I)

1.0 GPLv2 * => UserProtocol en, uk, ru Ruslan Yarmoliuk

Three phase counter of electricity NIK 2303 from firm NIK LLC (http://www.nik.net.ua).

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.

Template IOs

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

Configuring and using

1. Create an output transport of the type "Sockets" or "Serial" and set its Identifier like to "nik2303", one for each the device.
2. Set proper address and timeouts of the Sockets or Serial device.
3. Create and start a logical 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 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.


3.14 FF LE-03MB CT (FF_LE)

1.0 GPLv2 * en Roman Savochenko

The template implements support for counters of electricity bidirectional on 1-phase/3-phase with analyse the network parameters LE-03MB CT of the firm "F&F".

Protocol of the counters is 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.

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 HD[!]
  • Sponsored by: Vinnica Poultry Farm

Template IOs

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

Configuring and using

1. Create and start a logical controller object or use any present one with need scheduling properties.
2. Create 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:
4. RESULT: The logical parameter object will perform interaction and placing of gathered data to the parameter attributes.


3.15 Ergomera 625 (ergomera625)

0.1 GPLv2 * en Roman Savochenko

The template implements support for Ergomera 625 Counters of electricity and it based on the common template "ModBus base (mbBase)" since protocol of the counters grounded on standard ModBus function in main parameters.

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 HD[!]
  • Sponsored by: Vinnica Poultry Farm

Template IOs

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 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 "[u|i|u2|i2|u4|i4|r|s]:{addr}:{w|r|~}:{id}[:{nm}]".

Text Input Full access Variable #<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>

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

Configuring and using

1. Create and start a logical controller object or use any present one with need scheduling properties.
2. Create 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:
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.