Логическая связь между реализацией функции и ее использованием в программах проекта ISaGRAF осуществляется через имя функции. Служба объявления добавляется в исходный “C” код функционального блока. Эта служба вызывается только один раз, когда приложение стартует и сообщает ядру ISaGRAF имя, которое соответствует реализованной службе. Вот стандартный формат такой службы объявления:
*initproc = (IBP)FBINIT_xxx; /* initialization service */
*readproc = (RBP)FBREAD_xxx; /* read service */
return ((ABP)FBACT_xxx); /* activation service */
}
/* xxx is the name of the function block */
Имя функционального блока, использующееся оператором strcpy, должно быть написано заглавными буквами. Оно должно быть написано маленькими буквами в реализации служб и в имени службы объявления.
Использование префиксов ”FBACT_”, ”FBINIT_”, ”FBREAD_” и “fbldef_” для реализации служб и определения службы позволяет пользователю именовать функции ключевыми словами языка “C” или именами существующих функций из “C” библиотек ISaGRAF. Никакие другие операторы нельзя добавлять в службу объявления.
Служба объявления вызывается для любого интегрированного функционального блока, даже если он не используется в приложении ISaGRAF. Ядро ISaGRAF выдает ошибку, если в приложении используется не реализованный функциональный блок.
Прежде чем линковать новые функциональные блоки с ядром, пользователь должен написать другой файл с исходным текстом, под именем “GRFB0LIB.C” и вставить его с сохраненным функциональным блоком в список файлов для линкера. “GRFB0LIB.C” содержит только массив служб объявления. Этот массив читается во время инициализации приложения, для того чтобы создать динамические связи с функциональными блоками написанными на “C”.