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


L-761, работа с цифр. линиями

Вы не вошли.

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

nestam
07.09.2007 17:59:19
#1

Гость

L-761, работа с цифр. линиями

Работаю с устройством L-761.
Вопрос возник по работе с цифровыми линиями.

Как я успел понять для ввода/вывода на TTL линии данных используется лишь функция "IoSync".
Пример:
pp.s_Type = L_ASYNC_TTL_OUT;
   pp.Data[0] = 0xA525;
   pI->IoAsync(&pp);
После вызова функции "IoAsync" на цифровых линиях OUT1-OUT16 устанавивается значение "0xA525" до тех пор, пока не будет вызвана функция с другим значением "Data[0]"?
Собственно мне необходимо для управления внешними устройствами на выходе цифровых линий "держать" требуемый сигнал.
Надеюсь, ваш ответ будет оперативным.

08.09.2007 12:58:18
#2

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

Re: L-761, работа с цифр. линиями

Во всех устройствах L-Card, где есть выходные  цифровые линии, соответствующая функция вывода данных работает по принципу обновления предыдущего  состояния выходного регистра (в Вашей терминологии -- выходные сигналы удерживаются).

nestam
10.09.2007 09:08:49
#3

Гость

Re: L-761, работа с цифр. линиями

Александр, спасибо за ответ.

nestam
17.09.2007 13:58:27
#4

Гость

Re: L-761, работа с цифр. линиями

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

17.09.2007 14:35:26
#5

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

Re: L-761, работа с цифр. линиями

При включении питания в L-761 логические состояния  выходных TTL сигналов могут быть произвольными. Рассчитывать здесь на какую-либо определённость не следует.

Васильев Валерий
20.09.2007 11:29:41
#6

Гость

Re: L-761, работа с цифр. линиями

Использую L-761
Вопрос по цифровым линиям.
Использую функцию IoAsync и все 16 цифровых каналов (pp.NCh=16)
Как правильно управлять каналами например:
pp.s_Type=L_ASYNC_TTL_INP
1 задавать последовательно
IoAcync:
pp.Chn[0]=0 результат запрса в pp.Data[0] канал 0
IoAcync:
pp.Chn[0]=1 результат запрса в pp.Data[0] канал 1
IoAcync:
..........
IoAcync:
pp.Chn[0]=15 результат запрса в pp.Data[0] канал 15

2. или после вызова функции IoAcync
результат запрса в pp.Data[0] канал 0
результат запрса в pp.Data[1] канал 1
..........
результат запрса в pp.Data[15] канал 15

Желательно в программе LGraph2 при работе с цифровыми каналами предусмотреть выбор канала.

Надеюсь что Ваш ответ будет оперативным.

21.09.2007 09:33:13
#7

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

Re: L-761, работа с цифр. линиями

в Data[0] все линии при записи и считывании...

Васильев Валерий
21.09.2007 11:02:05
#8

Гость

Re: L-761, работа с цифр. линиями

Уточните пожалуйста,
Вы ответили "в Data[0] все линиии при записи и считывании" т.е. имеется ввиду: линии это побитовые значения по конкретному каналу, тогда вопрос: как задать номер цифрового канала (например 5 и считать или записать 16 бит (линий) )? Или используется только канал 0

21.09.2007 12:05:40
#9

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

Re: L-761, работа с цифр. линиями

линий у платы всего 16 на ввод и 16 на вывод. Соответственно один бит в Data[0] одна линия...
Если в ваших терминах то цифровой канал один....

Васильев Валерий
21.09.2007 13:37:09
#10

Гость

Re: L-761, работа с цифр. линиями

Попытаюсь задать вопрос по другому.
Я использую L-761 (изготовлена в 2007 году), библиотеку "lcomp.dll" для 2000,XP и функцию IoAsync. Далее, у меня есть программа (и исходники к ней) обработки данных, написанная аж 2001 году для L-761 где используется "Lcard_32.dll" и "Lcard_ad.dll", соответственно для 98.
Внешнее устройство использует 16 цифровых каналов (не 16 линий) по 16 бит (линий) как написано в описании к плате. Вот фрагмент исходника (для первых 4х каналов):

   for(int i = 0; i < 4; i++)
      {
       DSP_OUTBYTE(i);
        resalt = DSP_INPBYTE();
(далее тело обработки)
      }

Проверял: внешее устройство деиствительно посылает данные по 4-рём цифровым каналам и они чудесно регистрируются. Всё под 98, плата таже.
У Вас в "lcomp.dll" есть нечто похожее:
ULONG PutWord_DM(USHORT Addr, PUSHORT Data);
ULONG GetWord_DM(USHORT Addr, PUSHORT Data);
Data - это (как я понимаю указатель)
Addr - на адрес не похоже (USHORT)или где его взять (относительный?), может это и есть номер канала?
Есть функция ULONG SendCommand(USHORT Cmd);
USHORT Cmd - код команды;
Подскажите где список Cmd и для чего.

Васильев Валерий
21.09.2007 13:51:52
#11

Гость

Re: L-761, работа с цифр. линиями

Дополнительный вопрос по IoAsync:
Из описания структуры:
Chn[0] - логический номер канала; (А что это значит?)
Результат в Data[0].
и USHORT NCh; (а это для чего?)

21.09.2007 13:54:26
#12

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

Re: L-761, работа с цифр. линиями

lcard_32.dll для 761 никак не может быть....только если vxdapi.dll, и то функционал одинаков...Или плата не 761....

21.09.2007 13:55:16
#13

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

Re: L-761, работа с цифр. линиями

16*16 этож 256 ног на выходе...

Васильев Валерий
21.09.2007 15:03:44
#14

Гость

Re: L-761, работа с цифр. линиями

Хорошо. И тем не менее, что о цикле
for(int i = 0; i < 4; i++)
{
DSP_OUTBYTE(i);           это Ваши функции
result = DSP_INPBYTE();   обработки для 98
(далее тело обработки)
}

Васильев Валерий
21.09.2007 15:12:30
#15

Гость

Re: L-761, работа с цифр. линиями

Дополнительно:
для 98 DSP_OUTBYTE, а в "lcomp.dll" => PutWord_DM
для 98 DSP_INBYTE,  а в "lcomp.dll" => GetWord_DM
Это так?

Васильев Валерий
21.09.2007 15:26:09
#16

Гость

Re: L-761, работа с цифр. линиями

Если я понял правильно, то на 761 один цифровой вход/выход (TTL). Программа верхнего уровня должна сама активизировать цифровой канал внешнего устройства посредством передачи команды согласно протоколу обмена. Тогда:
для 98 DSP_OUTBYTE, а в "lcomp.dll" => PutWord_DM
для 98 DSP_INBYTE, а в "lcomp.dll" => GetWord_DM
Это так?

21.09.2007 16:03:40
#17

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

Re: L-761, работа с цифр. линиями

нет не так... IoAsync с Data[0] будет выставлять или считывать 16 цифровых линий....