![](https://cv01.studmed.ru/view/fabd0fac512/bg52.png)
Основы проектирования структуры программы
Programming with STEP 7 V5.3
4-18 A5E00261405-01
Функции (FC) не имеют памяти. Поэтому, в отличие от FB, назначение
формальных параметров FC является обязательным и весьма
существенным. Параметры FC доступны через адреса (указатели на объект
за пределами области функции). Когда адреса области данных (блок данных)
или локальная переменная вызывающего блока используется как актуальный
параметр, копия актуального параметра сохраняется временно в области
локальных данных
вызывающего блока для передачи параметра.
Внимание:
В таком случае, если данные не пишутся в выходной параметр FC, блок
может выдать случайное значение!
В этом случае в область локальных данных вызывающего блока, которая
зарезервирована для копирования не назначенного выходного параметра,
данные не пишутся. Поэтому, они остаются неизменными и сохраняется
случайная величина, так как локальные данные автоматически не
устанавливаются
в «0» по умолчанию.
Соблюдайте следующие пункты:
• Если возможно, инициализируйте параметры OUTPUT.
• Инструкции установки и сброса зависят от RLO. Когда эти инструкции
используются для определения величины параметра OUTPUT, величина
не задана, если результат предыдущей логической операции RLO=0.
• Всегда убеждайтесь, что данные записаны в параметр OUTPUT -
безотносительно к любому пути программы в блоке. Обратите особое
внимание на команды переходов
, выход ENO в LAD и FBD, а также BEC
(условный конец блока) и зависимость от инструкций MCR (Master Control
Relay).
Замечание
Несмотря на то, что параметры OUTPUT блока FB или параметры INOUT
блока FC и FB не будут выводится как случайные величины (старое значение
выхода –или значение входа как выходная величина – поддерживаются даже
если данные не записаны в параметр), следует выполнять перечисленные
выше пункты, для того чтобы избежать случайной обработки "старой"
величины.
4.2.3.3 Функциональные блоки (FB)
Функциональные блоки (FB) относятся к блокам, которые Вы программируете
сами. Функциональный блок – это логический блок "с памятью". В качестве
памяти ему назначается блок данных (экземплярный блок данных). В
экземплярном DB сохраняются параметры, передаваемые FB, и статические
переменные. Временные переменные хранятся в стеке локальных данных.