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

Запись данных в файл tdms

Добавлено: 30 янв 2021, 18:29
Boxa
Добрый вечер, не могу понять как правильно сохранить файл tdms и потом его открыть. По хорошему нужно писать то что идет на экран. Если ставлю в цикл то он создает фаил каждый раз как выполняет цикл for, если поставить добавлять в фаил, то на выводе получает муть, а в эксель видно что там не единый фаил. Если ставлю за цикл то пишется только последнее и индесацию сделать не дает на туннеле.
1.png

Re: Запись данных в файл tdms

Добавлено: 30 янв 2021, 19:16
Kosist
Нужно еще выбрать "One Header only", тогда данные будут записываться до одной группы. Если выбрать только добавление в файл, то новые данные будут сохраняться в новую группу.
Cfg File.png

Re: Запись данных в файл tdms

Добавлено: 30 янв 2021, 19:44
Boxa
Kosist писал(а): 30 янв 2021, 19:16 Нужно еще выбрать "One Header only", тогда данные будут записываться до одной группы. Если выбрать только добавление в файл, то новые данные будут сохраняться в новую группу.
Спасибо, именно этой галочки и не хватало, я её по другому понимал:)
Единсвенное на выводе графика время сдвинуто 0,02 секунды и если открыть в эксел то есть для каждого канала со "звездочкой" шкала времени с нуля и одна общая как раз начинается с 0,02 (число округлил)

Re: Запись данных в файл tdms

Добавлено: 30 янв 2021, 20:07
Boxa
Осциллограмма обрезана по времени. Всего было 60 секунд. Первый график записанное на выходе, второй через DAQ ассистента на входе.
2.png
Какой максимальный размер файла или точек можно записать таким образом?

Re: Запись данных в файл tdms

Добавлено: 30 янв 2021, 22:00
Borjomy_1
Для tdms ограничений нет. А вот у excel количество строк не более 65536.

Re: Запись данных в файл tdms

Добавлено: 17 фев 2021, 21:07
Boxa
Здравствуйте, снова какие-то проблемы с tdms. При чтении странная развертка времени: первая точка совпадает со значением внутри файла а потом labview фантазирует каким-то образом растягивая во времени сигнал. Приложил картинку как открывает labview и что в файле tdms (преобразовал его в эксель).
Есть соображение откуда идет масштабирование по времени?

Re: Запись данных в файл tdms

Добавлено: 17 фев 2021, 21:22
IvanLis
Boxa писал(а): 17 фев 2021, 21:07 Есть соображение откуда идет масштабирование по времени?
Вы какой контрол используете для отображения XYGraph или WaveForm Graph ?
У вас к стати разброс в dt большой, там значения изменяются между 0,125654220581055 и 0,058053493499756, хотя среднее 0,06573376140079.

Re: Запись данных в файл tdms

Добавлено: 17 фев 2021, 21:32
Boxa
IvanLis писал(а): 17 фев 2021, 21:22 Вы какой контрол используете для отображения XYGraph или WaveForm Graph ?
У вас к стати разброс в dt большой, там значения изменяются между 0,125654220581055 и 0,058053493499756, хотя среднее 0,06573376140079.
При записи использую Waveform Chart и его же для отображения записанных осциллограм. Хотел для вывода использовать Graph так как в нем есть курсоры, но граф берет отсечки времени совершенно другие, которые указаны в колонках времени со звездочкой, а если в нем убрать "галку" игнорировать таимстэмп то время становится как и в chart.

Re: Запись данных в файл tdms

Добавлено: 17 фев 2021, 22:25
IvanLis
Вам либо писать нужно с более стабильными таймингами, т.е. интервал между отсчетами должен быть постоянным.
Либо для каждого отсчета писать Время и Значение, а отображать на XYGraph.
Чудес не бывает :dntknw:

Re: Запись данных в файл tdms

Добавлено: 17 фев 2021, 23:03
Boxa
IvanLis писал(а): 17 фев 2021, 22:25 Вам либо писать нужно с более стабильными таймингами, т.е. интервал между отсчетами должен быть постоянным.
Либо для каждого отсчета писать Время и Значение, а отображать на XYGraph.
Чудес не бывает :dntknw:
А почему выводится не по времени указанному в файле? Вы думаете проблема в записи файла, а не в его чтении?

Re: Запись данных в файл tdms

Добавлено: 18 фев 2021, 15:08
Boxa
Реально оказалось что проблема в записи файла. При записи tdms создает свою шкалу времени, в моём примере в ней оказался dt=1. И при выводе графика первое значение берется из Time, а следующие значения с dt=1 которое он берет в графе Untitled_Time* строятся на графике и получается если у меня 10 отсчетов в файле tdms и начинается он например с 5 сек-ы и заканчивается на 6 сек-е, при выводе первое значение будет на 5-й секунде а последнее не на 6-й как в реальности, а на 5+9 отсчетов и итоговое получается 14-я секунда. Так и формировалась моя ошибка времени при выводе.
Получается, что только при равенстве dt в обоих графах будет корректное отображение как с учетом таимстэмпа так и без него.
Я посчитал примерно средний dt у себя в графе Time и с его использованием записал осциллограмму (build waveform), при небольших длинах ошибка принудительного сэмпла допустима.
Но возник вопрос, а как в эту графу Time файла tdms писать время с нужным dt?

Re: Запись данных в файл tdms

Добавлено: 18 фев 2021, 17:21
Artem.spb
Boxa писал(а): 18 фев 2021, 15:08 Но возник вопрос, а как в эту графу Time файла tdms писать время с нужным dt?
Встречный вопрос: а как вы пишете файл?
Тут два варианта - писать туда waveform, тогда время запишется как dt и будет постоянным.
Если же время гуляет, я пишу доп канал, в котором хранится смещение точи относительно начала записи.

Re: Запись данных в файл tdms

Добавлено: 19 фев 2021, 11:57
Boxa
Artem.spb писал(а): 18 фев 2021, 17:21 Встречный вопрос: а как вы пишете файл?
Тут два варианта - писать туда waveform, тогда время запишется как dt и будет постоянным.
Если же время гуляет, я пишу доп канал, в котором хранится смещение точи относительно начала записи.
Как то так. В настройках записи указал писать Time в одной колонке, но как оказалось это время чисто для меня и при построении не учитывается. Сейчас принудительно ставлю ДТ 0,063 чтобы примерно совпадало.

Re: Запись данных в файл tdms

Добавлено: 19 фев 2021, 20:41
IvanLis
Boxa писал(а): 19 фев 2021, 11:57 Как то так.
Вы понимаете, что каждую задачу можно решить несколькими способами и тем меньше Вы информации даете, тем самым затягивая время и подавляя желание оказать помощь.

Как Вы считываете данные?
Если это скалярные значения, то один вариант.
Если как DDT, судя по скрину, то нужно знать что внутри.
Если там WaveForm, то необходимо делать так...
Снимок экрана от 2021-02-19 20-36-50.png
Но по Вашему скрину (то что на нем видно) создается впечатление, что вы несколько каналов считываете в скаляре, а потом объединяете в массив и пишите как WaveForm. Что по определению не правильно.