ISaGRAF. Version 3.4


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


Порядок нумерации возвращаемых параметров тот же который был установлен в определении функционального блока. Логический номер первого возвращаемого параметра всегда равен 0.

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

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

       Исходный текст

Реализация функционального блока на “C” делится на три входные точки:

службы инициализации

службы активизации - обработка параметров вызова

службы чтения возвращаемых параметров

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

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

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

Функциональная схема:

·       Статические данные функционального блока

Функциональный блок связывает операции и статические данные. С каждым экземпляром одного и того же функционального блока связана структура данных. Каждый раз, когда функциональный блок используется в программах ST или FBD, он соответствует одному экземпляру и одной структуре данных.


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