ЛР1. Основи роботи з Node-RED

2. Знайомство з Node-RED

Програма створена на Node-RED складається з потоків (Flow), які виконуються як умовно незалежні програми. Потоки – це зв’язані між собою інформаційними дротами (wires)   вузли (Node), що виконують певну функцію. Таким чином, ідеологія програмування Node-RED дещо схоже на побудову програм на мові FBD, що є стандартною для програмування ПЛК (IEC 61131-3). Тим не менше, між цими мовами є значні відмінності.

2.1. Відкрийте в браузері редактор Node-RED, якщо він ще не відкритий. Ознайомтеся з його основними частинами (рис.1)

Детально про роботу з редактором Ви можете ознайомитися в інструкції користувача.

2.2. Виберіть з палітри і розмістіть на робочій області вузли

  • Input->inject
  • Output->Debug

З’єднайте їх між собою. Повинно вийти як на рис.2. Блакитні кружечки значать, що зміна в вузлах ще не відобразилася в середовищі виконання, так як змінена програма не була в ньому розгорнута.   

2.3. В заголовку виберіть пункт Deploy->Modified Nodes (див.рис.3), після чого  натисніть Deploy (Розгортання).

При вдалому розгортанні з’явиться повідомлення.

А в робочому просторі вузли вже будуть без блакитних кружечків. 

 

2.4. Для перевірки роботи програми, на бічній панелі треба відобразити вікно Debug messages (налагоджувальні повідомлення ) шляхом натиснення кнопки з «жуком».   

Ліворуч вузла типу Inject з назвою «timestamp» є кнопка, яка приводить до ініціювання розрахунку ланцюжка вузлів, що починаються з нього. Натисніть на цю кнопку.

В результаті з’явиться повідомлення про успішне вприскування (Inject) а на панелі повідомлень з’явиться повідомлення (рис.5).

На цьому прикладі розглянемо, як виконується програма.

У більшості випадків перерахунок вузлів починається тоді, коли на його вхід подається повідомлення (message). Повідомлення – це прості об’єкти (типу структурні змінні) JavaScript що можуть мати будь який набір властивостей. Тобто в даній програмі після перерахунку вузла з іменем «timestamp» буде сформовано об’єкт-повідомлення (msg) і переданий по дроту вузлу з іменем (msg.payload).

На вхід вузла з іменем «timestamp» повідомлення не надходять, бо він є ініціатором розрахунку. Всі вузли палітри що входять в групу Input є ініціаторами розрахунку. Ініціація вузлів типу Inject відбувається шляхом ручного запуску по кнопці, або через певні інтервали часу, що налаштовується у вузлі. Ініціювання повідомлення це формування полів msg та відправка його іншим вузлам по дротам. Повідомлення, надіслане вузлом Inject, має властивості payload (корисне навантаження) та topic (тема). За замовченням Inject записує у властивість topic відмітку часу (timestamp – кількість мілісекунд з 1980 року).

Вузол типу Debug «msg.payload» використовується для відображення повідомлень на бічній панелі Debug. Таким чином, після отримання повідомлення, цей вузол відображає його зміст на бічній панелі.

 

2.5. Змініть налаштування властивостей вузлів, як показано на рис.6: змініть імена вузлів, вкажіть тему (topic) та періодичність оновлення для вузла типу Inject. Вікно налаштування з’являється по подвійному кліку по вузлу.  

Зробіть розгортання, та проаналізуйте зміст виведених у вікні Debug повідомлень.

 

2.6. Змініть вузол «Початок» так, щоб він формував корисне навантаження текстом «Це текстове повідомлення»(рис.7), та проаналізуйте як воно виводиться на вікно Debug. 

2.7. Змініть вузол «Початок» так, щоб він знову формував корисне навантаження відміткою часу (Timestamp). Розгорніть (deploy) програму та проконтролюйте щоб відмітка часу кожні 5 секунд відображалася у вікні повідомлень 

Ознайомтеся з роботою вузлів типу change та delay в інструкції користувача.

Змініть програму, як показано на рис.8, використовуючи вузли delay (“delay 1s”…”delay 4s”) та change (“set1”…”set5”). Для вузлів delay виставте затримки:

  • delay 1s – 1 seconds
  • delay 2s – 2 seconds
  • delay 3s – 3 seconds
  • delay 4s – 4 seconds

Для вузлів change виставте правило рівним «set», та змініть властивості «to» на наступні текстові поля:

  • set1 – один
  • set2 – два
  • set3 – три
  • set4 – чотири
  • set5 – п’ять

Розгорніть (deploy) програму та проконтролюйте щоб кожної секунди у вікні повідомлень виводилося конкретне повідомлення від «один» до «п’ять».

2.8. Ознайомтеся з роботою вузлів типу function з інструкції користувача

Вузол function може обробляти повідомлення з використанням javascript. Змініть програму так, щоб відмітка часу виводилася в форматі дати та часу. Для цього використовується об’єкт типу Data та його метод  toLocaleString(). Зробіть розгортання та переведіть вузол “Debug1” в режим приховання повідомлень.

Про синтаксис javascript можна дізнатися тут http://яваскрипт.укр 

Про об’єкт Date можна прочитати тут http://яваскрипт.укр/Date або тут https://learn.javascript.ru/datetime