ISaGRAF. Version 3.4


“C” функции - часть 4


Типы ISaGRAF определены как типы “C” в файле определения функции:

boolean

T_BOO

long (32 бита)

Integer analog

T_ANA

long

Real analog

T_REAL

float (32 бита, плавающее значение с одиночной точностью)

timer

T_TMR

long

message

T_MSG

char* (32 битный указатель)

Каждое поле структуры “str_srg” соответствует одному параметру функции. Возвращаемый параметр - последний в структуре. Параметры вызова возникают в структуре в том же порядке, в котором они были установлены в определении функции. Имена идентификаторов вводятся во время определения функции в менеджере библиотек ISaGRAF.

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

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

Ниже представлен стандартный скелет “C” функции:

/* Пример функции пользователя - Номер “255”  - имя ”SAMPLE”*/

 

#include "tasy0def.h"                        /* Общие определения ядра ISaGRAF */

#include "grus0255.h"                       /* определения интерфейса для функции */

 

void USP_sample (str_arg *arg)

{

             /* тело функции */

}

 

/*Следующая функция используется для инициализации функции и объявления ее реализации. Она реализует связь с ядром ISaGRAF, используя имя функции. Эта функция полностью генерируется менеджером библиотек ISaGRAF*/

 

UFP uspdef_sample (char *name)

{

             strcpy (name, "SAMPLE");  /* дает имя функции */

             return (USP_sample);            /* возвращает реализацию функции */

}

 

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

Включенный файл “TASY0DEF.h” из ядра ISaGRAF требуется для системозависимых определений. Он, также содержит тип UFP, который представляет указатель на  пустую функцию, и используется для объявления функции.

       Связь  между проектами и “C” реализацией

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


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