Порядок исполнения и передачи данных

<< Click to Display Table of Contents >>

Navigation:  Работа в режиме исполнения >

Порядок исполнения и передачи данных

В исполнительной системе можно определить следующие задачи.

Задачи

Настройка

Назначение

Задачи узла

Панель свойств элементов Основная задача, Задача группы узла Задачи.

Созданный пользователем в среде разработки проект (программы, параметры, обьекты и т.п.) перед загрузкой в среду исполнения преобразуется (компилируется). В результате компиляции вся логика работы проекта, независимо от того на каком языке она была написана разработчиком проекта, преобразуется в специальную программу, которая будет загружаться в устройство и там  циклически исполняться. Количество программ зависит от количества задач, созданных в дереве системы в данной группе. По умолчанию, у каждого узла при его создании создается только одна задача - Основная задача. Разработчик проекта может создать столько задач, сколько необходимо для работы конкретного проекта. Особенности вычисления, например, цикл вычисления, будет зависеть от настроек той или иной задачи.  Каждая задача будет работать независимо от других задач в устройстве. Создание нескольких задач будет целесообразно в том случае, если необходимо обеспечить разные циклы вычисления разных программ проекта.

Задачи протоколов

Панель свойств Протоколов, категория Задача

Для получения и отправки данных по каждому из протоколов создается отдельная задача. Каждая задача будет работать со своим периодом. Если в протоколе была создана программа, то период работы будет также зависеть от периода настроенного в протоколе.

Задачи SLAVE-протоколов

Включение задач производится в панели свойств Узла

Если MasterSCADA 4D выступает в роли сервера, например, передает данные по протоколу OPC UA, то создается для каждого протокола своя задача. Исполнительная система постоянно слушает запросы клиента и отправляет данные согласно этим запросам, т.е. период задачи в MasterSCADA 4D не настраивается.

Сохранение состояния

Панель свойств элемента Сохранение состояния узла, категория Задача

Служебная задача Сохранение состояния - используется для восстановления значений после перезагрузки среды исполнения. Как правило, применяется для того, чтобы значения уставок  после перезагрузки проекта  в среде исполнения приняли значения, введенные оператором либо полученные в результате работы программ в предыдущей сессии. Сохраняются те значения параметров, в настройках которых установлено свойство Сохранять=Да. Задача работает независимо от других задач. Период сохранения зависит от настроек, сделанных в панели свойств службы. Служебная задача

Межузловая связь

Панель свойств элемента Межузловая связь узла, категория Задача

Служебная задача используется для передачи данных между разными узлами, на которых установлена исполнительная система MasterSCADA 4D RT и настроена связь между параметрами.

Если есть связь между узлами (по прямой связи параметров в проекте или сгенерированная автоматически при использовании в окне одного узла параметров другого узла), то при чтении служба в узле проверяет наличие изменения или величины значения или метки времени. Если изменилась любая из этих характеристик, то только тогда значение передается по межузловой связи. Все данные, передаваемые через службу межузловой связи, шифруются по протоколу TLS 1.3.

Резервирование

Панель свойств элемента Резервирование узла, категория Задача

Служебная задача используется для обмена данными при резервировании серверов. Задача работает независимо от других задач, в зависимости от настроек сделанных в службе

Архивирование

Панели свойств элементов, которые находятся в группе Архивы узла

Задачи создаются исполнительной системой для работы с базой данных, в которой хранятся архивы, накопленные во время работы. Для работы с базой, где хранятся данные и базой, где хранятся сообщения, создаются отдельные подключения. Помимо этого  количество задач (потоков подключения к БД) зависит от настройки Максимальное количество одновременных подключений, каждого из элементов находящихся  в группе Архивы узла. Задача работает независимо от других задач, в зависимости от настроек сделанных в настройках архивов.

Каждая задача работает в одном или нескольких потоках ОС. Потоки распределяются на разные ядра процессора, либо ОС переключает потоки через определенные кванты времени.

Порядок исполнения и обработка данных в рамках одной задачи

Сначала выполнится присвоение значений параметров связанных напрямую в дереве объектов. Затем произойдет вызов программ: чтение данных, необходимых для работы, затем отработка алгоритма программы, запись значений в связанные параметры параметров

Если элементы исполняются в одной и той же задаче узла, то первым исполнится тот элемент, который находится выше в дереве MasterSCADA 4D: присвоение параметров в дереве произойдет сверху вниз, а затем выполнятся программы сверху вниз. Изменить порядок элементов в дереве можно при помощи контекстного меню элемента и горячих клавиш CTRL+ debug_trmd6img364, CTRL+ debug_trmd6img365. Подробное описание смотрите в разделе Дерево MasterSCADA 4D.

Если объект имеет дочерние объекты, то сначала выполнятся присвоения связанных параметров по всем объектам (родительскому и дочерним), а затем выполнятся по очереди все программы, принадлежащие этим объектам - сначала родительские сверху вниз, а затем дочерних тоже сверху вниз.

Передача данных между задачами

Обмен данными между задачами осуществляется либо через параметры узла (глобальные переменные), либо через прямой доступ связывая переменные без использования параметров узла или глобального массива.

Передача данных через прямой доступ

В качестве примера рассмотрим проект, показанный на скриншоте ниже:

poryadok_ispolneniya_i_peredachi_dannih

На скриншоте можно увидеть, что проект содержит две задачи. Объект 1 назначен в Основную задачу, Объект 2 назначен в Задачу 1. Параметр 1_3, находящийся в Объекте 1, передает значение через прямой доступ в Параметр 2_1, находящийся в Объекте 2. И после выполнения Программы_FBD_2, находящейся в Объекте 2, выходное значение записывается в Параметр 1_4, находящийся в Объекте 1.

Глобальные переменные

Глобальные переменные (параметры узла), доступные всегда для всех задач, могут в проекте использоваться двумя способами:

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

прямой вызов в программе ST - в этом случае отработка произойдет непосредственно в момент чтения или записи

Передача данных между узлами через прямой доступ

Если в настройках среды на вкладке Компиляция установлен флаг Разрешить прямой доступ к параметрам проекта, то можно использовать прямой доступ к параметрам проекта для межузловой связи. Это значит, что можно установить связь между параметром объекта, назначенного в другой узел, и входом ФБ программы без создания промежуточных параметров программ в клеммниках.

Рассмотрим использование прямого доступа для межузловой связи на примере:

Проект содержит два узла: АРМ 1 и АРМ 2.

В каждый узел назначен объект:

Объект 1 -> АРМ 1;

Объект 2 -> АРМ 2.

В каждый объект был добавлен параметр типа LREAL:

Параметр 1 -> Объект 1;

Параметр 2 -> Объект 2.

В Объект 1 была добавлена программа FBD с функцией ADD. На входы функции передаются значения параметров 1 и 2 без создания промежуточных параметров на клеммниках программы. В этом случае путь, по которому идет обращение к параметрам формируется по разному:

для Параметра 1 по относительному пути;

для Параметра 2 по полному пути.

poryadok_ispolneniya_i_peredachi_dannih_1

Передача архивных данных между узлами

С периодичностью, заданной настройкой узла Период запроса архивных данных, по каждому параметру отправляется асинхронный запрос на чтение архива, начиная с последнего полученного значения. Далее данные читаются порциями, размер которых определяется настройкой узла Количество передаваемых архивных значений.  Данный процесс продолжается до тех пор, пока не закончатся новые данные или не истечет время, установленное в настройке Таймаут запроса архива для данного параметра.

Порядок получения и передачи данных между клиентом визуализации и исполнительной системой

При открытии окна клиент подписывается к исполнительной системе на получение необходимых данных. Исполнительная система будет присылать данные в зависимости от периода той задачи, в которой запрашиваемые данные обрабатываются. Обновляться данные в окне будут с периодом, указанных в настройках Шаблона экрана.