Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


Библиотека LCOMP - как работать с цифровыми входами-выходами?

Вы не вошли.

 Поиск | Регистрация | Вход 

Gals
13.10.2015 09:53:15
#1

Гость

Библиотека LCOMP - как работать с цифровыми входами-выходами?

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

13.10.2015 13:38:33
#2

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Библиотека LCOMP - как работать с цифровыми входами-выходами?

IoAsync вызывать.
// так вызывать IoAsync
// тест цифровых линий
/*
   ASYNC_PAR pp;
   pp.s_Type = L_ASYNC_TTL_CFG;
   pp.Mode = 1;
   pI->IoAsync(&pp);

   pp.s_Type = L_ASYNC_TTL_OUT;
   pp.Data[0] = 0xA525;
   pI->IoAsync(&pp);

   pp.s_Type = L_ASYNC_TTL_INP;
   pp.Data[0] = 1;
   pI->IoAsync(&pp);

   printf("\n ttl input %X ",pp.Data[0]); 

   printf("\nPress any key");
   _getch();

*/

Gals
14.10.2015 10:16:28
#3

Гость

Re: Библиотека LCOMP - как работать с цифровыми входами-выходами?

Poul пишет:

ASYNC_PAR pp;
   pp.s_Type = L_ASYNC_TTL_CFG;
   pp.Mode = 1;
   pI->IoAsync(&pp);
   pp.s_Type = L_ASYNC_TTL_OUT;
   pp.Data[0] = 0xA525;
   pI->IoAsync(&pp);
   pp.s_Type = L_ASYNC_TTL_INP;
   pp.Data[0] = 1;
   pI->IoAsync(&pp);

спасибо,
а есть возможность указывать временные интервалы между переключениями?
например мне надо включать и выключать канал с частотой скажем 25 кГц.

14.10.2015 10:33:45
#4

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: Библиотека LCOMP - как работать с цифровыми входами-выходами?

Gals пишет:
Poul пишет:

ASYNC_PAR pp;
   pp.s_Type = L_ASYNC_TTL_CFG;
   pp.Mode = 1;
   pI->IoAsync(&pp);
   pp.s_Type = L_ASYNC_TTL_OUT;
   pp.Data[0] = 0xA525;
   pI->IoAsync(&pp);
   pp.s_Type = L_ASYNC_TTL_INP;
   pp.Data[0] = 1;
   pI->IoAsync(&pp);

спасибо,
а есть возможность указывать временные интервалы между переключениями?
например мне надо включать и выключать канал с частотой скажем 25 кГц.

Смысл асинхронного вывода заключается как раз в том, что физическое исполнение этого вывода происходит НЕ синхронно по причине различных непредсказуемых задержек буферизации.

Gals
15.10.2015 22:27:48
#5

Гость

Re: Библиотека LCOMP - как работать с цифровыми входами-выходами?

Poul пишет:
ASYNC_PAR pp;
   pp.s_Type = L_ASYNC_TTL_CFG;
   pp.Mode = 1;
   pI->IoAsync(&pp);
   pp.s_Type = L_ASYNC_TTL_OUT;
   pp.Data[0] = 0xA525;
   pI->IoAsync(&pp);
   pp.s_Type = L_ASYNC_TTL_INP;
   pp.Data[0] = 1;
   pI->IoAsync(&pp);

Извиняюсь, а можно пояснить смысл этих действий, что к чему, или показать код программы полностью, не могу понять что происходит...
В доступных примерах не могу найти подобного куска кода.

Gals
15.10.2015 23:06:31
#6

Гость

Re: Библиотека LCOMP - как работать с цифровыми входами-выходами?

Gals пишет:
ASYNC_PAR pp;
   pp.s_Type = L_ASYNC_TTL_CFG;
   pp.Mode = 1;
   pI->IoAsync(&pp);
   pp.s_Type = L_ASYNC_TTL_OUT;
   pp.Data[0] = 0xA525;
   pI->IoAsync(&pp);
   pp.s_Type = L_ASYNC_TTL_INP;
   pp.Data[0] = 1;
   pI->IoAsync(&pp);

Извиняюсь, а можно пояснить смысл этих действий, что к чему, или показать код программы полностью, не могу понять что происходит...
В доступных примерах не могу найти подобного куска кода.

Вот это непонятно:

pp.s_Type = L_ASYNC_TTL_CFG;
   pp.Mode = 1;
   pI->IoAsync(&pp);

Чтото настраивается... но что? включается питание?
Это надо вызывать каждый раз при необходимости задать выход или только один раз на включение устройства?

Здесь выставляется код на 16 каналов цифрового вывода:

pp.s_Type = L_ASYNC_TTL_OUT;
   pp.Data[0] = 0xA525;
   pI->IoAsync(&pp);

Здесь читаются входы.

pp.s_Type = L_ASYNC_TTL_INP;
   pp.Data[0] = 1;
   pI->IoAsync(&pp);

После работы этого куска кода, в переменной pp.Data[0] содержатся данные считывания 16-и входных цифровых каналов.

Но есть еще вопрос:
Как можно прочитать текущее состояние цифровых выходов?
Моя программа чтото выставила и завершилась. Светодиоды продолжают гореть.
Если теперь снова запускаю программу, то как можно прочитать состояние которое было выставлено ранее?

Gals
15.10.2015 23:27:57
#7

Гость

Re: Библиотека LCOMP - как работать с цифровыми входами-выходами?

Gals пишет:

Как можно прочитать текущее состояние цифровых выходов?
Моя программа чтото выставила и завершилась. Светодиоды продолжают гореть.
Если теперь снова запускаю программу, то как можно прочитать состояние которое было выставлено ранее?

Попытался влезть в код библиотеки и прочитать данные из цифровых выходов.
Но это не получается потому что:

#define L_TTL_OUT_E140              0x0400
#define L_TTL_IN_E140               0x0400

Как сделать?

16.10.2015 09:02:02
#8

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: Библиотека LCOMP - как работать с цифровыми входами-выходами?

Gals пишет:

Попытался влезть в код библиотеки и прочитать данные из цифровых выходов. Как сделать?

Gals, когда обсуждаете функциональные возможности аппаратуры, то хорошо бы сначала назвать эту аппаратуру (в сообщениях темы названия нет). Например, E14-140 и E14-140-М - это сильно отличающиеся модули. Для того, чтобы считать логическое состояние цифровых выходов (штатными программными средствами) нужно их физически соединить со входами и считать состояния входов. Если речь идёт о считывании назад дошедших до микроконтроллера модуля  данных на вывод, то это уже нештатные возможности или НЕвозможности, которые зависят от типа модуля при его низкоуровневом программировании.

16.10.2015 13:12:48
#9

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Библиотека LCOMP - как работать с цифровыми входами-выходами?

в manual.pdf про функцию IoAsync написано. CFG для некоторых модулей переводи линии в 3 состояние.