Реліз відкритої SCADA(Supervisory control and data acquisition) системи версіях 0.7.0 є першим стабільним-промисловим релізом, що пов'язано з завершенням стадії бета-тестування, розпочатої з версії 0.6.4.
Основною метою цього релізу є надання співтовариству користувачів та розробників вільного програмного забезпечення (ПЗ) платформи для побудови рішень комплексних систем автоматизації та інших суміжних рішень, а також надання комерційних послуг на основі проекту OpenSCADA.
Цей реліз є першим стабільним релізом, для якого надається технічна підтримка від розробників та для якого планується випуск виправлень протягом довгого проміжку часу.
Цей документ становить обробку(компіляцію) документа "ChangeLog" системи OpenSCADA версії 0.7.0, який прикликано коротко та наочно освітлити нові можливості системи OpenSCADA. Детально ознайомитися зі змінами у системі OpenSCADA можна у файлі "ChangeLog" з дистрибутиву системи або тут: http://wiki.oscada.org/Works/ChangeLog.
Ключовими особливостями даної версії є:
Реалізація планових завдань.
Оптимізація, підвищення стабільності, стійкості та продуктивності системи.
Удосконалення та стабілізація СВК.
Формування та стабілізація API програмування користувача.
Загальносистемні розширення.
Значні покращення та виправлення окремих модулів.
Формування документації та перекладі документації і інтерфейсу.
Уніфікація демонстраційної БД.
Нові та оновлені модулі:
Archive.FSArch - 1.3.1 -> 1.4.1, виправлення та покращення для підвищення продуктивності
Archive.DBArch - 0.9.0 -> 0.9.2, виправлення та деякі покращення
DB.DBF - 2.0.1 -> 2.0.2, виправлення
DB.MySQL - 1.6.1 -> 1.6.2, деякі покращення
DB.SQLite - 1.6.1 -> 1.6.2, покращення
DB.FireBird - 0.9.1 -> 0.9.5, значні покращення
DB.PostgreSQL - 0.9.0, новий модуль
DAQ.DiamondBoards - 1.2.0 -> 1.2.1, адаптація до змін API
DAQ.System - 1.7.0 -> 1.7.2, очищення коду та адаптація до змін API
DAQ.BlockCalc - 1.2.1 -> 1.4.0, покращення та виправлення
DAQ.JavaLikeCalc - 1.5.0 -> 1.8.0, значні покращення, виправлення та оптимізація
DAQ.LogicLev - 1.0.1 -> 1.1.2, покращення та виправлення
DAQ.SNMP - 0.4.0 -> 0.4.1, адаптація до змін API
DAQ.Siemens - 1.2.1 -> 1.2.3, виправлення та адаптація до змін API
DAQ.ModBus - 1.0.1 -> 1.1.1, виправлення та покращення
DAQ.DCON - 0.3.0 -> 0.3.3, виправлення та покращення
DAQ.ICP_DAS - 0.5.0 -> 0.7.2, значні покращення та виправлення
DAQ.DAQGate - 0.8.0 -> 0.9.1, значні покращення та виправлення
DAQ.SoundCard - 0.6.0 -> 0.6.1, адаптація до змін API
DAQ.OPC_UA - 0.6.0, новий модуль
Transport.Sockets - 1.4.0 -> 1.4.5, покращення та виправлення
Transport.SSL - 0.8.2 -> 0.9.5, покращення та виправлення
Transport.Serial - 0.5.0 -> 0.7.1, значні покращення та виправлення
Protocol.HTTP - 1.4.1 -> 1.5.0, значні покращення
Protocol.SelfSystem - 0.9.1 -> 0.9.3, виправлення та адаптація до змін API
Protocol.UserProtocol - 0.6.0, новий модуль
Protocol.ModBus - 0.5.0 -> 0.6.1, виправлення та покращення
Protocol.OPC_UA - 0.6.0, новий модуль
Special.FLibComplex1 - 1.0.4 -> 1.0.6, виправлення та покращення
Special.FLibMath - 0.5.1 -> 0.5.2, адаптація до змін API
Special.FLibSYS - 0.9.0 -> 0.9.2, виправлення та покращення
Special.SystemTests - 1.3.7 -> 1.5.0, переробка та уніфікація тестів
UI.QTStarter - 1.5.3 -> 1.6.0, покращення
UI.QTCfg - 1.8.1 -> 1.9.0, значні покращення та виправлення
UI.WebCfg - 1.5.3 -> 1.5.4, виправлення та адаптація до змін API
UI.WebCfgD - 0.6.2 -> 0.6.5, виправлення
UI.VCAEngine - 0.9.0 -> 1.0.0, значні покращення, виправлення та оптимізація
UI.Vision - 0.9.0 -> 1.0.0, значні покращення, виправлення та оптимізація
UI.WebVision - 0.7.0 -> 0.9.0, значні покращення та виправлення
UI.WebUser - 0.6.0, новий модуль
1 Реалізація планових завдань
У відповідністю з планом релізу було виконано наступні завдання:
Реалізація примітивів "Зв'язок" та "Функція" СВК. - У зв'язку з не принциповістю для промислового релізу та відсутності потреби, на цей час, це завдання було винесено за межі першого промислового релізу.
Стабілізація та випуск промислової гілки OpenSCADA. - Зроблено велику роботу по стабілізації та оптимізації промислового релізу, про що детальніше о у наступному розділі.
Реалізація модуля БД ОДБС, PostgresSQL та транспортного модуля БД. - Максимом Лисенко було виконано реалізацію модуля БД "PostgresSQL". Реалізація модуля БД "ODBC" було визнано не доцільним оскільки технологія "ODBC" фактично є інтерфейсом SQL-запитів, який не враховує особливостей SQL-діалектів реальних БД, а це означає що він не може безпосередньо, без огляду на тип БД, використовуватися у OpenSCADA при вирішенні її основних завдань. Перспектива використання "ODBC" залишається для реалізації доступу до БД у яких немає "рідного" API прямого доступу до БД, але є драйвер ODBC, або для надання простого інтерфейсу SQL-запитів у OpenSCADA. Реалізацію транспортного модуля БД було винесено за межі першого промислового релізу.
Реалізація нового механізму/модуля тестів системи OpenSCADA. - Для виконання внутрішніх системних тестів OpenSCADA механізм модуля тестування було виконано у вигляді функції API користувача, що з одного боку зберегло можливість автономного виклику статичних тестів та з іншого боку надало можливість виклику тестів по одному, в ручну, а також з скриптів користувача, у будь якій послідовності та у потрібній кількості окремих завдань.
2 Оптимізація, підвищення стабільності, стійкості та продуктивності системи.
У процесі робот над цією версією, а також її практичної адаптації, було виявлено та виправлено в загальній складності біля 200 помилок.
Крім виправлення багатьох помилок була зроблена робота по оптимізації різних компонентів OpenSCADA. Особливо помітної оптимізації все ще було піддано середовище візуалізації та керування (СВК) та його візуалізатори.
Перелічимо більш істотні помилки виправлення яких значно відобразилося на підвищені стабільності:
Загальносистемні:
Виправлено не коректне встановлення політики реального часу для потоків. Не було встановлено прапор потоку PTHREAD_EXPLICIT_SCHED.
Виправлено контроль за подвійним захопленням ресурсу у одному потоці та захоплення ресурсу за таймаутом.
Механізм запобігання багаторазового запуску виправлено на предмет перевірки PID заблокованого процесу, по причині видалення системою lock-файлів з директорії /tmp.
Виключено пакування даних структури класів за допомогою #pragma pack(push,1) по причині появи неявної помилки із зависанням одного з потоків та блокування залишених у прошивці OpenSCADA для ПЛК LP8x81.
Код ініціалізації та оновлення модулів оновлено для виключення подвійної ініціалізації поділяємих бібліотек.
Функцію створення завдання виправлено для запобігання падіння під час створення автоматично-зачиняємих завдань, під час швидкого закриття.
Транспорти:
Serial, DAQ.DCON, DAQ.ModBus: Транспорт послідовного інтерфейсу оптимізовано, зроблено типовим та виправлено на предмет декількох помилок. Клієнтів транспорту адаптовано для використання нового механізму.
Sockets, SSL: Виправлено можливість не повного запису функцією write(). Під час запису до сокету ця функція пише тільки частину розміром у свій буфер ( Для повного запису великих повідомлень додано повтор запису.
Transport.SSL: Остаточно виправлено очікування відповіді серверу шляхом доочікування обробки даних у функції BIO_read().
Transport.Sockets: Виправлено обробку нульового результату очікування хвосту повідомлень, для виключення зависання на запитах у DAQ.System.HDDTemp.
Збір даних:
ModBus: Виправлено втрату ресурсу під час збору даних. З цієї причини виключено можливість привласнення строки безпосередньо до об'єкту ресурсної строки.
JavaLikeCalc: Виправлено використання функцій для параметрів контролерів DAQ з IO функцій для першого використання.
DAQ, BlockCalc, JavaLikeCalc, LogicLev, Siemens: Виправлено отримання помилкових даних за схемою резервування у не резервованих завдань та при відсутності резервних станцій.
Protocol.HTTP, UI.WebCfg, UI.WebCfgD, UI.WebUser, UI.Vision: Значення HTTP-параметру "Content-Type" виправлено для елементу "Charset".
UI.VCAEngine: Виправлено падіння рушія візуалізації під час зміни мутованих атрибутів, які багаторазово успадковано.
Оптимізація та підвищення продуктивності:
SYS.XML: Функцію перетворення дерева XML у строку оптимізовано за часом.
SYS.Archive: Додано механізм адаптивної генерації запитів до архівів різної якості, у випадку загального запиту. Запобігає тривалій обробці у випадку запиту великих проміжків часу та наявності менш якісних архівів.
DAQ, DAQ.DAQGate: Виконано оптимізацію запитів між резервними станціями за розміром запитів та за часом. Запитуються тільки архівні атрибути параметрів DAQ та атрибути, заплановані до запиту.
Archive.FSArch: Додано створення інформаційних файлів упакованих архівів, без збереження цих даних у БД. Ця функція дозволяє забезпечити швидке підключення великих архівів до інших станцій.
UI.Vision: У примітиві "ElFigure", для відображення, замість QImage використано QPixmap, що значно підвищило продуктивність.
UI.Vision: Для побудови зображення примітиву "Diagram" використано QImage замість QPicture, що значно підвищило продуктивність.
TFunction, DAQ.JavaLikeCalc: Додано вкладений контекст функцій з метою підвищення продуктивності зовнішніх викликів.
Оптимізація використання пам'яті:
SYS: Систему переключено на використання традиційного "map" замість "hash_map" у всіх об'єктах з метою зменшення споживання пам'яті.
UI.VCAEngine: Об'єкт атрибуту "Attr" відірвано від об'єкту "TCntrNode" з метою зменшення споживання пам'яті до 25%.
3 Удосконалення та стабілізація СВК.
Помітні зміни було внесено у межах середовища візуалізації та керування (СВК), а саме у модулях рушія СВК UI.VCAEngine, візуалізаторів UI.Vision та UI.WebVision. Внесені зміни було спрямовано на стабілізацію, оптимізацію споживання пам'яті та покращення споживчих властивостей СВК.
Покращення СВК:
Додано повну підтримку вертикального масштабування діаграм.
Додано підтримку альфа-каналу у атрибути кольору всіх примітивів.
UI.VCAEngine:
Включено та зроблено безпечним успадкування опису мутуючих атрибутів.
Додано нові функції API користувача для сеансів wdgAdd(), wdgDel() та link(), linkSet(). Додання цих функцій дозволило реалізувати концепцію повністю динамічного формування інтерфейсу користувача.
Властивості прав доступу до віджету реалізовано атрибутами "owner" та "perm" для підвищення гнучкості керування.
Додано механізм автоматичного створення та запуску сеансу під час завантаження.
UI.Vision:
До інспектору атрибутів додано можливість групового встановлення однойменних атрибутів різних віджетів. Встановлення відбувається у груповому контейнері властивостей інспектору атрибутів, який з'являється під час виділення одночасно декількох віджетів.
У примітиві "ElFigure", для відображення замість QImage використано QPixmap, що значно підвищило продуктивність.
Для побудови зображення примітиву "Diagram" використано QImage замість QPicture, що значно підвищило продуктивність.
Додано підтримку властивостей інтерфейсу користувача. Додано керування та збереження розміру іконок панелей інструментів.
Додано можливість копіювання значень атрибутів та зв'язків за посередництвом контекстного меню інспекторів атрибутів та зв'язків.
Додано функцію пошуку по елементу "TextEdit".
UI.WebVision:
Додано підтримку обертання примітиву "Text".
Додано генерацію основних повідомлень миші. Для обробки деяких повідомлень додано стек функцій обробників.
Для користувача-відправника адаптовано доступ та керування до його сеансу.
4 Формування та стабілізація API програмування користувача.
Значним чином було виконано формування нового об'єктного API програмування користувача, яке передбачає інтеграцію функцій користувача у дерево об'єктів системи OpenSCADA. Крім цього було внесено низку змін до існуючих бібліотек функцій API користувача.
Зокрема було внесено наступні зміни:
SYS:
SYS, Special.FLibSYS: Об'єкт API користувача XMLNodeObj переміщено до ядра OpenSCADA (файли tvariant.h, tvariant.cpp).
Системне API користувача OpenSCADA, яке засновано на об'єкті TCntrNodeObj, розширено для контролю прав доступу користувача.
Об'єкт TAreaObj перейменовано у TArrayObj.
Властивості об'єктів, виклики функцій та обробка виключень API користувача уніфіковано.
SYS.TVarObj: Додано функцію propList() для можливості сканування атрибутів.
DAQ.JavaLikeCalc:
Додано функції до API користувача: insert(), replace(), toReal(), toInt(), parse(), parsePath() та path2sep() до об'єкту значень строкового типу.
Додано функцію isEVal() до базових типів, з метою виявлення EVAL-значень.
Special.FLibComplex1: Функція ПІД розширено новими параметрами: Kd, Tzd та followSp. Видалено параметр Tf.
Об'єктне API програмування користувача:
SYS: Функції API користувача: system(), message(), XMLNode(), cntrReq(), time(), localtime(), strftime(), strptime(), cron(), messDebug(), messInfo(), messNote(), messWarning(), messErr(), messCrit(), messAlert(), messEmerg() та strFromCharCode() додано до корневого об'єкту ядра OpenSCADA.
DB: Функцію API користувача SQLReq() додано до об'єкту БД.
Transport: Функцію API користувача messIO() додано для об'єкту вихідного транспорту.
UI.VCAEngine:
Додано функції API користувача: user(), alrmSndPlay() та alrmQuittance() до об'єкту сеансу проекта.
До об'єкту "Widget" додано функції API користувача: ownerSess(), ownerPage(), ownerWdg(), attrPresent(), attr(), attrSet(), wdgAdd(), wdgDel(), link() та linkSet().
Додано спеціальний атрибут "this" до всіх скриптів СВК з метою доступу до об'єкту віджету та наступного виклику його функцій API користувача.
Archives: Функцію API користувача messGet() додано для об'єкту підсистеми "Архіви".
DAQ.Value: Додано функції API користувача get() та set() для атрибутів.
5 Загальносистемні розширення.
До загальносистемного API системи OpenSCADA було внесено значні зміни та розширення з метою підвищення функціональності та загальної стабілізації:
SYS:
Додано механізм запобігання повторному запуску у скрипти: demo-start та user-start.
Додано глобальні функції для створення(реєстрації) taskCreate() та закриття taskDestroy() потоків. Всі компоненти OpenSCADA використовують нове API.
Додано файли debian/* для підтримки побудови Debian пакетів.
Додано функцію strParse() для розширення функції strSepParse() на предмет підтримки багатосимвольних роздільників та поєднання односимвольних.
Додано інфраструктуру лічильників налагодження.
Додано можливість призначення процесорів для потоків OpenSCADA на багато-процесорних системах та багато-ядерних процесорах.
Додано менеджер завдань. Додано поле ідентифікатору процесу потоку до менеджеру завдань.
Для реалізації специфічних функцій додано обгортку над завданнями OpenSCADA. Додано обробку виключень "TError" для завдань всередині обгортки.
Код ядра системи OpenSCADA поміщено у область імен "OSCADA". Версія бібліотеки ядра OpenSCADA підвищено до 1:0:0.
Уніфіковано права доступу до всіх елементів інтерфейсу керування.
Додано перевірку на версію більш за 2.0 утиліти збору libtool. Включено збір тільки поділяємих бібліотек для модулів.
Ідентифікатор модуля розташовано до класу конструктору з метою спрощення ініціалізації перекладу текстових повідомлень модулів.
Для всіх перекладів використано утиліту xgettext "-C --no-location --no-wrap -k_". Використано для очищення сміття файлів перекладів.
Версії API всіх модульних підсистем встановлено у 5.
SYS.Function, DAQ.BlockCalc, DAQ.LogicLev, UI.VCAEngine: Додано механізм контролю за змінами параметрів контролерів підсистеми "Збір даних".
DB:
Додано автоматичне відкриття наявних таблиць за запитом до них.
Додано керування транзакціями до функції sqlReq(), а також додано функцію transCloseCheck().
TFunction, DAQ.JavaLikeCalc: Додано вкладений контекст функцій з метою підвищення продуктивності зовнішніх викликів.
DAQ: Код помилки додано до стану контролера, що дозволяє ідентифікувати стан та відображати його.
Protocol, Transport, DAQ.ModBus, Protocol.UserProtocol: Додано функцію itemListIn() для вибору елементів протоколу. Додано вибір елементів протоколу за посередництвом функції TProtocol::itemListIn().
Переклад триває
6 Значительные улучшения и исправления отдельных модулей.
В процессе работы над данным промышленным релизом значительных изменений, улучшений и стабилизации претерпели отдельные модули OpenSCADA:
DB.MySQL:
Добавлена поддержка неограниченных значений типов данных "Вещественное" и "Целое".
Добавлено преобразование значения EVAL для вещественного типа.
DB.SQLite: Улучшен механизм транзакций для поддержки внутри пользовательских SQL-запросов и закрытия старых транзакций.
DB.FireBird: Добавлена поддержка многоязыковости текстовых переменных. Унифицирована поддержка транзакций.
DAQ:
DAQGate: Добавлена поддержка возможности запроса отдельных атрибутов. Использовано для запроса архивируемых и часто запрашиваемых атрибутов. Все остальные атрибуты запрашиваются с периодом синхронизации путём полного запроса. Используется для уменьшения нагрузки и времени при обмене DAQGate с удалённой OpenSCADA станцией.
ICP_DAS: Добавлен статус DIP-переключателя для ПЛК LP-8781. Функции отправки сообщений по последовательному интерфейсу перемещены в общую функцию serReq() и все запросы используют её.
ModBus: Добавлены суффиксы "i2,i4,f,b0" к регистрам (R и RI) для гибкого доступа посредством различных типов данных.
JavaLikeCalc:
Добавлена поддержка обзорного цикла для сканирования свойств объекта "for( <i> in <obj> ) <code>;".
Свойства объектов, вызовы функций и обработка исключений пользовательского API унифицировано.
Transport:
Serial:
Добавлена возможность выбора типа управления потоком. Поддерживается аппаратное (CRTSCTS) и программное (IXON IXOFF) управление потоком.
Добавлена поддержка режима модема для всех входных и выходных транспортов.
SSL:
Добавлена поддержка KeepAlive лимитов. Добавлена поддержка переподключения после потери соединения и для предотвращения потери сообщений.
Добавлено получение адреса отправителя.
SSL, Sockets: В исходящий транспорт добавлены тайминги для отдельного управления временем соединения и временем последующих ответов.
Protocol.HTTP:
Добавлена функция исходящего протокола.
Добавлена поддержка автоматического входа.
Archive.FSArch: Добавлено создание информационных файлов упакованных архивов, без хранения этих данных в БД. Эта функция позволяет обеспечить быстрое подключение больших архивов к другим станциям.
UI.QTCfg:
Добавлена подстройка строк для таблиц, после добавления новых строк. Добавлена поддержка копирования содержимого таблицы в буфер обмена.
Добавлена функция поиска по элементу "TextEdit".
Добавлена возможность копирования списка выбранных узлов.
7 Формирование документации и переводы документации и интерфейса.
Поскольку данный релиз позиционируется как промышленный релиз с продолжительным периодом поддержки то к его выходу было закончено написание, на Русском языке, а также перевод на Английский язык, всей основной документации. Кроме того завершён перевод интерфейса программы на Английский, Русский, Украинский и Немецкий языки:
Добавлен перевод README на Украинский.
Добавлен перевод документа DAQ и обобщающего документа на Английский.
Добавлен документ "Быстрый старт".
Выполнен перевод документа "Быстрый старт" на Английский язык.
Общий документ "OpenSCADA" на Английском обновлен для включения частей "Быстрый старт" и DAQ.OPC_UA.
Обновлен перевод интерфейса ядра системы на Русский, Украинский и Немецкий языки.
Для всех переводов использовано параметры утилиты xgettext "-C --no-location --no-wrap -k_". Использовано для очистки от мусора файлов переводов.
8 Унификация демонстрационной БД.
В процессе подготовки промышленного релиза значительное внимание было уделено улучшению демонстрационной БД, как яркой демонстрации функций системы OpenSCADA:
Значительное обновление для поддержки новых возможностей и включения новых улучшений из системы автоматизации шаровых мельниц.
Добавлена поддержка пользовательского вызова демонстрационной БД в полноценном режиме на запись.
Добавлено масштабирование существующих элементов в случае отсутствия строк и колонок для обзорного кадра и сводной таблицы.
Обновлено для включения новых моделей аппаратов технологических процессов и адаптации всех остальных моделей.
Обновлено для:
Добавления объектов сигнализации компрессоров: KM201, KM301, KM202 и KM302.
Поддержки ручного ввода переменных с панели управления.
Обновления перевода.
Исправления нескольких ошибок.
Скрипт главной страницы проекта переписан для использования новых функций пользовательского API.
Использован новый механизм доступа к элементам пользовательского интерфейса. Предоставлен реальный доступ на чтение для простого пользователя ("user").
9 Решения, построенные на основе OpenSCADA
На основе проекта OpenSCADA построен фактически весь спектр решений автоматизации, которые ярко демонстрируют возможности, а также являются сигналом готовности системы для широкого промышленного применения.
В целом на основе OpenSCADA авторами проекта решались задачи: полного динамического моделирования технологических процессов (ТП), управление ТП на уровне программируемого логического контроллера (ПЛК) и формирование человеко-машинного интерфейса ТП.
Моделирование ТП представлено решениями: «Библиотека моделей аппаратов технологических процессов», «Динамическая модель реального времени Анастасиевской ГЛКС» и «Динамическая модель парового котла №9 ДМК». Причём решение «Динамическая модель реального времени Анастасиевской ГЛКС» было положено в основу демонстрационной БД проекта и распространяется со всеми дистрибутивами OpenSCADA.
Сфера управления ТП на уровне программируемого логического контроллера (ПЛК) представлена решениями: «OpenSCADA в программируемом логическом контроллере (ПЛК)» и «Среда исполнения ПЛК LP-8x81 фирмы ICP DAS на основе OpenSCADA».
Сфера формирование человеко-машинного интерфейса ТП представлена решениями: «Библиотеки графических элементов пользовательских интерфейсов» и «АСУ ТП шаровых мельниц ШБМ 287\410 котлоагрегата БКЗ 160–100 ПТ».
Нужно также отметить наличие ряда решений, не вошедших в вышеприведенный перечень, и выполненных разработчиками системы для третьих лиц или непосредственно её пользователями.
Заключение
Система OpenSCADA готова для практического использования в сложных промышленных условиях и выполнения широкого спектра задач автоматического управления технологическими процессами.
С целью предоставления качественного сервиса на основе решений OpenSCADA, а также развития в направлении поддержки специализированного оборудования, протоколов и интерфейсов; разработчиками планируется, и активно ведётся, работа по формированию политики предоставления услуг на коммерческой основе. В число коммерческих услуг будет входить: техническая поддержка, консультации и целевая разработка расширений, интеграция и внедрение решений, а также разработка специализированных решений и продуктов на основе OpenSCADA.
Версия 0.7.0 предоставляет решения OpenSCADA только для платформы Linux x86 и x86_64. Для осуществления поддержки других аппаратных и программных платформ, запланированных проектом, работа будет продолжена. Так к версии 0.8.0 планируется расширить поддержку аппаратных платформ минимум на платформу АРМ, как представителя RISC архитектур.
В появлении первой промышленной версии системы OpenSCADA активное участие приняли:
Савоченко Роман: Основной объём работ по проектированию, разработке, документированию и тестированию.
Лысенко Максим: Разработка примитива "Элементарная фигура" среды визуализации и управления (СВУ), создание модуля поддержки БД PostgreSQL и перевод большей части документации на Английский язык.
Яшина Ксения: Разработка примитива "Элементарная фигура" СВУ.
Попкова Ирина: Перевод интерфейса системы OpenSCADA и её модулей на Немецкий язык.
Алмаз Каримов: Разработка модуля поддержки протокола DCON и активное тестирование.