ISaGRAF. Version 3.4

         

Вызовы функций и функциональных блоков


Стандартные ST вызовы функций  могут быть использованы для каждого из следующих объектов:

- Подпрограммы

- Библиотечные функции и функциональные блоки, написанные на IEC языках

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

- Функции преобразования типов

        Вызовы подпрограмм или функций

Имя:                              имя вызываемой подпрограммы или библиотечной функции написанной на IEC языке или “C”

                                     

Значение:                   вызывает ST, IL, LD, или FBD подпрограммы или функции или “C” функции и дает возвращаемое значение

                                     

Синтаксис:                 <variable> := <subprog> (<par1>,...<parN>);

Операнды:                 За типом возвращаемого значения и параметрами вызова должен следовать интерфейс определенный для подпрограммы

                                     



Возвращаемое значение:                значение возвращаемое подпрограммой

Вызовы подпрограмм могут быть использованы в выражении. Они также могут быть использованы в переходах SFC.

Пример 1: вызов подпрограммы

(* Основная ST программа *)

(* получает аналоговое значение и превращает его во временное значение *)

ana_timeprog := SPlimit ( tprog_cmd );

appl_timer := tmr (ana_timeprog * 100);

(* Вызывается FBD программа 'SPlimit' *)

Пример 2: Вызов функции

(* функции использующиеся в сложных выражениях: min, max, right, mlen and left - стандартные "C" функции *)

limited_value := min (16, max (0, input_value) );

rol_msg := right (message, mlen (message) - 1) + left (message, 1);

        Вызов функциональных блоков

Имя:                              имя экземпляра функционального блока

Значение:                   вызывает функциональный блок из библиотеки ISaGRAF или библиотеки пользователя и передает возвращаемые параметры

Синтаксис:                 (* вызвать функциональный блок *)

                                      <blockname> ( <p1>, <p2> ... );


                                      (получить возвращаемые параметры *)

                                      <result> := <blockname>. <ret_param1>;

                                      ...

                                      <result> := <blockname>. <ret_paramN>;

Операнды:                 Параметры и выражения, которые имеют тот же тип, что и параметры этого функционального блока

                                     

Возвращаемое значение:                См. Синтаксис получения возвращаемых параметров

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

Пример:

(*вызов функционального блока ST программой *)

(* объявить экземпляр функционального блока в словаре: *)

(* trigb1 : block R_TRIG - определение переднего фронта*)

(* активизация функционального блока из языка ST *)

trigb1 (b1);

(* доступ к возвращаемым параметрам *)

If (trigb1.Q) Then nb_edge := nb_edge + 1; End_if;


Содержание раздела