проблема с выводом данных
-
- beginner
- Сообщения: 43
- Зарегистрирован: 10 янв 2021, 17:41
- Версия LabVIEW: 2019
- Благодарил (а): 8 раз
- Контактная информация:
проблема с выводом данных
Здравствуйте, переделал сбор данных с экспрес блоков на обычные элементы с очередями и появилась проблема что при длительных процессах как будто буфер появился. Если сигнал меняется в пределах до минуты то задержка его появления на графике не большая и почти приемлема, но чем дольше работает программа тем больше разница между изменением сигнала на входе АЦП и его появлением на графике. Что может быть?
-
IvanLis
- guru
- Сообщения: 5410
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 25 раз
- Поблагодарили: 75 раз
Re: проблема с выводом данных
Видимо цикл обработки вращается медленнее цикла сбора данных.Boxa писал(а): ↑21 май 2023, 17:53 Здравствуйте, переделал сбор данных с экспрес блоков на обычные элементы с очередями и появилась проблема что при длительных процессах как будто буфер появился. Если сигнал меняется в пределах до минуты то задержка его появления на графике не большая и почти приемлема, но чем дольше работает программа тем больше разница между изменением сигнала на входе АЦП и его появлением на графике. Что может быть?
Проконтролируйте длину очереди на обработку, если она накапливается (а скорее всего так и есть), то нужно или "облегчать" обработку или разносить по разным циклам.
Например, запись в файл можно вынести в параллельный цикл.
Придерживайтесь правила, что вся работа с GUI должна быть в одном цикле, а остальное можно раскидывать.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- beginner
- Сообщения: 43
- Зарегистрирован: 10 янв 2021, 17:41
- Версия LabVIEW: 2019
- Благодарил (а): 8 раз
- Контактная информация:
Re: проблема с выводом данных
А как это проверить можете подсказать?
Так и хотел, но пока не сообразил как вынести запись в фаил и другие функции в отдельные циклы т.к. кое где и замедление нужно но не могу использоваь т.к. торможу вывод графика. И если вынести в другой цикл запись она не начнет отставать от отображения? Как раз сейчас экспереметирую с записью чтобы уйти от экспрессов полностью, но пока не все получается.
Когда на сименс писал там можно было определить какой код с какой скоростью обрабатывается и крутить это паралельно т.к. вывод на экран цифр и сообщений не требуется с максимальной скоростью, только регулятор и аналоги на максимуме, а тут даже экспресс с фильтром использовал чтобы как то уменьшить скорость вывода на экран.
-
- professor
- Сообщения: 3146
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 32 раза
- Поблагодарили: 135 раз
- Контактная информация:
Re: проблема с выводом данных
Не знаю, как работает у вас запись в файл, но express vi любят открывать-закрывать файлы, так что это первый источник диких тормозов.
Не понятно, какая у вас длина выборки. Если вы гоняете данные слишком часто, это тоже может вызывать задержку. Обычная частота 5-10 Гц.
У очередей есть функция статуса, там можно проверить количество элементов в очереди. Это первый способ убедиться, что очередь накапливается (что и так очевидно).
Можете поставить измерение времени выполнения обоих циклов и посмотреть, на сколько второй работает дольше первого. Просто время/тики и через сдвиговый регистр вычислит разницу.
Не понятно, какая у вас длина выборки. Если вы гоняете данные слишком часто, это тоже может вызывать задержку. Обычная частота 5-10 Гц.
У очередей есть функция статуса, там можно проверить количество элементов в очереди. Это первый способ убедиться, что очередь накапливается (что и так очевидно).
Можете поставить измерение времени выполнения обоих циклов и посмотреть, на сколько второй работает дольше первого. Просто время/тики и через сдвиговый регистр вычислит разницу.
-
- beginner
- Сообщения: 43
- Зарегистрирован: 10 янв 2021, 17:41
- Версия LabVIEW: 2019
- Благодарил (а): 8 раз
- Контактная информация:
Re: проблема с выводом данных
Если я правильно реализовал о чем Вы говорили, то времена примерно одинаковые.Artem.spb писал(а): ↑22 май 2023, 03:25 Не знаю, как работает у вас запись в файл, но express vi любят открывать-закрывать файлы, так что это первый источник диких тормозов.
Не понятно, какая у вас длина выборки. Если вы гоняете данные слишком часто, это тоже может вызывать задержку. Обычная частота 5-10 Гц.
У очередей есть функция статуса, там можно проверить количество элементов в очереди. Это первый способ убедиться, что очередь накапливается (что и так очевидно).
Можете поставить измерение времени выполнения обоих циклов и посмотреть, на сколько второй работает дольше первого. Просто время/тики и через сдвиговый регистр вычислит разницу.
Использую Sample rate (Hz) = 1000, а factor sample 0,04 при создании задачи для сбора данных.
А если я создам еще одну очередь и данный после "установки нуля по времени" буду в другой цикл передавать для записи в фаил это будет как параллельные циклы работать или нет?
-
- professor
- Сообщения: 3146
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 32 раза
- Поблагодарили: 135 раз
- Контактная информация:
Re: проблема с выводом данных
И сейчас есть задержка? Скорости совпадают, проблем нет.
Единственное, что я вижу - вы не включили запись файла
Единственное, что я вижу - вы не включили запись файла
-
- beginner
- Сообщения: 43
- Зарегистрирован: 10 янв 2021, 17:41
- Версия LabVIEW: 2019
- Благодарил (а): 8 раз
- Контактная информация:
Re: проблема с выводом данных
Запись вклечена, светиться REC. На стандартном эмуляторе лабвью проверяю, ацп на объекте осталась, просто хотелось бы это устранить до возвращения (есть неделя на отладку).
Завел сейчас еще одну очередь и один цикл для записи т.к. со временем начались всплески по времени у второго цикла до 120мс может так задержка и накапливалась, сейчас их меньше в разы. Думаю третью очередь завести чтобы все экспрессы разнести.
Я же правильно понимаю что с очередями все циклы параллельно работает? И я могу данные брать из одной очереди в двух циклах?
-
- beginner
- Сообщения: 43
- Зарегистрирован: 10 янв 2021, 17:41
- Версия LabVIEW: 2019
- Благодарил (а): 8 раз
- Контактная информация:
Re: проблема с выводом данных
Единственное после добавления отдельных циклов для записи и для вывода значений на экран из новой очереди, первая очередь при нажатии кнопки стоп начала ругаться. Но теперь в цикле вывода графика вообще нет всплесков по времени обработки.
Осталось опробовать в записи что теперь получится, а то я буду видеть процесс на экране и думать что он записался, а по факту нет.
Осталось опробовать в записи что теперь получится, а то я буду видеть процесс на экране и думать что он записался, а по факту нет.
-
- professor
- Сообщения: 3146
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 32 раза
- Поблагодарили: 135 раз
- Контактная информация:
Re: проблема с выводом данных
Как вы останавливаете цикл? Я часто делаю это именно по ошибке от очереди. Тогда не нужно городить всякие локальные переменные "stop"
-
- beginner
- Сообщения: 43
- Зарегистрирован: 10 янв 2021, 17:41
- Версия LabVIEW: 2019
- Благодарил (а): 8 раз
- Контактная информация:
Re: проблема с выводом данных
кнопка останова действует на останов цикла сбора данных, остальные 3 цикла по ошибке от очереди.
-
- beginner
- Сообщения: 43
- Зарегистрирован: 10 янв 2021, 17:41
- Версия LabVIEW: 2019
- Благодарил (а): 8 раз
- Контактная информация:
Re: проблема с выводом данных
Как раз из той очереди что формируется в цикле куда действует стоп. После нажатия идет ошибка и всё останавливается и ошибка стала отображается. По идее так и должен работать останов по ошибке, но раньше ее не было, когда одна очередь была. Теперь их три.
-
- professor
- Сообщения: 3146
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 32 раза
- Поблагодарили: 135 раз
- Контактная информация:
Re: проблема с выводом данных
Вы считаете, что по вашим огрызкам кода можно понять, что там происходит?
Это сообщение банально означает, что вы бросили провод ошибки на произвол судьбы.
Это сообщение банально означает, что вы бросили провод ошибки на произвол судьбы.
-
- beginner
- Сообщения: 43
- Зарегистрирован: 10 янв 2021, 17:41
- Версия LabVIEW: 2019
- Благодарил (а): 8 раз
- Контактная информация:
Re: проблема с выводом данных
Победил, убрал объединение ошибок во втором цикле от трех очередей и статус очереди.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение