ktcam
Junior Member / Новичок
Участник № / Member № 37
отправлено / posted
В проектах часто используем IL-программы для реализации специальных алгоритмов обработки данных. В каких случаях предпочтительно вызывать IL-программу как FBD-блок, и в каких- как метапрограмму??
Из описания следует, что метапрограмма выполняется параллельно с пересчетом базы каналов, и можно предположить, что при данном способе вызова IL-программы увеличивается быстродействие. Так ли это?
С другой стороны, даже если IL-программа выполняется в отдельном потоке от пересчета базы каналов, он все-равно синхронизирован с потоком пересчета каналов INPUT OUTPUT, т.е. является аналогом процедуры ТРАНСЛЯЦИИ, УПРАВЛЕНИЯ. Разница только в том, что IL-программа выполняется в отдельном потоке ??
отправлено / posted
Метапрограмма не выполняется в отдельном потоке, она пересчитывается в такте пересчета базы каналов. Один цикл пересчета базы каналов включает в себя четыре такта:
Пересчет всех каналов типа INPUT, кроме каналов подтипов КАНАЛи ОБЪЕКТ. При этом для каждого канала последовательно выполняется процедура ТРАНСЛЯЦИИ входных значений этих каналов в аппаратные и реальные значения и процедура УПРАВЛЕНИЕ;
Пересчет каналов типа INPUT подтипов КАНАЛ и ОБЪЕКТ (при этом для каждого канала последовательно выполняются процедура ТРАНСЛЯЦИИ входных значений этих каналов в аппаратные и реальные значения и процедура УПРАВЛЕНИЕ) и выполнение процедуры УПРАВЛЕНИЕ для всех каналов, пересчитываемых на этом цикле;
Вычисление метапрограмм, написанных на Техно IL;
Пересчет каналов типа OUTPUT (трансляция ВХОДНОГОзначения в РЕАЛЬНОЕ и АППАРАТНОЕ).
Один цикл пересчета включает в себя три прохода по базе каналов. Эти проходы реализуются на первом, втором и четвертом тактах пересчета. На этих проходах выполняются соответствующие процедуры каналов при выполнении условий их пересчета.
Таким образом, FBD-блок, реализованный на Techno_IL, будет пересчитываться на процедурах Управление и Трансляция (такты 1, 2 или 4 - в зависимости от типа канала: INPUT или OUTPUT), а метапрограмма в 3-м такте цикла пересчета базы каналов.