ISaGRAF. Version 3.4


“C” функции преобразований - часть 4


Результат превращается в long integer, когда преобразование применяется к целой аналоговой переменной. Это означает, что одно и тоже преобразование может быть использовано, как для целых, так и для действительных аналоговых переменных В/В.       

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

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

/*

  conversion function

  name: sample

*/

 

#include <tasy0def.h>

#include <tacn0def.h>

 

void CNV_sample (str_cnv *arg)

{

             if (DIRECTION == DIR_INPUT) { /*INPUT CONV*/

 

             }

             else { /*OUTPUT CONV*/

 

             }

}

 

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

 

UFP cnvdef_sample (char *name)

{

             sys_strcpy (name, "SAMPLE");         /* дает имя преобразования */

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

}

 

Лучший способ заполнить специфические части функции - это написать две отдельные локальные функции для преобразования входов и преобразования выходов. Эти функции будут вызываться основным алгоритмом, как показано в комментариях предыдущего примера, в основной структуре SFC.

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

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




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