WEB-платформа для контролю роботи і збору даних теплових насосів
Платформа диспетчеризації складається із таких частин:
Призначення комунікаційного модулю – зв'язок з пристроями, вичитування та запис параметрів з/на пристрій, збереження інформації в базу даних.
Призначення веб інтерфейсу – керування обліковими записами користувачів, відображення інформації про пристрої з бази даних, внесення змін в пристрої через комунікаційний модуль.
База даних служить для зберігання інформації про пристрої та користувачів. А також для накопичення статистичної інформації щодо роботи пристроїв. Тип бази даних визначає розробник в залежності від потреб в реалізації програмного забезпечення.
Можливий варіант розподілення бази даних на різні за призначенням компоненти – БД параметрів та значень пристроїв, БД реєстр пристроїв, БД реєстр користувачів.
Комунікаційний модуль та веб інтерфейс взаємодіють між собою через базу даних.
Передача даних здійснюється через TCP IP. За основу формату передачі даних взятий протокол ModBus ASCII. Ініціатором зв’язку виступає пристрій. Він підключається до серверу по заданому порту. Сервер ідентифікує пристрій та тримає канал зв’язку відкритим увесь час. При відсутності передачі даних на протязі певного часу сервер розриває зв’язок.
Усі дані, що передаються між пристроєм та сервером поділяються на 2 групи:
-службові фрейми
-фрейми даних
Ініціатором зв’язку між пристроєм та сервером виступає пристрій. Пристрій підключається до серверу по заданому порту та відправляє службовий фрейм з ідентифікатором та версією ПЗ. Сервер реєструє пристрій як «online».
При підключенні пристрою та наявності пристрою в мережі з таким же ідентифікатором, зв’язок зі старим пристроєм закривається.
Якщо на протязі певного часу між пристроєм та сервером не відбувається передача даних, з’єднання закривається і пристрій переходить в статус «offline». Для забезпечення постійного каналу зв’язку та його контролем служить алгоритм «пінг-понг». При відсутності на протязі певного часу передачі даних, пристрій відправляє на сервер рядок статусу. Сервер відповідає цим же рядком. Для пристрою не важливо що приходить від серверу в якості відповіді, якщо приходить рядок формату ModBus ASCII, пристрій відповідає згідно протоколу, на всі інші запити пристрій не відповідає.
При запиті від сервера до пристрою в форматі ModBus ASCII відповідь від пристрою є обов’язковою. Якщо на протязі певного інтервалу пристрій не відповідає, зв’язок вважається втраченим, сервер закриває канал зв’язку та чекає на повторне підключення пристрою.
Період опитування поточних параметрів – значень та період опитування налаштувань задаються для кожного пристрою окремо. Параметри зберігаються в БД в таблиці пристроїв та можуть змінюватися через інтерфейс керування усіма користувачами крім клієнта.
Основною задачею комунікаційного модуля є підтримка зв’язку із пристроями, опитування пристроїв запис параметрів на пристрій згідно алгоритму. Модуль повинен розрізняти пристрої по ідентифікатору та типу пристрою. Згідно типу вичитувати параметри пристрою, зберігати їх в базу даних в заданих форматах.
До додаткового функціоналу відноситься ведення статистики по зв’язку із пристроєм та ведення журналу повідомлень. Комунікаційний модуль фіксує підключення та відключення пристрою, зміну ПЗ пристрою, зміну інтервалів опитування, повідомлення з пристрою. По зафіксованим даним із інтерфейсу користувача має бути можливість проведення аналізу якості зв’язку (відсоток по часу онлайн або у вигляді графіку), перегляд журналу подій (зміна ПЗ та налаштувань) та журналу повідомлень.
Веб інтерфейс надає доступ користувачів до віддаленого моніторингу та керування пристроями.
Інтерфейс надає доступ користувачів до параметрів пристроїв в залежності від налаштувань. Крім моніторингу та керування параметрами пристрою, інтерфейс надає статистичну інформацію про роботу пристроїв, дії користувачів у вигляді журналів та інфографіки.
Доступ до веб інтерфейсу повинні мати тільки авторизовані користувачі. Для анонімних користувачів доступні можуть бути тільки такі розділи: «Довідка», «Як підключитися» та інша загальна інформація.
Користувачі поділяються на такі категорії:
Користувач має доступ до пристроїв підлеглих користувачів, може керувати підлеглими користувачами.
Користувач не має доступу до пристроїв інших користувачів.
В платформі диспетчеризації повинен бути передбачений платний та безкоштовний функціонал.
Кожен користувач системи має можливість поповнення балансу свого рахунку. Варіанти поповнення можуть бути різними: зарахування адміністратором на рахунок іншого користувача, автоматично через електронні платежі, через ваучери поповнення.
В кожного користувача є можливість перерахування коштів із свого балансу на баланс доступного йому пристрою. З балансу пристрою кошти знімаються автоматично щодоби. Виключенням може бути відсутність зв’язку із пристроєм протягом доби.
Безкоштовна версія функціоналу відрізняється від основної. Для клієнта доступні ті ж параметри, що і в основній версії, окрім статистики, графіків, журналів.
Для дилера та субдилера безкоштовна версія така ж як у клієнта: функціонал клієнта без графіків та журналів.
Реалізація платного та безкоштовного функціоналу буде проводитись в два етапи.
1 етап: Реалізація розділення функціоналу. На даному етапі реалізовується розділення функціоналу, розробляються окремі інтерфейси для кожного варіанту, передбачається подальша можливість підключення платіжних сервісів.
2 етап: Підключення платіжних сервісів, розробка алгоритму формування рахунків та автоматичного поповнення балансу. Типи платіжних сервісів та способи поповнення балансу рахунків визначає замовник в доповненні до технічного завдання або окремим технічним завданням.
Генерується самим пристроєм в залежності від його ПЗ. Потрібен для визначення які параметри та за якими адресами знаходяться. (для комунікаційного модулю) А також які параметри відображати (для веб серверу). При кожному підключенні пристрою проводиться перевірка версії ПЗ. При зміні версії поле обновляється.
Журнал помилок можна зберігати окремою таблицею БД. Кожен запис бази – це дата та час помилки плюс номер помилки.
При відображенні помилки потрібно замість коду (номеру) помилки відображати текстову назву.
Для поточних параметрів потрібна можливість графічного відображення параметрів (графіки, діаграми)