проблема с выводом данных

Простейшие вопросы в области инженерной разработки
Ответить
Boxa
beginner
beginner
Сообщения: 48
Зарегистрирован: 10 янв 2021, 17:41
Версия LabVIEW: 2019
Благодарил (а): 13 раз
Контактная информация:

проблема с выводом данных

Сообщение Boxa »

Здравствуйте, переделал сбор данных с экспрес блоков на обычные элементы с очередями и появилась проблема что при длительных процессах как будто буфер появился. Если сигнал меняется в пределах до минуты то задержка его появления на графике не большая и почти приемлема, но чем дольше работает программа тем больше разница между изменением сигнала на входе АЦП и его появлением на графике. Что может быть?
Вложения
основная программа часть 2
основная программа часть 2
основная программа часть 1
основная программа часть 1
параметризация сбора данных task DAQ
параметризация сбора данных task DAQ
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 88 раз

Re: проблема с выводом данных

Сообщение IvanLis »

Boxa писал(а): 21 май 2023, 17:53 Здравствуйте, переделал сбор данных с экспрес блоков на обычные элементы с очередями и появилась проблема что при длительных процессах как будто буфер появился. Если сигнал меняется в пределах до минуты то задержка его появления на графике не большая и почти приемлема, но чем дольше работает программа тем больше разница между изменением сигнала на входе АЦП и его появлением на графике. Что может быть?
Видимо цикл обработки вращается медленнее цикла сбора данных.
Проконтролируйте длину очереди на обработку, если она накапливается (а скорее всего так и есть), то нужно или "облегчать" обработку или разносить по разным циклам.

Например, запись в файл можно вынести в параллельный цикл.
Придерживайтесь правила, что вся работа с GUI должна быть в одном цикле, а остальное можно раскидывать.
Boxa
beginner
beginner
Сообщения: 48
Зарегистрирован: 10 янв 2021, 17:41
Версия LabVIEW: 2019
Благодарил (а): 13 раз
Контактная информация:

Re: проблема с выводом данных

Сообщение Boxa »

IvanLis писал(а): 21 май 2023, 20:33 Видимо цикл обработки вращается медленнее цикла сбора данных.
Проконтролируйте длину очереди на обработку, если она накапливается (а скорее всего так и есть), то нужно или "облегчать" обработку или разносить по разным циклам.
А как это проверить можете подсказать?
IvanLis писал(а): 21 май 2023, 20:33 Например, запись в файл можно вынести в параллельный цикл.
Придерживайтесь правила, что вся работа с GUI должна быть в одном цикле, а остальное можно раскидывать.
Так и хотел, но пока не сообразил как вынести запись в фаил и другие функции в отдельные циклы т.к. кое где и замедление нужно но не могу использоваь т.к. торможу вывод графика. И если вынести в другой цикл запись она не начнет отставать от отображения? Как раз сейчас экспереметирую с записью чтобы уйти от экспрессов полностью, но пока не все получается.
Когда на сименс писал там можно было определить какой код с какой скоростью обрабатывается и крутить это паралельно т.к. вывод на экран цифр и сообщений не требуется с максимальной скоростью, только регулятор и аналоги на максимуме, а тут даже экспресс с фильтром использовал чтобы как то уменьшить скорость вывода на экран.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3407
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 176 раз
Контактная информация:

Re: проблема с выводом данных

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

Не знаю, как работает у вас запись в файл, но express vi любят открывать-закрывать файлы, так что это первый источник диких тормозов.

Не понятно, какая у вас длина выборки. Если вы гоняете данные слишком часто, это тоже может вызывать задержку. Обычная частота 5-10 Гц.

У очередей есть функция статуса, там можно проверить количество элементов в очереди. Это первый способ убедиться, что очередь накапливается (что и так очевидно).
Можете поставить измерение времени выполнения обоих циклов и посмотреть, на сколько второй работает дольше первого. Просто время/тики и через сдвиговый регистр вычислит разницу.
Boxa
beginner
beginner
Сообщения: 48
Зарегистрирован: 10 янв 2021, 17:41
Версия LabVIEW: 2019
Благодарил (а): 13 раз
Контактная информация:

Re: проблема с выводом данных

Сообщение Boxa »

Artem.spb писал(а): 22 май 2023, 03:25 Не знаю, как работает у вас запись в файл, но express vi любят открывать-закрывать файлы, так что это первый источник диких тормозов.

Не понятно, какая у вас длина выборки. Если вы гоняете данные слишком часто, это тоже может вызывать задержку. Обычная частота 5-10 Гц.

У очередей есть функция статуса, там можно проверить количество элементов в очереди. Это первый способ убедиться, что очередь накапливается (что и так очевидно).
Можете поставить измерение времени выполнения обоих циклов и посмотреть, на сколько второй работает дольше первого. Просто время/тики и через сдвиговый регистр вычислит разницу.
Если я правильно реализовал о чем Вы говорили, то времена примерно одинаковые.
Использую Sample rate (Hz) = 1000, а factor sample 0,04 при создании задачи для сбора данных.

А если я создам еще одну очередь и данный после "установки нуля по времени" буду в другой цикл передавать для записи в фаил это будет как параллельные циклы работать или нет?
Вложения
e.jpg
w.jpg
q.jpg
Artem.spb

Activity Автор
professor
professor
Сообщения: 3407
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 176 раз
Контактная информация:

Re: проблема с выводом данных

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

И сейчас есть задержка? Скорости совпадают, проблем нет.
Единственное, что я вижу - вы не включили запись файла
Boxa
beginner
beginner
Сообщения: 48
Зарегистрирован: 10 янв 2021, 17:41
Версия LabVIEW: 2019
Благодарил (а): 13 раз
Контактная информация:

Re: проблема с выводом данных

Сообщение Boxa »

Artem.spb писал(а): 23 май 2023, 11:14 И сейчас есть задержка? Скорости совпадают, проблем нет.
Единственное, что я вижу - вы не включили запись файла
Запись вклечена, светиться REC. На стандартном эмуляторе лабвью проверяю, ацп на объекте осталась, просто хотелось бы это устранить до возвращения (есть неделя на отладку).

Завел сейчас еще одну очередь и один цикл для записи т.к. со временем начались всплески по времени у второго цикла до 120мс может так задержка и накапливалась, сейчас их меньше в разы. Думаю третью очередь завести чтобы все экспрессы разнести.

Я же правильно понимаю что с очередями все циклы параллельно работает? И я могу данные брать из одной очереди в двух циклах?
Boxa
beginner
beginner
Сообщения: 48
Зарегистрирован: 10 янв 2021, 17:41
Версия LabVIEW: 2019
Благодарил (а): 13 раз
Контактная информация:

Re: проблема с выводом данных

Сообщение Boxa »

Единственное после добавления отдельных циклов для записи и для вывода значений на экран из новой очереди, первая очередь при нажатии кнопки стоп начала ругаться. Но теперь в цикле вывода графика вообще нет всплесков по времени обработки.
Осталось опробовать в записи что теперь получится, а то я буду видеть процесс на экране и думать что он записался, а по факту нет.
Вложения
a.jpg
Artem.spb

Activity Автор
professor
professor
Сообщения: 3407
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 176 раз
Контактная информация:

Re: проблема с выводом данных

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

Как вы останавливаете цикл? Я часто делаю это именно по ошибке от очереди. Тогда не нужно городить всякие локальные переменные "stop"
Boxa
beginner
beginner
Сообщения: 48
Зарегистрирован: 10 янв 2021, 17:41
Версия LabVIEW: 2019
Благодарил (а): 13 раз
Контактная информация:

Re: проблема с выводом данных

Сообщение Boxa »

Artem.spb писал(а): 23 май 2023, 13:33 Как вы останавливаете цикл? Я часто делаю это именно по ошибке от очереди. Тогда не нужно городить всякие локальные переменные "stop"
кнопка останова действует на останов цикла сбора данных, остальные 3 цикла по ошибке от очереди.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3407
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 176 раз
Контактная информация:

Re: проблема с выводом данных

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

тогда откуда сообщение об ошибке?
Boxa
beginner
beginner
Сообщения: 48
Зарегистрирован: 10 янв 2021, 17:41
Версия LabVIEW: 2019
Благодарил (а): 13 раз
Контактная информация:

Re: проблема с выводом данных

Сообщение Boxa »

Artem.spb писал(а): 23 май 2023, 15:25 тогда откуда сообщение об ошибке?
Как раз из той очереди что формируется в цикле куда действует стоп. После нажатия идет ошибка и всё останавливается и ошибка стала отображается. По идее так и должен работать останов по ошибке, но раньше ее не было, когда одна очередь была. Теперь их три.
Вложения
12.jpg
Artem.spb

Activity Автор
professor
professor
Сообщения: 3407
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 176 раз
Контактная информация:

Re: проблема с выводом данных

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

Вы считаете, что по вашим огрызкам кода можно понять, что там происходит?
Это сообщение банально означает, что вы бросили провод ошибки на произвол судьбы.
Boxa
beginner
beginner
Сообщения: 48
Зарегистрирован: 10 янв 2021, 17:41
Версия LabVIEW: 2019
Благодарил (а): 13 раз
Контактная информация:

Re: проблема с выводом данных

Сообщение Boxa »

Artem.spb писал(а): 23 май 2023, 16:42 Вы считаете, что по вашим огрызкам кода можно понять, что там происходит?
Это сообщение банально означает, что вы бросили провод ошибки на произвол судьбы.
Победил, убрал объединение ошибок во втором цикле от трех очередей и статус очереди.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»