Пропуск/задержка/поломка импульсов в sbRio
-
- user
- Сообщения: 70
- Зарегистрирован: 22 ноя 2017, 10:29
- Версия LabVIEW: 2019
- Откуда: Санкт-Петербург
- Поблагодарили: 2 раза
- Контактная информация:
Пропуск/задержка/поломка импульсов в sbRio
Первый опыт с RealTime, формирую импульсы в fpga target sbRio, там же хочу на них посмотреть. Ожидание/реальность сильно отличается. Если запускать vi просто на компьютере, алгоритм работает как надо, импульсы ровные, синхронные. Почему на sbRio не так? Или я теряю по TCP?
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Пропуск/задержка/поломка импульсов в sbRio
А как Вы их читаете с sbRIO? Цикл в FPGA исполняется с дефолтным таймингом (какая его частота?). И чтобы нормально видеть пульсы, нужно читать их с правильной частотой (10х большей чем генерируемый сигнал, если я не ошибаюсь). Если FPGA использует clock на 40 MHz, то красивый график Вы не увидите, насколько я понимаю...
Мы делили апельсин - много наших полегло...
-
- user
- Сообщения: 70
- Зарегистрирован: 22 ноя 2017, 10:29
- Версия LabVIEW: 2019
- Откуда: Санкт-Петербург
- Поблагодарили: 2 раза
- Контактная информация:
Re: Пропуск/задержка/поломка импульсов в sbRio
Да, частота 40 МГц. То есть, на компьютере невозможно правильно считать импульсы с fpga? Нет никакого способа? Только осциллографом?
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Пропуск/задержка/поломка импульсов в sbRio
А зачем считывать импульсы, которые Вы генерируете? Если бы было наоборот - если бы FPGA читало импульсы - то тогда более понятно... А так - какая цель, зачем эта информация нужна в приложении? Просто хочеться понять логику - может окажется, что читать все эти импульсы и не обязательно..
Предполагаю, что Вы читаете состояние DIO линий при помощи того кластера, т.е. используя Read/Write Control функцию. А это тоже чревато тем, что нельзя гарантировать, что Вы читаете все данные - ведь контрол постоянно перезаписывается, как написано здесь https://zone.ni.com/reference/en-XX/hel ... _transfer/. Для точного чтения нужно использовать FIFO DMA, чтобы все данные сохранялись. Но в Вашем случае данных будет очень много, нужно хорошенько оптимизировать код потом... Но все равно, даже если будете читать 40М данных за секунду (а нужно читать больше, по-сути), то Вам не нужно такое количество точек на чарте, Вы ничего не увидите потом. Плюс ко всему, и памяти это будет потреблять очень много. Просто проэкспериментируйте - на хосте создайте массив 40 миллионов точек, как Вы это делаете для генерации импульсов, и запишите их на чарт. Но при этом, установите Chart History Length на соотвествующее число, чтобы видеть все точки. Увидите, что произойдет...
Предполагаю, что Вы читаете состояние DIO линий при помощи того кластера, т.е. используя Read/Write Control функцию. А это тоже чревато тем, что нельзя гарантировать, что Вы читаете все данные - ведь контрол постоянно перезаписывается, как написано здесь https://zone.ni.com/reference/en-XX/hel ... _transfer/. Для точного чтения нужно использовать FIFO DMA, чтобы все данные сохранялись. Но в Вашем случае данных будет очень много, нужно хорошенько оптимизировать код потом... Но все равно, даже если будете читать 40М данных за секунду (а нужно читать больше, по-сути), то Вам не нужно такое количество точек на чарте, Вы ничего не увидите потом. Плюс ко всему, и памяти это будет потреблять очень много. Просто проэкспериментируйте - на хосте создайте массив 40 миллионов точек, как Вы это делаете для генерации импульсов, и запишите их на чарт. Но при этом, установите Chart History Length на соотвествующее число, чтобы видеть все точки. Увидите, что произойдет...
Мы делили апельсин - много наших полегло...
-
- user
- Сообщения: 70
- Зарегистрирован: 22 ноя 2017, 10:29
- Версия LabVIEW: 2019
- Откуда: Санкт-Петербург
- Поблагодарили: 2 раза
- Контактная информация:
Re: Пропуск/задержка/поломка импульсов в sbRio
Чтобы проверить работу контроллера и алгоритма на этом контроллере. Изначально программа была другая, с более сложным алгоритмом. Возникло подозрение, что sbRio даёт неправильные импульсы, поэтому и начал разбираться - смотреть их в программе. Дошло до того, что упростил код до данного примера, чтобы разобраться хотя бы с одним импульсом.А зачем считывать импульсы, которые Вы генерируете?
Как я понял, алгоритм лучше проверять на обычной vi или в режиме симуляции, а как оно работает на самом контроллере, так просто не проверить?
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Пропуск/задержка/поломка импульсов в sbRio
Если хотите проверить, что действительно генерирует sbRIO - лучше используйте осциллограф. Т.к. алгоритм может быть правильный, но тестируя обычную виайку Вы не проверите реальный тайминг, который используется FPGA.
Мы делили апельсин - много наших полегло...
-
- professor
- Сообщения: 3409
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Пропуск/задержка/поломка импульсов в sbRio
[quote=="K0sinus"] так просто не проверить?[/quote]
что есть "просто"?
Правильный вариант проверки - внешним устройством. Осциллографы рулят :)
Ещё вариант - подключить выход ко входу и в параллельном цикле смотреть, что идёт. Но на предельных скоростях может таки сдвигаться. Ну и прочитанные данные, как уже верно сказано, надо через FIFO гнать
что есть "просто"?
Правильный вариант проверки - внешним устройством. Осциллографы рулят :)
Ещё вариант - подключить выход ко входу и в параллельном цикле смотреть, что идёт. Но на предельных скоростях может таки сдвигаться. Ну и прочитанные данные, как уже верно сказано, надо через FIFO гнать
-
- user
- Сообщения: 70
- Зарегистрирован: 22 ноя 2017, 10:29
- Версия LabVIEW: 2019
- Откуда: Санкт-Петербург
- Поблагодарили: 2 раза
- Контактная информация:
Re: Пропуск/задержка/поломка импульсов в sbRio
Понял, учту в будущем. Благодарю за своевременные ответы!
Просто во всех примерах про FPGA пихают всякие индикаторы и смотрят, всё ли работает - я без задней мысли и решил посмотреть графики....
Просто во всех примерах про FPGA пихают всякие индикаторы и смотрят, всё ли работает - я без задней мысли и решил посмотреть графики....
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 4 Ответы
- 615 Просмотры
-
Последнее сообщение Artem.spb