Страница 1 из 1

Тормозит RT host на sbrio 9636

СообщениеДобавлено: Пт дек 13, 2013 10:21 am
Alex609
Добрый день
В рамках свой диссертационной работы занимаюсь изготовлением прецизионного мехатронного пресса под управлением Labview, в качестве платы управления используется плата sbrio 9636. Для вычисления скорости вращения используются абсолютные энкодеры с выходом в виде кода Грея. Все это обрабатывается на FPGA. Регулятор по скорости реализован на RT контроллере. Размер буфера FIFO равен 1 элементу. Данные из FIFO забираются с частотой в 1 кГц.

Возникла проблема следующего рода:
данные из буфера FIFO на RT контроллер приходят с опозданием в 3-4 секунды, хотя должны вроде как мгновенно, тк на FPGA нет никаких задержек с обработкой и отправкой.

P.S. Проблема с задержкой наблюдается только при использовании циклов с тактированием, при использовании простого бесконечного цикла без привязки ко времени все просто "летает", как можно решить данный вопрос, тк обязательна привязка ко времени?

Заранее спасибо

Re: Тормозит RT host на sbrio 9636

СообщениеДобавлено: Чт дек 26, 2013 11:51 am
Техподдержка NI
Зачем вы используете буфер на 1 элемент и соответственно поэлементно считываете? При поэлементном считывании из буфера существенно увеличиваются накладные расходы процессора и в таком случае гораздо эффективнее (и быстрее) использовать передачу через терминалы лицевой панели FPGA (Read/Write Control) http://zone.ni.com/reference/en-XX/help ... _transfer/

Проверьте успевает ли цикл с приоритетом выполняться за заданное вами время (1 мс). Для этого можно использовать дополнительные терминалы Actual End и Finished Late? . Вполне возможно задержки которые вы видите вызваны тем, что цикл выполняется с большим приоритетом и не укладывается в указанное вами время, таким образом не остается процессорного время для других задач (например для обмена данными между хостом и контроллером). http://zone.ni.com/reference/en-XX/help ... imed_loop/