Логическая связь между реализацией функции
Логическая связь между реализацией функции преобразования и использованием преобразования в проекте ISaGRAF осуществляется через имя преобразования. Функция “объявления” добавляется в исходный “C” код функции преобразования. Эта функция вызывается только один раз, когда приложение стартует и сообщает менеджеру В/В имя преобразования, которое соответствует реализованной функции. Вот стандартный формат такой функции объявления:
UFP cnvdef_xxx (char *name)
{
strcpy (name, "XXX"); /* имя преобразования */
return (CNV_xxx); /* возвращает функцию преобразования */
}
/* (
xxx is the name of the conversion) */
Имя функции, использующееся оператором
strcpy,
должно быть написано заглавными буквами. Оно должно быть написано маленькими буквами в реализации функции преобразования и в имени функции объявления.
Использование префиксов
”CNV_” и
“cnvdef_” для реализации функции и определения функции позволяет пользователю именовать преобразования ключевыми словами языка “C” или именами существующих функций из “C” библиотек ISaGRAF.
В функцию объявления могут быть добавлены другие операторы для того, чтобы реализовать специфические операции инициализации связанные с этим преобразованием. Система ISaGRAF гарантирует, что эта функция вызывается только
однажды при запуске приложения.
Функция объявления вызывается для любой интегрированной функции преобразования, даже если она не используется в приложении ISaGRAF. Ядро ISaGRAF выдает ошибку, если в приложении используется не реализованная функция преобразования.
Прежде чем линковать новые функции с ядром, пользователь должен написать другой файл с исходным текстом, под именем
“GRCN0LIB.C” и вставить его с сохраненной функцией преобразования в список файлов для линкера.
“GRCN0LIB.C” содержит только массив функций объявления. Этот массив читается во время инициализации приложения, для того чтобы создать динамические связи с функциями преобразования написанными на “C”.
Содержание Назад Вперед