Запись Waveform в TDMS
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Запись Waveform в TDMS
Вопрос у меня тут возник, стратегический.
Исходные данные: есть датчик, который выдает несколько каналов по последовательному порту. Данные идут с дискретом 2мс на канал. Т.е их достаточно много. При чтении делается пачка в Waveform, продолжительностью 0.5..1 сек, таймстамп которой присваивается программно, при приеме пакета. т.е раз в секунду имеем массив нескольких Waveform, длиной 500 отсчетов. Все это дело сохраняется в TDMS, чтобы потом можно было прочитать через Diadem.
Запись идет на флешку ограниченного объема, с циклической перезаписью. Поэтому, чем больше разовый объем записи, тем лучше - меньше изнашивается флешка.
Но. возникает вопрос - как формировать данные? Склеивать Waveform по каналам? Тогда будет проблема с джиттингом таймстампа. На него можно было-бы не обращать внимание, но кто может гарантировать, что не будет разбега при продолжительной работе. Кроме того, датчик подключается на горячую и могут быть перерывы в потоке данных.
Ваше мнение?
Исходные данные: есть датчик, который выдает несколько каналов по последовательному порту. Данные идут с дискретом 2мс на канал. Т.е их достаточно много. При чтении делается пачка в Waveform, продолжительностью 0.5..1 сек, таймстамп которой присваивается программно, при приеме пакета. т.е раз в секунду имеем массив нескольких Waveform, длиной 500 отсчетов. Все это дело сохраняется в TDMS, чтобы потом можно было прочитать через Diadem.
Запись идет на флешку ограниченного объема, с циклической перезаписью. Поэтому, чем больше разовый объем записи, тем лучше - меньше изнашивается флешка.
Но. возникает вопрос - как формировать данные? Склеивать Waveform по каналам? Тогда будет проблема с джиттингом таймстампа. На него можно было-бы не обращать внимание, но кто может гарантировать, что не будет разбега при продолжительной работе. Кроме того, датчик подключается на горячую и могут быть перерывы в потоке данных.
Ваше мнение?
-
- junior
- Сообщения: 56
- Зарегистрирован: 24 июл 2012, 11:09
- Версия LabVIEW: 2011, 202x
- Контактная информация:
Re: Запись Waveform в TDMS
Может имеет смысл работать с временным файлом, а потом из него данные на флешку переносить?
Не знаю как всё организованно, но на всякий случай: Думаю, стоит использовать архитектуру программы с промежуточными циклами для понижения частоты работы с переносом данных из памяти на носитель). Аналогия по этой теме: http://www.labviewportal.org/viewtopic. ... икл#p55933
Не знаю как всё организованно, но на всякий случай: Думаю, стоит использовать архитектуру программы с промежуточными циклами для понижения частоты работы с переносом данных из памяти на носитель). Аналогия по этой теме: http://www.labviewportal.org/viewtopic. ... икл#p55933
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Запись Waveform в TDMS
Проблема не в том, как организовать очередь и буфер. Проблема в методиках синхронизации таймстампов. Кстати, флешка - это единственный носитель, на который разрешена запись (основной накопитель также твердотельный, но по соображениям надежности, при работе 24/7, используется только как загрузочный)
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 88 раз
Re: Запись Waveform в TDMS
У Вас каждый канал пишется в отдельный Waweform у которых t0 различны или все каналы закидываются в один Waweform у которых единое значение t0?Borjomy_1 писал(а):Исходные данные: есть датчик, который выдает несколько каналов по последовательному порту. Данные идут с дискретом 2мс на канал. Т.е их достаточно много. При чтении делается пачка в Waveform, продолжительностью 0.5..1 сек, таймстамп которой присваивается программно, при приеме пакета. т.е раз в секунду имеем массив нескольких Waveform, длиной 500 отсчетов. Все это дело сохраняется в TDMS, чтобы потом можно было прочитать через Diadem.
Я бы попробовал писать каждый Wave отдельно, тем самым мы защитимся от сбоев, т.е. будет потерян небольшой фрагмент данных. А функции склейки уже возложить на программу просмотра, она же не должна работать в реальном времени....
При склейке данных брать t0 первого кусочка данных, t0 последующих Waweform не учитывать, дабы уменьшить ошибки (главное, что бы не увеличить ), от них использовать только значения отсчетов.
Например за 1 сек у нас набирается 500 отсчетов. За минуту, будет 60 Waweform, которые нужно отобразить. При склейке мы берем t0 от первого Waweform, и формируем один массив длиной 60*500=30000.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Запись Waveform в TDMS
У меня каналы пишутся параллельно, у каждого свой Channel Name. Таким образом записывается массив WaveForms, с одинаковым t0. Но t0 + Nотс*dt не равен t0 следующего WaveForms этого-же канала (по крайней мере, я не могу это гарантировать). Записаться-то оно запишется, и без потерь. Однако что будет с привязкой по времени при просмотре тем-же Diadem ом - Бооольшой вопрос. Да и если вычитывать из TDMS, то никаких зацепок нет, как он склеивает.
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 88 раз
Re: Запись Waveform в TDMS
Значит я верно понял проблему. И мне кажется что вероятность совпадения очень мала, это как про снаряд в одну воронку .Borjomy_1 писал(а):У меня каналы пишутся параллельно, у каждого свой Channel Name. Таким образом записывается массив WaveForms, с одинаковым t0. Но t0 + Nотс*dt не равен t0 следующего WaveForms этого-же канала (по крайней мере, я не могу это гарантировать). Записаться-то оно запишется, и без потерь. Однако что будет с привязкой по времени при просмотре тем-же Diadem ом - Бооольшой вопрос. Да и если вычитывать из TDMS, то никаких зацепок нет, как он склеивает.
Я вообще писал бы в бинарники, каждый Wave для каждого канала в свой файл, зато потом крутить с ними можно как угодно. (http://www.labviewportal.org/viewtopic. ... 240#p59238)
Если бы t0 шло от платы захвата, то тут еще что-то можно было говорить о реальном времени, но в Вашем случае оно вообще назначается ПК.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Запись Waveform в TDMS
Да с бинарниками никаких проблем нет, я уже лет 20 этим занимаюсь. Единственная загвоздка - требуется писать свой собственный просмотрщик. Старый уже стал для таких дел... ))) Хочется стандартизации, тем более, что данные линейные и фиксированной структуры.
это не удобно. Поскольку просматривать это надо все вместе, совмещать как-то надо и требуется контроль целостности структуры файлов. Слишком сложно и ненадежно.для каждого канала в свой файл
-
- beginner
- Сообщения: 12
- Зарегистрирован: 14 авг 2011, 15:38
- Версия LabVIEW: 2013, 2014
- Благодарил (а): 2 раза
- Контактная информация:
Re: Запись Waveform в TDMS
Помогите организовать непрерывную запись Wave сигнала в бинарный формат.
Задача стоит такая. Есть wave сигналы длительностью от 10 сек до 3 часов которые после цифровой обработки необходимо сохранить в бинарном формате, для последующего открытия их в другой программе.
Пробовал сохранить сгенерированый сигнал в бинарный формат при помощи Write to Binary File Function, сохраняет только первые отчеты.
Задача стоит такая. Есть wave сигналы длительностью от 10 сек до 3 часов которые после цифровой обработки необходимо сохранить в бинарном формате, для последующего открытия их в другой программе.
Пробовал сохранить сгенерированый сигнал в бинарный формат при помощи Write to Binary File Function, сохраняет только первые отчеты.
-
Vitekkz88
- expert
- Сообщения: 1100
- Зарегистрирован: 21 янв 2014, 15:45
- Награды: 3
- Версия LabVIEW: 12,13,14
- Откуда: Томск
- Контактная информация:
Re: Запись Waveform в TDMS
step писал(а):
Помогите организовать непрерывную запись Wave сигнала в бинарный формат.
- Вложения
-
- Binary.png (10.79 КБ) 10441 просмотр
-
- Write Binary File.vi
- (56.16 КБ) 226 скачиваний
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
-А. И. Солженицын
-
- interested
- Сообщения: 1
- Зарегистрирован: 07 мар 2015, 17:33
- Версия LabVIEW: 2009
- Контактная информация:
Re: Запись Waveform в TDMS
что мешает сделать запись в тдмс? и просматриавть экселем? примеры есть в папке установки. при длительных записях создаются новые листы чтобы в экселе можно было просматривать. в 2007 читается. около 20 минут на одном листе с циклом 1 мсstep писал(а):Помогите организовать непрерывную запись Wave сигнала в бинарный формат. ///
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 1 Ответы
- 1030 Просмотры
-
Последнее сообщение Artem.spb
-
- 12 Ответы
- 600 Просмотры
-
Последнее сообщение Sergey Puzanov