Как считывать дискреты, аналоги и счетчики в СИ-блоке

Общие вопросы по оборудованию и программному обеспечению Компании ДЭП
Ильдар
Сообщения: 65
Зарегистрирован: 27 дек 2007, 12:38
Откуда: Ташкент, sigma avtomatika

Сообщение Ильдар » 14 июл 2008, 15:32

Уважаемый народ
помогите разобраться с сишными вкладками вашей программы "разработчик"

дело в том что мне необходимо отказаться от графических блоков
и писать компоненты используя только Си-блоки.


Но у вас нигде в хелпах не описанна работа с некоторыми функциями
(или я просто не нашел, но искал хорошо)
например самое главное научиться считывать и записывать элементы
из базы параметров

с записью парамтров в базу разобрался
например функция dep_DiscretWrite("номер ячейки", "значение", "бит_динамики", "Неопределенность")

но эт проше простого.

а вот с чтением элемента из базы все пошло хуже.

помогите пожалуста !!!!
очень надо

пришлите кусок кода для считывания элемента из базы
с инструкцией что и где надо прописывать и объявлять
C уважением Ильдар Амирханов

ic_ahp
Сообщения: 36
Зарегистрирован: 10 июл 2006, 13:05

Сообщение ic_ahp » 14 июл 2008, 17:30

Ильдар писал(а):пришлите кусок кода для считывания элемента из базы
с инструкцией что и где надо прописывать и объявлять

Код: Выделить всё

dep_DiscretRead(&DBlock2_out ,n_check,0);
v_check = DBlock2_out.value;

Стандартные блоки можно открывать из C:\Program Files\DEP\DEVELOP\Lib\Blocks или с по щелчку с листа ФБД.

Ильдар
Сообщения: 65
Зарегистрирован: 27 дек 2007, 12:38
Откуда: Ташкент, sigma avtomatika

Сообщение Ильдар » 15 июл 2008, 07:52

делаю тоже самое

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 уважением Ильдар Амирханов

ic_ahp
Сообщения: 36
Зарегистрирован: 10 июл 2006, 13:05

Сообщение ic_ahp » 15 июл 2008, 10:53

Ильдар писал(а):...

Вы стандартный блок в список используемых блоков добавляли?

galina
Сообщения: 79
Зарегистрирован: 03 дек 2007, 09:56
Откуда: Компания "ДЭП"

Сообщение galina » 15 июл 2008, 15:12

Добрый день! В каталоге 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) )
;

galina
Сообщения: 79
Зарегистрирован: 03 дек 2007, 09:56
Откуда: Компания "ДЭП"

Сообщение galina » 15 июл 2008, 15:17

Для того, чтобы обратиться к значениям дискретов и аналогов:
STATECOD(d) - для дискретов
a1.value - для аналогов

Faster
Сообщения: 653
Зарегистрирован: 11 июл 2007, 09:38

Сообщение Faster » 16 июл 2008, 08:56

Если бы деп сделал нормальный режим работы в с++ то я бы точно пиво выслал ... надо ело куски блоками писать , а другие на си ...

может ктонить займётся убиранием мутатни .... и оптимизацией си ??? т редактор слобали бы немножко ...

ic_ahp
Сообщения: 36
Зарегистрирован: 10 июл 2006, 13:05

Сообщение ic_ahp » 16 июл 2008, 09:46


Faster
Сообщения: 653
Зарегистрирован: 11 июл 2007, 09:38

Сообщение Faster » 16 июл 2008, 15:17

ic_ahp писал(а):http://rapidshare.com/files/130049277/test_c.rar.html
Критикуйте )


Если это ответ на мой топик, то я не понял что должно произвести на меня впечатление ... видимо я чего то не понял :)

ic_ahp
Сообщения: 36
Зарегистрирован: 10 июл 2006, 13:05

Сообщение ic_ahp » 16 июл 2008, 16:43

Faster писал(а):Если это ответ на мой топик, то я не понял что должно произвести на меня впечатление ... видимо я чего то не понял :)

Нет, это просто пример вычитывания из С-блока. Как его делал я. Может кто-то делает иначе, интересно посмотреть )

Faster
Сообщения: 653
Зарегистрирован: 11 июл 2007, 09:38

Сообщение Faster » 17 июл 2008, 01:57

Не поверишь может быть мне , но другого пути нет !