Понимание переменных Node, Flow, Global в U-Logic

U-Logic (редактор программы управления) не требует особых знаний в области кодирования. Но такие термины, как global-переменные и flow-переменные, с первого взгляда непонятны. Здесь разобраны переменные U-Logic.

Понимание переменных U-Logic

Переменные бывают разных типов: сообщения, контекста и среды. Переменные сообщения связаны с отдельными сообщениями, пока те проходят по потоку (рабочему листу программы, вкладке). Переменные контекста хранят состояние приложения: это переменные узла, потока и глобальные переменные. Переменные среды хранят конфиденциальные данные конфигурации, например ключи API, чтобы они случайно не раскрылись в потоке.

Изучение глобальных переменных

Глобальные (global) переменные доступны узлам (блокам программы U-Logic) function, change, inject и switch в пределах одного экземпляра U-Logic. В них хранят данные, которые нужны в разных частях приложения. Это нужно, когда данные общие для нескольких потоков или вкладок одного экземпляра U-Logic.

Например, в системе домашней автоматизации есть потоки для освещения, безопасности и климат-контроля. Глобальные переменные могут хранить пользовательские или системные настройки: все потоки читают и обновляют их. Поэтому поведение во всей системе одинаковое.

Инициирование/установка глобальной переменной

Глобальные переменные задают в узлах function и change.

В узле change переменная задаётся, как показано на рисунке ниже.

Set global variable

Чтобы задать глобальную переменную в узле function, используйте метод set:

global.set('variableName', value);

Извлечение глобальной переменной

В узлах change, inject и switch глобальные переменные извлекают похожим образом: выберите опцию «global» и введите имя переменной в поле ввода. Так это выглядит в узле change:

Get global variable

Чтобы получить глобальную переменную с помощью узла function, используйте метод get, как показано ниже:

global.get('variableName');

Удаление глобальных переменных

Глобальные переменные удаляют на вкладке «Контекстные данные» или в узле change. Так это выглядит в узле change:

Delete global variable

Изучение переменных потока

Переменные потока (flow) доступны узлам function, change, inject и switch. С их помощью узлы одного потока (вкладки) обмениваются данными.

Например, в системе мониторинга температуры несколько датчиков отправляют данные на разные узлы в одном потоке. Переменные потока передают текущие показания температуры между узлами для обработки и анализа в этом потоке.

Инициирование/установка переменной потока

Переменные потока задают в узлах function и change.

В узле change переменная задаётся, как показано ниже.

Set flow variable

Чтобы задать переменную flow в узле function, используйте метод set:

flow.set('variableName', value);

Извлечение переменной потока

Переменные потока извлекают в узлах function, change, inject и switch.

В узлах change, inject и switch это делается похоже: выберите опцию «поток» и введите имя переменной в поле ввода. Так это выглядит в узле change.

Get flow variable

Чтобы получить переменную потока в узле function, используйте метод get:

flow.get('variableName');

Удаление переменных потока

Переменные потока удаляют на вкладке «Контекстные данные» или в узле change. Так это выглядит в узле change:

Delete flow variable

Изучение переменных узла

Переменная узла (node) принадлежит одному узлу и видна только внутри него. Читать или записывать её извне узла, где она создана, нельзя. Поэтому в ней хранят данные одного узла, чтобы они не мешали другим узлам.

Например, вы вставляете отправленные данные в базу данных вместе с уникальным идентификатором для каждой отправки. Счётчик для идентификатора можно хранить в переменной узла function.

Инициирование/установка переменной узла

Чтобы задать переменную узла в узле function, используйте метод set:

context.set('variableName', value);

Этот метод устанавливает значение для контекстной переменной с указанным именем.

Извлечение переменной узла

Чтобы получить переменную узла в узле function, используйте метод get:

context.get('variableName');

Удаление переменных узла

Чтобы удалить переменную узла, используйте опцию удаления на вкладке «Контекстные данные» в разделе «Узловой».

Вкладка «контекст»

Все переменные U-Logic можно просматривать и ими управлять на вкладке «контекст» боковой панели. Там есть разделы для узловых, потоковых и глобальных переменных. В правом верхнем углу каждого раздела находится значок обновления: нажмите его, чтобы увидеть последние или недавно добавленные переменные.

На этой вкладке видно, когда каждая переменная была установлена или обновлена. Справа от каждой переменной есть четыре опции: первая копирует имя переменной, вторая копирует значение, третья обновляет переменную, чтобы показать последнее значение, четвёртая удаляет переменную.