ISaGRAF. Version 3.4


“C” функциональные блоки - часть 13


Вот пример такого файла:

/* Файл: grfb0lib.c - implemented function blocks */

 

#include <tasy0def.h>

 

extern ABP fbldef_fb1(char *name, IBP *init, RBP *read);

extern ABP fbldef_fb2(char *name, IBP *init, RBP *read);

 

FBL_LIST FBLDEF[ ] = {

             fbldef_fb1,

             fbldef_fb2,

 

NULL };

 

/* конец файла */

Массив FBLDEF должен заканчиваться указателем NULL. Если это условие не выполнено, то могут возникнуть некоторые проблемы. Если массив FBLDEF не определен, то во время линковки нового ядра ISaGRAF появятся неразрешенные ссылки.

Написав этот файл, можно построить новое ядро, включая все существующие функции. Можно, также построить ядро, приспособленное для одного проекта, путем введения в массив FBLDEF только тех преобразований, которые используются в проекте. Файл “GRFB0LIB.C” автоматически генерируется генератором кодов ISaGRAF, когда создается код приложения. Файл помещается в директорию проекта ISaGRAF и объединяет только те функции, которые используются в проекте.

       Ограничения

Библиотека ISaGRAF может содержать до 255 “C” функциональных блоков. Функция может выполнять любой тип операции. Каждый тип функционального блока может быть скопирован (сделано экземпляров) до 255 раз в одном проекте.

Необходимо заметить, что  функциональные блоки вызываются в цикле ISaGRAF синхронно, так что выполнение функционального блока оказывает непосредственное влияние на временной цикл.

       Полный пример

Ниже представлен пример функционального блока “sample”, который выполняет счет вверх.

Техническое замечание:

имя:                    Sample                                             

описание:          счетчик вверх

дата:                  18 мая 1995

автор:                CJ International

вызов:               CU: считающийся вход

                        R:    команда сброса

                           PV:  максимальная планируемая величина

возврат:            Q: определение максимума

                           СV: результат счета




- Начало -  - Назад -  - Вперед -