Среда разработки Unimod PRO 2 (версия 2.3.40)
 Руководство по программированию
×

Функциональные блоки


Функциональные блоки входят в состав структуры и содержат программный код для выполнения операций над данными. Функциональные блоки могут быть вызваны любыми программами, дочерними программами, а также функциональными блоками других структур. Вызов функционального блока в функциях недоступен.
Для вызова функционального блока предварительно требуется создать экземпляр структуры - объявить в соответствующем словаре переменную и указать в качестве типа данных структуру, функциональный блок которой будет использоваться.
После добавления экземпляра структуры можно вызвать функциональный блок через конструкцию вида:
<имя_экземпляра_структуры>.<имя_блока>(<параметр1>, …, <параметрN>);
Количество входных параметров не ограничено и может равняться нулю.
<имя_экземпляра_структуры>.<имя_блока>();
Программный компонент, вызвавший функциональный блок, приостанавливает свое выполнение до полного выполнения блока. При этом блоки могут возвращать несколько выходных значений, для доступа к которым необходимо обратиться к экземпляру структуры в отдельном выражении и после имени блока, через точку, ввести имя выходной переменой.
<переменная> := <имя_экземпляра_структуры>.<имя_выходной_переменной>;
//например, у экземпляра структуры local_var_0001 вызывается функционального блок
local_var_0001.function_block(5, 5);
//после вызова блока получаем доступ к его выходным параметрам
out_1 := local_var_0001.out_1;
out_2 := local_var_0001.out_2;
Локальные переменные для функционального блока.
Для каждого входного и выходного параметра функционального блока в локальном словаре данных структуры должна быть добавлена переменная с соответствующим атрибутом "Вход" или "Выход". Внутренние локальные переменные не доступны за пределами структуры и используются в функциональных блоках для временного хранения промежуточных результатов вычислений. Использование типов данных в структурах не ограничено.
Область видимости данных.
Из функционального блока доступны все глобальные переменные, а также переменные из словаря данных текущего экземпляра структуры. При совпадении имен глобальных и локальных переменных, приоритетом обладает переменная из словаря данных структуры.
Доступные для вызова компоненты.
Из функционального блока могут быть вызваны функции и функциональные блоки других структур, при условии объявления в словаре данных структуры переменной с другим структурным типом. Функциональные блоки одной структуры не могут вызывать друг друга.