Запись Waveform в TDMS

Работа с файлами и базами данных
Ответить
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Запись Waveform в TDMS

Сообщение Borjomy_1 »

Вопрос у меня тут возник, стратегический.
Исходные данные: есть датчик, который выдает несколько каналов по последовательному порту. Данные идут с дискретом 2мс на канал. Т.е их достаточно много. При чтении делается пачка в Waveform, продолжительностью 0.5..1 сек, таймстамп которой присваивается программно, при приеме пакета. т.е раз в секунду имеем массив нескольких Waveform, длиной 500 отсчетов. Все это дело сохраняется в TDMS, чтобы потом можно было прочитать через Diadem.
Запись идет на флешку ограниченного объема, с циклической перезаписью. Поэтому, чем больше разовый объем записи, тем лучше - меньше изнашивается флешка.
Но. возникает вопрос - как формировать данные? Склеивать Waveform по каналам? Тогда будет проблема с джиттингом таймстампа. На него можно было-бы не обращать внимание, но кто может гарантировать, что не будет разбега при продолжительной работе. Кроме того, датчик подключается на горячую и могут быть перерывы в потоке данных.
Ваше мнение?
PeyNikola
junior
junior
Сообщения: 56
Зарегистрирован: 24 июл 2012, 11:09
Версия LabVIEW: 2011, 202x
Контактная информация:

Re: Запись Waveform в TDMS

Сообщение PeyNikola »

Может имеет смысл работать с временным файлом, а потом из него данные на флешку переносить?

Не знаю как всё организованно, но на всякий случай: Думаю, стоит использовать архитектуру программы с промежуточными циклами для понижения частоты работы с переносом данных из памяти на носитель). Аналогия по этой теме: http://www.labviewportal.org/viewtopic. ... икл#p55933
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Запись Waveform в TDMS

Сообщение Borjomy_1 »

Проблема не в том, как организовать очередь и буфер. Проблема в методиках синхронизации таймстампов. Кстати, флешка - это единственный носитель, на который разрешена запись (основной накопитель также твердотельный, но по соображениям надежности, при работе 24/7, используется только как загрузочный)
Аватара пользователя
IvanLis

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

Re: Запись Waveform в TDMS

Сообщение IvanLis »

Borjomy_1 писал(а):Исходные данные: есть датчик, который выдает несколько каналов по последовательному порту. Данные идут с дискретом 2мс на канал. Т.е их достаточно много. При чтении делается пачка в Waveform, продолжительностью 0.5..1 сек, таймстамп которой присваивается программно, при приеме пакета. т.е раз в секунду имеем массив нескольких Waveform, длиной 500 отсчетов. Все это дело сохраняется в TDMS, чтобы потом можно было прочитать через Diadem.
У Вас каждый канал пишется в отдельный Waweform у которых t0 различны или все каналы закидываются в один Waweform у которых единое значение t0?

Я бы попробовал писать каждый Wave отдельно, тем самым мы защитимся от сбоев, т.е. будет потерян небольшой фрагмент данных. А функции склейки уже возложить на программу просмотра, она же не должна работать в реальном времени....
При склейке данных брать t0 первого кусочка данных, t0 последующих Waweform не учитывать, дабы уменьшить ошибки (главное, что бы не увеличить :crazy: ), от них использовать только значения отсчетов.

Например за 1 сек у нас набирается 500 отсчетов. За минуту, будет 60 Waweform, которые нужно отобразить. При склейке мы берем t0 от первого Waweform, и формируем один массив длиной 60*500=30000.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Запись Waveform в TDMS

Сообщение Borjomy_1 »

У меня каналы пишутся параллельно, у каждого свой Channel Name. Таким образом записывается массив WaveForms, с одинаковым t0. Но t0 + Nотс*dt не равен t0 следующего WaveForms этого-же канала (по крайней мере, я не могу это гарантировать). Записаться-то оно запишется, и без потерь. Однако что будет с привязкой по времени при просмотре тем-же Diadem ом - Бооольшой вопрос. Да и если вычитывать из TDMS, то никаких зацепок нет, как он склеивает.
Аватара пользователя
IvanLis

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

Re: Запись Waveform в TDMS

Сообщение IvanLis »

Borjomy_1 писал(а):У меня каналы пишутся параллельно, у каждого свой Channel Name. Таким образом записывается массив WaveForms, с одинаковым t0. Но t0 + Nотс*dt не равен t0 следующего WaveForms этого-же канала (по крайней мере, я не могу это гарантировать). Записаться-то оно запишется, и без потерь. Однако что будет с привязкой по времени при просмотре тем-же Diadem ом - Бооольшой вопрос. Да и если вычитывать из TDMS, то никаких зацепок нет, как он склеивает.
Значит я верно понял проблему. И мне кажется что вероятность совпадения очень мала, это как про снаряд в одну воронку :D .

Я вообще писал бы в бинарники, каждый Wave для каждого канала в свой файл, зато потом крутить с ними можно как угодно. (http://www.labviewportal.org/viewtopic. ... 240#p59238)
Если бы t0 шло от платы захвата, то тут еще что-то можно было говорить о реальном времени, но в Вашем случае оно вообще назначается ПК.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Запись Waveform в TDMS

Сообщение Borjomy_1 »

Да с бинарниками никаких проблем нет, я уже лет 20 этим занимаюсь. Единственная загвоздка - требуется писать свой собственный просмотрщик. Старый уже стал для таких дел... ))) Хочется стандартизации, тем более, что данные линейные и фиксированной структуры.
для каждого канала в свой файл
это не удобно. Поскольку просматривать это надо все вместе, совмещать как-то надо и требуется контроль целостности структуры файлов. Слишком сложно и ненадежно.
step
beginner
beginner
Сообщения: 12
Зарегистрирован: 14 авг 2011, 15:38
Версия LabVIEW: 2013, 2014
Благодарил (а): 2 раза
Контактная информация:

Re: Запись Waveform в TDMS

Сообщение step »

Помогите организовать непрерывную запись Wave сигнала в бинарный формат.
Задача стоит такая. Есть wave сигналы длительностью от 10 сек до 3 часов которые после цифровой обработки необходимо сохранить в бинарном формате, для последующего открытия их в другой программе.
Пробовал сохранить сгенерированый сигнал в бинарный формат при помощи Write to Binary File Function, сохраняет только первые отчеты.
1.jpg
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

Re: Запись Waveform в TDMS

Сообщение Vitekkz88 »

step писал(а):
Помогите организовать непрерывную запись Wave сигнала в бинарный формат.
Вложения
Binary.png
Binary.png (10.79 КБ) 10321 просмотр
Write Binary File.vi
(56.16 КБ) 225 скачиваний
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
getz
interested
interested
Сообщения: 1
Зарегистрирован: 07 мар 2015, 17:33
Версия LabVIEW: 2009
Контактная информация:

Re: Запись Waveform в TDMS

Сообщение getz »

step писал(а):Помогите организовать непрерывную запись Wave сигнала в бинарный формат. ///
что мешает сделать запись в тдмс? и просматриавть экселем? примеры есть в папке установки. при длительных записях создаются новые листы чтобы в экселе можно было просматривать. в 2007 читается. около 20 минут на одном листе с циклом 1 мс
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Сохранение данных»