Пропуск/задержка/поломка импульсов в sbRio

Ответить
K0sinus
junior
junior
Сообщения: 52
Зарегистрирован: 22 ноя 2017, 10:29
Репутация: 0
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Контактная информация:

Пропуск/задержка/поломка импульсов в sbRio

Сообщение K0sinus »

Первый опыт с RealTime, формирую импульсы в fpga target sbRio, там же хочу на них посмотреть. Ожидание/реальность сильно отличается. Если запускать vi просто на компьютере, алгоритм работает как надо, импульсы ровные, синхронные. Почему на sbRio не так? Или я теряю по TCP?
Вложения
FA67DC2F-F3C0-427E-BC6B-8FF4A5449283.png
254569A1-8855-44D1-BEA3-9E79ACC30C18.png

Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1069
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Репутация: 0
Версия LabVIEW: 2013-2020
Контактная информация:

Re: Пропуск/задержка/поломка импульсов в sbRio

Сообщение Kosist »

А как Вы их читаете с sbRIO? Цикл в FPGA исполняется с дефолтным таймингом (какая его частота?). И чтобы нормально видеть пульсы, нужно читать их с правильной частотой (10х большей чем генерируемый сигнал, если я не ошибаюсь). Если FPGA использует clock на 40 MHz, то красивый график Вы не увидите, насколько я понимаю...
Мы делили апельсин - много наших полегло...

K0sinus
junior
junior
Сообщения: 52
Зарегистрирован: 22 ноя 2017, 10:29
Репутация: 0
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Контактная информация:

Re: Пропуск/задержка/поломка импульсов в sbRio

Сообщение K0sinus »

Да, частота 40 МГц. То есть, на компьютере невозможно правильно считать импульсы с fpga? Нет никакого способа? Только осциллографом?

Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1069
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Репутация: 0
Версия LabVIEW: 2013-2020
Контактная информация:

Re: Пропуск/задержка/поломка импульсов в sbRio

Сообщение Kosist »

А зачем считывать импульсы, которые Вы генерируете? Если бы было наоборот - если бы FPGA читало импульсы - то тогда более понятно... А так - какая цель, зачем эта информация нужна в приложении? Просто хочеться понять логику - может окажется, что читать все эти импульсы и не обязательно..
Предполагаю, что Вы читаете состояние DIO линий при помощи того кластера, т.е. используя Read/Write Control функцию. А это тоже чревато тем, что нельзя гарантировать, что Вы читаете все данные - ведь контрол постоянно перезаписывается, как написано здесь https://zone.ni.com/reference/en-XX/hel ... _transfer/. Для точного чтения нужно использовать FIFO DMA, чтобы все данные сохранялись. Но в Вашем случае данных будет очень много, нужно хорошенько оптимизировать код потом... Но все равно, даже если будете читать 40М данных за секунду (а нужно читать больше, по-сути), то Вам не нужно такое количество точек на чарте, Вы ничего не увидите потом. Плюс ко всему, и памяти это будет потреблять очень много. Просто проэкспериментируйте - на хосте создайте массив 40 миллионов точек, как Вы это делаете для генерации импульсов, и запишите их на чарт. Но при этом, установите Chart History Length на соотвествующее число, чтобы видеть все точки. Увидите, что произойдет... :crazy:
Мы делили апельсин - много наших полегло...

K0sinus
junior
junior
Сообщения: 52
Зарегистрирован: 22 ноя 2017, 10:29
Репутация: 0
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Контактная информация:

Re: Пропуск/задержка/поломка импульсов в sbRio

Сообщение K0sinus »

А зачем считывать импульсы, которые Вы генерируете?
Чтобы проверить работу контроллера и алгоритма на этом контроллере. Изначально программа была другая, с более сложным алгоритмом. Возникло подозрение, что sbRio даёт неправильные импульсы, поэтому и начал разбираться - смотреть их в программе. Дошло до того, что упростил код до данного примера, чтобы разобраться хотя бы с одним импульсом.
Как я понял, алгоритм лучше проверять на обычной vi или в режиме симуляции, а как оно работает на самом контроллере, так просто не проверить?

Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1069
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Репутация: 0
Версия LabVIEW: 2013-2020
Контактная информация:

Re: Пропуск/задержка/поломка импульсов в sbRio

Сообщение Kosist »

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

Artem.spb

Activity Автор
expert
expert
Сообщения: 1964
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Репутация: 0
Версия LabVIEW: 12-18
Контактная информация:

Re: Пропуск/задержка/поломка импульсов в sbRio

Сообщение Artem.spb »

[quote=="K0sinus"] так просто не проверить?[/quote]
что есть "просто"?
Правильный вариант проверки - внешним устройством. Осциллографы рулят :)
Ещё вариант - подключить выход ко входу и в параллельном цикле смотреть, что идёт. Но на предельных скоростях может таки сдвигаться. Ну и прочитанные данные, как уже верно сказано, надо через FIFO гнать

K0sinus
junior
junior
Сообщения: 52
Зарегистрирован: 22 ноя 2017, 10:29
Репутация: 0
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Контактная информация:

Re: Пропуск/задержка/поломка импульсов в sbRio

Сообщение K0sinus »

Понял, учту в будущем. Благодарю за своевременные ответы!
Просто во всех примерах про FPGA пихают всякие индикаторы и смотрят, всё ли работает - я без задней мысли и решил посмотреть графики....

Ответить

Вернуться в «CompactRIO»