Уважаемый народ
помогите разобраться с сишными вкладками вашей программы "разработчик"
дело в том что мне необходимо отказаться от графических блоков
и писать компоненты используя только Си-блоки.
Но у вас нигде в хелпах не описанна работа с некоторыми функциями
(или я просто не нашел, но искал хорошо)
например самое главное научиться считывать и записывать элементы
из базы параметров
с записью парамтров в базу разобрался
например функция dep_DiscretWrite("номер ячейки", "значение", "бит_динамики", "Неопределенность")
но эт проше простого.
а вот с чтением элемента из базы все пошло хуже.
помогите пожалуста !!!!
очень надо
пришлите кусок кода для считывания элемента из базы
с инструкцией что и где надо прописывать и объявлять
Как считывать дискреты, аналоги и счетчики в СИ-блоке
Ильдар писал(а):пришлите кусок кода для считывания элемента из базы
с инструкцией что и где надо прописывать и объявлять
Код: Выделить всё
dep_DiscretRead(&DBlock2_out ,n_check,0);
v_check = DBlock2_out.value;
Стандартные блоки можно открывать из C:\Program Files\DEP\DEVELOP\Lib\Blocks или с по щелчку с листа ФБД.
делаю тоже самое
dep_DiscretRead(&DBlock2_out ,n_check,0);
v_check = DBlock2_out.value;
Здесь DBlock2_out это экземпляр структуры t0_dep_DiscretRead
то есть перед тем куском кода что вы мне отправили необходимо
еще и оьявить
t0_dep_DiscretRead DBlock2_out;
ну так вот в чем загвоздка
при компиляции выводится что тип t0_dep_DiscretRead неизвестен
то есть файл где он описан не инклудится
пробовал объявить вручную
typedef struct
{
int value;
bool dynamic;
bool undef;
int errcode;
} t0_dep_DiscretRead;
но ему не нравятся типы внутренних переменных
не подскажете как ие типы внутри структуры и/или как можно проинклудить файл с описанием этой структуры
dep_DiscretRead(&DBlock2_out ,n_check,0);
v_check = DBlock2_out.value;
Здесь DBlock2_out это экземпляр структуры t0_dep_DiscretRead
то есть перед тем куском кода что вы мне отправили необходимо
еще и оьявить
t0_dep_DiscretRead DBlock2_out;
ну так вот в чем загвоздка
при компиляции выводится что тип t0_dep_DiscretRead неизвестен
то есть файл где он описан не инклудится
пробовал объявить вручную
typedef struct
{
int value;
bool dynamic;
bool undef;
int errcode;
} t0_dep_DiscretRead;
но ему не нравятся типы внутренних переменных
не подскажете как ие типы внутри структуры и/или как можно проинклудить файл с описанием этой структуры
C уважением Ильдар Амирханов
Добрый день! В каталоге C:\Program Files\DEP\DEVELOP\INCLUDE есть заголовочный файл base.h. В этом файле описаны основные прототипы.
Для чтения дискретов используется две функции: DiscretGet, DiscretRead. Их отличие в том, что DiscretGet забирает динамику. В качестве параметра этих функций выступает номер дискрета, а выходное значение - сам дискрет. С помощью функции IFSET(дискрет) выходное значение можно проверить на наличие динамики и флага неопределенности.
Пример:
DISCRET d;
d = DiscretGet( 1 );
//если значение определенно и пришла динамика
if( !IFSET(flagU, d) && IFSET(flagD, d) )
;
ANALOG a1;
AnalogGet(1, &a1);
if( !IFSET(flagU, a1.state) && IFSET(flagD, a1.state) )
;
Для чтения дискретов используется две функции: DiscretGet, DiscretRead. Их отличие в том, что DiscretGet забирает динамику. В качестве параметра этих функций выступает номер дискрета, а выходное значение - сам дискрет. С помощью функции IFSET(дискрет) выходное значение можно проверить на наличие динамики и флага неопределенности.
Пример:
DISCRET d;
d = DiscretGet( 1 );
//если значение определенно и пришла динамика
if( !IFSET(flagU, d) && IFSET(flagD, d) )
;
ANALOG a1;
AnalogGet(1, &a1);
if( !IFSET(flagU, a1.state) && IFSET(flagD, a1.state) )
;