хитрый gate на ctr
-
- professor
- Сообщения: 3404
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 175 раз
- Контактная информация:
хитрый gate на ctr
как я недавно обнаружил, долгая практика с cRIO вредна для опыта DAQmx, многое напрочь забыл.
Вот снова столкнулся с трудностью.
Железо:
cDAQ-9188 и четыре DIO 9402.
Задача:
Внешний агрегат генерирует импульсы, которые нужно считать. С этим сложностей нет, имеющийся счётчик справляется.
Но есть параллельная задача, генерации импульсов (уже через 9402).
Последовательность выглядят так:
i-p1-i-p2-i-p3...
i - импульс, одной и той же длительности (10мс),
p - пауза, длительность постепенно нарастает.
С этим тоже справился
Но в соответствии с этой задачей по восходящему фронту надо обнулять счётчик. И вот тут пошли сложности.
Вариант заводить провод из DO на какой-нибудь PFI не приемлем.
Вариант вычитать количество импульсов руками пока остаётся запасным, если не найду более человечного решения, а его хочется найти.
Думал устроить внутренний роутинг, но в таблице роутинга cDAQ-9188 DO отсутствует, если я правильно понимаю, напрямую его (DO) в качестве гейта использовать не получится.
Попробовал через счётчик по аналогии с этим, только выдаю не частоту, а длительность, но задача ругается что я подаю слишком большую паузу, максимум можно 107с, а в данной задаче пауза может быть несколько недель (это в перспективе, сейчас актуальны паузы до часа, но даже это слишком много).
Итого: Нужно генерировать некую последовательность импульсов с большим периодом. Эта последовательность должна быть внешней (управляет агрегатом), но при этом же надо иметь возможность по возрастающему фронту этого сигнала обнулять счётчик импульсов, идущих с агрегата.
Будет ли сигнал генерироваться с помощью DO, или ctr мне не принципиально (главное, что TTL).
Есть идеи, как такое осуществить на имеющемся железе?
Считать импульсы руками (через DI) задача малоперспективная, timebase счётчику задаётся 80МГц, но даже 20 М-сэмплов в секунду комп не справляется просмотреть.
Вот снова столкнулся с трудностью.
Железо:
cDAQ-9188 и четыре DIO 9402.
Задача:
Внешний агрегат генерирует импульсы, которые нужно считать. С этим сложностей нет, имеющийся счётчик справляется.
Но есть параллельная задача, генерации импульсов (уже через 9402).
Последовательность выглядят так:
i-p1-i-p2-i-p3...
i - импульс, одной и той же длительности (10мс),
p - пауза, длительность постепенно нарастает.
С этим тоже справился
Но в соответствии с этой задачей по восходящему фронту надо обнулять счётчик. И вот тут пошли сложности.
Вариант заводить провод из DO на какой-нибудь PFI не приемлем.
Вариант вычитать количество импульсов руками пока остаётся запасным, если не найду более человечного решения, а его хочется найти.
Думал устроить внутренний роутинг, но в таблице роутинга cDAQ-9188 DO отсутствует, если я правильно понимаю, напрямую его (DO) в качестве гейта использовать не получится.
Попробовал через счётчик по аналогии с этим, только выдаю не частоту, а длительность, но задача ругается что я подаю слишком большую паузу, максимум можно 107с, а в данной задаче пауза может быть несколько недель (это в перспективе, сейчас актуальны паузы до часа, но даже это слишком много).
Итого: Нужно генерировать некую последовательность импульсов с большим периодом. Эта последовательность должна быть внешней (управляет агрегатом), но при этом же надо иметь возможность по возрастающему фронту этого сигнала обнулять счётчик импульсов, идущих с агрегата.
Будет ли сигнал генерироваться с помощью DO, или ctr мне не принципиально (главное, что TTL).
Есть идеи, как такое осуществить на имеющемся железе?
Считать импульсы руками (через DI) задача малоперспективная, timebase счётчику задаётся 80МГц, но даже 20 М-сэмплов в секунду комп не справляется просмотреть.
-
- professor
- Сообщения: 3404
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 175 раз
- Контактная информация:
Re: хитрый gate на ctr
программно-неприемлемая :)Borjomy_1 писал(а):Точность интервалов выдачи импульсов какая нужна?
задаю сейчас с точностью 1 мс, но при этом требуется, чтобы мс всегда была миллисекундой, без каких-либо скачков.
Сейчас склоняюсь к идее завести второй канал DO и выдавать на него тот же сигнал, и уже его проводом на гейт завести.
под этим
я подразумевал, что не подходит вариант разветвления существующего провода, идущего от DO к прибору.Artem.spb писал(а): Вариант заводить провод из DO на какой-нибудь PFI не приемлем.
Но всё равно решение довольно странное.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: хитрый gate на ctr
Где-то вы сами себя обманываете. Каким образом может быть достигнута точность 1 мс на суточных интервалах???? У вас кварц кварц какую температурную зависимость имеет, на минуточку? Что, термостабилизированное оборудование? Или GPS синхронизация?
1 мс в сутки это 1/86400000
1 мс в сутки это 1/86400000
-
- professor
- Сообщения: 3404
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 175 раз
- Контактная информация:
Re: хитрый gate на ctr
Здесь предполагается, что этой точности достаточно, а программно-регулируемая пауза (старт-стоп задачи) по подходит из-за непредсказуемых точностей.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: хитрый gate на ctr
Что мешает задать Continuous Samples? Число выдач в секунду известно. Надо только в необходимый момент подпихнуть вместо 0 - 1ку. Пусть задача работает постоянно.
-
- professor
- Сообщения: 3404
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 175 раз
- Контактная информация:
Re: хитрый gate на ctr
мешает отсутствие внутреннего роутинга
если бы ctr мог выдавать длинные импульсы, то такая схема вполне бы устроила
если бы ctr мог выдавать длинные импульсы, то такая схема вполне бы устроила
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: хитрый gate на ctr
каким импульсом?
Внешний агрегат генерирует импульсы, которые нужно считать.
и каким ответом?
Нужно генерировать некую последовательность импульсов с большим периодом.
-
- professor
- Сообщения: 3404
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 175 раз
- Контактная информация:
Re: хитрый gate на ctr
Может я чего-то не понимаю, но беседа ушла не в ту степь?
Понятно, что мгновенного взаимодействия не достичь, даже понятно, что при минимальном периоде импульсов 50-55 нс (а он скачущий и может быть больше) я имею задержку на проводах 10-15 нс, и это выглядит ужасно.
Мой DO-сигнал фактически запускает/останавливает генерацию импульсов агрегатом. "фактически", потому что есть все эти задержки.
Когда агрегат выдаст первый сигнал после прихода "старт" неизвестно. В этом и задача: наблюдать, что происходит в агрегате.
Есть некоторая задержка (пока агрегат "сообразит" в чём дело и начнёт генерить импульсы, но в спецификации на него не указано, когда (минимальное время) он выдаст первый импульс после прихода стартового сигнала.
Когда DO =1 импульсы идут, когда 0 импульсы не идут.
Нужно ловить импульсы. И желательно обнулять значение каждый импульс, чтобы не заморачиваться с вычислением, сколько именно их было на последнем импульсе с учётом количества, бывшего на предыдущем импульсе.
вот что примерно творится в системе. ctr2 output - реальный сигнал
PD gate - от, что происходит на агрегате
PD out - те самые импульсы, которые надо ловить
PFI0 - то, что видит счётчик с учётом проводов.
в идеале нужно словить все три импульса, отданные агрегатом.
Понятно, что мгновенного взаимодействия не достичь, даже понятно, что при минимальном периоде импульсов 50-55 нс (а он скачущий и может быть больше) я имею задержку на проводах 10-15 нс, и это выглядит ужасно.
Мой DO-сигнал фактически запускает/останавливает генерацию импульсов агрегатом. "фактически", потому что есть все эти задержки.
Когда агрегат выдаст первый сигнал после прихода "старт" неизвестно. В этом и задача: наблюдать, что происходит в агрегате.
Есть некоторая задержка (пока агрегат "сообразит" в чём дело и начнёт генерить импульсы, но в спецификации на него не указано, когда (минимальное время) он выдаст первый импульс после прихода стартового сигнала.
Когда DO =1 импульсы идут, когда 0 импульсы не идут.
Нужно ловить импульсы. И желательно обнулять значение каждый импульс, чтобы не заморачиваться с вычислением, сколько именно их было на последнем импульсе с учётом количества, бывшего на предыдущем импульсе.
вот что примерно творится в системе. ctr2 output - реальный сигнал
PD gate - от, что происходит на агрегате
PD out - те самые импульсы, которые надо ловить
PFI0 - то, что видит счётчик с учётом проводов.
в идеале нужно словить все три импульса, отданные агрегатом.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: хитрый gate на ctr
Для того, чтобы нормально реализовать вашу задачу, по-хорошему, решение может быть только одно - на FPGA. Берете корзину, например NI-9146 и на ее FPGA собираете счетчики и прочее.
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: хитрый gate на ctr
Artem.spb, a вариант с дополнительным счетчиком, работающим параллельно с основным со сдвигом на определенную задержку или просто создающего более длинный импульс для Gate счетчика импульсов агрегата. Все таки наверное есть оценка минимального значения частоты импульсов агрегата, которое можно использовать для определения максимальной длительности импульса Gate.
-
- professor
- Сообщения: 3404
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 175 раз
- Контактная информация:
Re: хитрый gate на ctr
Импульсы агрегата длинной 35 нс, минимальный период 50 (или 55), но когда агрегат выдаст первый импульс после старта - непонятно.
Насчёт длительности импульсов гейта не понял. Её задаёт экспериментатор, сейчас это 10 мс. Пауза между гейтами тоже задаётся экспериментатором, от тех же 10 мс по возрастающей.
Про доп счётчик не понял, что он будет делать.
Насчёт длительности импульсов гейта не понял. Её задаёт экспериментатор, сейчас это 10 мс. Пауза между гейтами тоже задаётся экспериментатором, от тех же 10 мс по возрастающей.
Про доп счётчик не понял, что он будет делать.
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: хитрый gate на ctr
Дополнительный счетчик запускается синхронно с основным. Длительность основного 10 мс +, длительность дополнительного (10 мс +) + 5 мс и этот сигнал будет Gate для счетчика импульсов агрегата.