ISaGRAF. Version 3.4


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


Следующий пример показывает соответствие между структурами данных “C” и экземплярами функционального блока, использующимися в FBD программе:

Память, требующаяся для структуры данных каждого экземпляра, размещается системой ISaGRAF, при запуске приложения. Указатель на соответствующую структуру данных экземпляра передается в службы “активизации” и “чтения”.

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

·       Служба инициализации

Служба инициализации функционального блока вызывается ядром ISaGRAF при запуске приложения. Она позволяет “C” программисту запросить систему разместить память для экземпляра. Ниже - стандартная программа службы инициализации:

uint16 FBINIT_xxx (uint16 hinstance)

/* "xxx" is the name of the f. block */

{

   return (sizeof (str_data));

}

Аргумент “hinstance” - это логический номер экземпляра. Он резервируется ISaGRAF для внутренних операций и не должен использоваться для программирования службы. Служба инициализации возвращает количество байт памяти требуемое для данных одного экземпляра. Объем требуемой памяти (возвращаемое значение) не может превышать 64K. Никакие другие операции не должны выполняться в этой службе. Исходный текст этой службы автоматически генерируется менеджером библиотек ISaGRAF при создании функционального блока.

·       Служба активизации

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


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