Он резервируется ISaGRAF для внутренних операций и не должен использоваться для программирования службы. Аргумент “data” - это дальний указатель на структуру данных связанных с экземпляром.
Аргумент “parno” - это логический номер возвращаемого параметра, значение которого требуется. Используйте идентификаторы, определенные в “C” заголовке функционального блока для идентификации возвращаемого параметра. Тип данных, на которые указывает этот аргумент, зависит от типа возвращаемого параметра.
Ниже представлено соответствие между типами ISaGRAF и “C”:
boolean
long
32 битное беззнаковое слово: 1=true / 0=false
analog
long
32 битное знаковое целое слово
real
float
плавающее значение с одиночной точностью
timer
long
32 битное беззнаковое слово (единица - это 1 миллисекунда)
message
char *
строка символов
Следующие макроопределения используются для доступа к буферу копирования, в соответствии с типом возвращаемого параметра:
#define BOO_VALUE ((T_BOO *)value)
#define ANA_VALUE ((T_ANA *)value)
#define REAL_VALUE ((T_REAL *)value)
#define TMR_VALUE ((T_TMR *)value)
#define MSG_VALUE ((T_MSG *)value)
Вот общие программные операции для копирования значения или параметра к буферу ISaGRAF:
/* for a boolean parameter: */
*BOO_VALUE = parameter_value;
/* for an integer analog parameter: */
*ANA_VALUE = parameter_value;
/* for a real integer parameter: */
*REAL_VALUE = parameter_value;
/* for a time parameter: */
*TMR_VALUE = parameter_value;
/* for a string parameter: */
strcpy (*MSG_VALUE, parameter_value);
Исходный текст этой службы автоматически генерируется менеджером библиотек ISaGRAF при создании функционального блока.
· Пример исходного текста
Ниже представлен стандартный скелет “C” функционального блока: