Запись Waveform в TDMS

Работа с файлами и базами данных

Запись Waveform в TDMS

Postby Borjomy_1 on 14 Oct 2014, 11:08

Вопрос у меня тут возник, стратегический.
Исходные данные: есть датчик, который выдает несколько каналов по последовательному порту. Данные идут с дискретом 2мс на канал. Т.е их достаточно много. При чтении делается пачка в Waveform, продолжительностью 0.5..1 сек, таймстамп которой присваивается программно, при приеме пакета. т.е раз в секунду имеем массив нескольких Waveform, длиной 500 отсчетов. Все это дело сохраняется в TDMS, чтобы потом можно было прочитать через Diadem.
Запись идет на флешку ограниченного объема, с циклической перезаписью. Поэтому, чем больше разовый объем записи, тем лучше - меньше изнашивается флешка.
Но. возникает вопрос - как формировать данные? Склеивать Waveform по каналам? Тогда будет проблема с джиттингом таймстампа. На него можно было-бы не обращать внимание, но кто может гарантировать, что не будет разбега при продолжительной работе. Кроме того, датчик подключается на горячую и могут быть перерывы в потоке данных.
Ваше мнение?
Borjomy_1
expert
expert
 
Posts: 1786
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 310
VIP

Re: Запись Waveform в TDMS

Postby PeyNikola on 27 Oct 2014, 00:55

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

Не знаю как всё организованно, но на всякий случай: Думаю, стоит использовать архитектуру программы с промежуточными циклами для понижения частоты работы с переносом данных из памяти на носитель). Аналогия по этой теме: viewtopic.php?f=81&t=6922&p=55933&hilit=промежуточный+цикл#p55933
PeyNikola
beginner
beginner
 
Posts: 36
Joined: 24 Jul 2012, 11:09
LabVIEW Version: 2010
Karma: 10

Re: Запись Waveform в TDMS

Postby Borjomy_1 on 28 Oct 2014, 09:56

Проблема не в том, как организовать очередь и буфер. Проблема в методиках синхронизации таймстампов. Кстати, флешка - это единственный носитель, на который разрешена запись (основной накопитель также твердотельный, но по соображениям надежности, при работе 24/7, используется только как загрузочный)
Borjomy_1
expert
expert
 
Posts: 1786
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 310
VIP

Re: Запись Waveform в TDMS

Postby IvanLis on 28 Oct 2014, 11:10

Borjomy_1 wrote:Исходные данные: есть датчик, который выдает несколько каналов по последовательному порту. Данные идут с дискретом 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.
User avatar
IvanLis
professor
professor
 
Posts: 4573
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 722
hardware VIP bloggers teachers

Re: Запись Waveform в TDMS

Postby Borjomy_1 on 28 Oct 2014, 11:34

У меня каналы пишутся параллельно, у каждого свой Channel Name. Таким образом записывается массив WaveForms, с одинаковым t0. Но t0 + Nотс*dt не равен t0 следующего WaveForms этого-же канала (по крайней мере, я не могу это гарантировать). Записаться-то оно запишется, и без потерь. Однако что будет с привязкой по времени при просмотре тем-же Diadem ом - Бооольшой вопрос. Да и если вычитывать из TDMS, то никаких зацепок нет, как он склеивает.
Borjomy_1
expert
expert
 
Posts: 1786
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 310
VIP

Re: Запись Waveform в TDMS

Postby IvanLis on 28 Oct 2014, 11:52

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


Значит я верно понял проблему. И мне кажется что вероятность совпадения очень мала, это как про снаряд в одну воронку :D .

Я вообще писал бы в бинарники, каждый Wave для каждого канала в свой файл, зато потом крутить с ними можно как угодно. (viewtopic.php?f=49&t=7422&p=59240#p59238)
Если бы t0 шло от платы захвата, то тут еще что-то можно было говорить о реальном времени, но в Вашем случае оно вообще назначается ПК.
User avatar
IvanLis
professor
professor
 
Posts: 4573
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 722
hardware VIP bloggers teachers

Re: Запись Waveform в TDMS

Postby Borjomy_1 on 28 Oct 2014, 11:59

Да с бинарниками никаких проблем нет, я уже лет 20 этим занимаюсь. Единственная загвоздка - требуется писать свой собственный просмотрщик. Старый уже стал для таких дел... ))) Хочется стандартизации, тем более, что данные линейные и фиксированной структуры.
для каждого канала в свой файл
это не удобно. Поскольку просматривать это надо все вместе, совмещать как-то надо и требуется контроль целостности структуры файлов. Слишком сложно и ненадежно.
Borjomy_1
expert
expert
 
Posts: 1786
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 310
VIP

Re: Запись Waveform в TDMS

Postby step on 11 Jan 2015, 15:01

Помогите организовать непрерывную запись Wave сигнала в бинарный формат.
Задача стоит такая. Есть wave сигналы длительностью от 10 сек до 3 часов которые после цифровой обработки необходимо сохранить в бинарном формате, для последующего открытия их в другой программе.
Пробовал сохранить сгенерированый сигнал в бинарный формат при помощи Write to Binary File Function, сохраняет только первые отчеты.
1.jpg
step
interested
interested
 
Posts: 3
Joined: 14 Aug 2011, 15:38
LabVIEW Version: 2013, 2014
Karma: 0

Re: Запись Waveform в TDMS

Postby Vitekkz88 on 11 Jan 2015, 16:00

step писал(а):
Помогите организовать непрерывную запись Wave сигнала в бинарный формат.
Attachments
Binary.png
Binary.png (10.79 KiB) Viewed 6083 times
Write Binary File.vi
(56.16 KiB) Downloaded 119 times
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
expert
expert
 
Posts: 1002
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 275
hardware I/O VIP

Re: Запись Waveform в TDMS

Postby getz on 07 Mar 2015, 17:45

step wrote:Помогите организовать непрерывную запись Wave сигнала в бинарный формат. ///

что мешает сделать запись в тдмс? и просматриавть экселем? примеры есть в папке установки. при длительных записях создаются новые листы чтобы в экселе можно было просматривать. в 2007 читается. около 20 минут на одном листе с циклом 1 мс
getz
interested
interested
 
Posts: 1
Joined: 07 Mar 2015, 17:33
LabVIEW Version: 2009
Karma: 0


Return to Сохранение данных

Who is online

Users browsing this forum: No registered users and 4 guests

cron