Меню

+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
Тема закрыта
|
||||
|
LTR-EU-2 +2LTR27+Labview 8.51 Задержка в чении данПодскажите, пожалуйста, в чем может быть дело.
|
|||
|
||||
|
Re: LTR-EU-2 +2LTR27+Labview 8.51 Задержка в чении данВероятно, существуют какие-то стандартные подходы к работе с многомодульными конструкциями. Ведь вы выпускаете крейты и с 8-ю и более модулями. Как в них осуществляется опрос всех модулей? Исходя из каких принципов? |
|||
|
||||
|
Re: LTR-EU-2 +2LTR27+Labview 8.51 Задержка в чении данПо labview сходу не скажу, но, может быть, там сделан большой размер буфера чтения, и он долго заполняется?
А если говорить на уровне LTRAPI (для C/C++), то
Под реальную задачу, видимо, пример надо переработать и несколько усложнить. Под labview, насколько я понимаю, импортируется обертка LTRAPI в C#, т.е. интерфейс в конечном счете тот же. |
|||
|
||||
|
Re: LTR-EU-2 +2LTR27+Labview 8.51 Задержка в чении данПод "задержкой регистрации изменения сигнала" подразумеваю время от момента изменения сигнала (например подачи сигнала от батарейки на вход АЦП) до момента отображения этого изменения на экране компьютера.
|
|||
|
||||
|
Re: LTR-EU-2 +2LTR27+Labview 8.51 Задержка в чении данПроблема в том, что сложно сказать, в чем проблема, не зная точно, как устроена Ваша программа. Каждый модуль LTR в LabView – свой по сути независимый объект, поэтому constructor Node для каждого действительно должен быть свой и процесс установки настроек и цепочка вызова функций – свои. Т.е. по сути сбор может осуществляться в совершенно независимых ветвях программы, и тогда кто выше, а кто ниже никак не должно влиять. У Вас же получается, что как-то сделана зависимость «нижнего» модуля от «верхнего»? Что такое «частота выполнения цикла опроса» и как она задается? Чтение в примере с сайта цикл выполняется постоянно. И неплохо было бы конкретный пример: частота дискретизации такая-то, частота выполнения цикла опроса такая-то, size и timeout у ReadData такие-то, задержка получилась такая-то. |
|||
|
||||
|
Re: LTR-EU-2 +2LTR27+Labview 8.51 Задержка в чении данУдалось получить примерно одинаково быстрый ответ с обоих модулей таким путем: частота дискретизации у "верхнего" модуля должна быть меньше, чем у "нижнего", например, 0 и 9. Если частота дискретизации у обоих модулей одинакова - возникает задержка у "нижнего" модуля.
|
|||
|
||||
|
Re: LTR-EU-2 +2LTR27+Labview 8.51 Задержка в чении данСтранно... А можете этот измененный пример прислать мне на почту? |
|||
|
||||
|
Re: LTR-EU-2 +2LTR27+Labview 8.51 Задержка в чении данПрошу прощения, но при таком подходе, хотя "нижний" модуль начинает реагировать быстро, затормаживается "верхний" модуль. Пример высылаю. |
|||
|
||||
|
Re: LTR-EU-2 +2LTR27+Labview 8.51 Задержка в чении данАлексей, мне кажется, что у Вас просто получается последовательный (поочередный) опрос большими порциями. Данные, собранные модулем A, ждут своей очереди, пока читается модуль B (полярник написал письмо на материк, но опоздал: почтовый самолет улетел 5 минут назад. Теперь почту заберет только следующим рейсом).
|
|||
|
||||
|
Re: LTR-EU-2 +2LTR27+Labview 8.51 Задержка в чении данЕсли частоты разные, то это логично, что так и будет. Так как один модуль в единицу времени будет передавать больше данных, а забирать в одном цикле мы будем одинаковое количество с обоих модулей, т.е. у модуля который работает быстрее будут накапливаться несчитанные данные, что и приведет к отставанию. Кстати, эта задержка возникает сразу после старта или после продолжительного времени работы модулей и со временем увеличивается? А если убрать таймер опроса и сделать по циклу отдельно для каждого модуля, а не общий – задержка останется? P.S.: Вообще таймер опроса не нужен. Из блока Recv мы выходим только если примем нужное количество отсчетов (size) или по таймауту (поле timeout в мс), ну или по ошибке. Т.е. если мы постоянно вызываем Recv, то мы принимаем данные со скоростью, с которой их вырабатывает модуль (что определяется частотой дискретизации), что в общем то и нужно при непрерывном сборе. Таким образом, если таймер опроса срабатывает раньше, чем успеваем выполнить Recv, то он ни на что не влияет, а если позже, то будет задержка между Recv, что приведет к тому, что мы будем читать данные медленнее чем их передает модуль, что приведет к запаздыванию данных. |
|||
|
||||
|
Re: LTR-EU-2 +2LTR27+Labview 8.51 Задержка в чении данДействительно, наилучшим вариантом оказалось сделать по циклу отдельно для каждого модуля. Тогда все остальные параметры примера можно не трогать, оба модуля работают быстро. Проблему можно считать решенной. Спасибо! |
Страницы 1
Тема закрыта