“C” функциональные блоки объединяют операции и статические данные. Они дополняют набор “C” функций, допуская обработку статических объектов. “C” функции, обычно, используются для расширения стандартных возможностей языков ST и FBD. В отличие от функций, они могут работать со статическими данными. Это означает, что алгоритм функционального блока может меняться с течением времени.
Функциональные блоки, написанные на языке “C” компилируются и линкуются с ядром ISaGRAF. Приращенное ядро должно быть инсталлировано на целевой PLC прежде, чем функция будет использована в проекте ISaGRAF. Новые функциональные блоки не могут быть интегрированы в симулятор ISaGRAF. Приложения ISaGRAF нужно симулировать до ввода нестандартных функций.
Предупреждение:
Функциональные блоки выполняют синхронные
операции, вызывающиеся ядром ISaGRAF, в цикле приложения. Время, затраченное на выполнение функции, включается во временной цикл ISaGRAF. В функциональном блоке не должно быть “операций ожидания”, которые неоправданно растягивают временной цикл ISaGRAF.
Функциональный блок - это объект, который объединяет операции и статические данные. Ниже представлен пример функционального блока R_TRIG, который определяет передний фронт булевского выражения. Вот его описание:
Скрытая статическая переменная “previous_state”
нужна для определения фронта. Эта переменная должна быть различной в каждом использовании функционального блока “R_TRIG” в приложении. Экземпляр функционального блока, используемого в языке ST, должен быть объявлен в словаре. Так как функциональный блок имеет внутренние скрытые данные, каждая копия (экземпляр) функционального блока должна быть идентифицирована уникальным именем. Наименование типа блока осуществляется при помощи менеджера библиотек. Наименование экземпляров осуществляется при помощи редактора словаря.
Функциональные блоки, использующиеся в языке FBD не нужно объявлять, потому что редактор FBD автоматически объявляет экземпляры используемых блоков.