Битые tdms
-
- professor
- Сообщения: 3410
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Битые tdms
Странная проблема, но решения пока нагуглить не смог.
Есть система "мониторинга", особо не контролирует, просто логирует данные.
Всё складируем в tdms с некоторым количеством технической информации.
Всё хорошо до момента "аварийной остановки". Если обрубить питание компа, последний файл с большой вероятностью будет битым, причём фатально битым, пример файла во вложении. Штатные функции говорят, что файл не совместим с форматом.
Есть пара "подозреваемых" (ниже), но неужели tdms такой хрупкий формат, что не пригоден для применения в подобных системах?
Параллельно в этой же программе есть просмотр архивов, так что файл может быть открыт дважды, но просмотр ничего не пишет.
Проверяем на WinE, пока на "нормальных" контроллерах не проверяли.
Есть система "мониторинга", особо не контролирует, просто логирует данные.
Всё складируем в tdms с некоторым количеством технической информации.
Всё хорошо до момента "аварийной остановки". Если обрубить питание компа, последний файл с большой вероятностью будет битым, причём фатально битым, пример файла во вложении. Штатные функции говорят, что файл не совместим с форматом.
Есть пара "подозреваемых" (ниже), но неужели tdms такой хрупкий формат, что не пригоден для применения в подобных системах?
Параллельно в этой же программе есть просмотр архивов, так что файл может быть открыт дважды, но просмотр ничего не пишет.
Проверяем на WinE, пока на "нормальных" контроллерах не проверяли.
- Вложения
-
- 20210622_104547-000-.7z
- (478.14 КБ) 72 скачивания
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Битые tdms
Предварительно могу сказать. Сталкивался с таким. Проблема на форуме NI обсуждалась. Если последняя запись битая (т.е записана не до конца, либо наоборот - длина больше, а в теле нули, когда длина файла обновилась, а сектор записать не успели), то возникает такая проблема. Решение - обрезка файла до последней целой записи.
При открытии файла производится составление индексного файла, скорее всего именно неудачное завершение этой операции приводит к отказу.
При открытии файла производится составление индексного файла, скорее всего именно неудачное завершение этой операции приводит к отказу.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Битые tdms
Запись производится на диск с какой файловой системой? FAT32 или NTFS?
Первая менее устойчива к сбоям.
Первая менее устойчива к сбоям.
-
- professor
- Сообщения: 3410
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Битые tdms
Я ради эксперимента даже индекс удалял, не помогло.
А как его обкромсать до целой записи?
upd: урезанием по 1 байту за 10 минут (645 сек) восстановил работоспособность файла.
-
- adviser
- Сообщения: 231
- Зарегистрирован: 06 ноя 2020, 15:37
- Версия LabVIEW: 19
- Благодарил (а): 18 раз
- Поблагодарили: 37 раз
- Контактная информация:
Re: Битые tdms
В файле есть повторяющиеся метки. Обрезание до метки. Редактор WinHex.Можно и в FAR. Раньше Dos Navigator. Но вопрос не в этом. Насколько я увидел данных немного. Сдвиг времени секунда.
Спокойно справляется сервер баз данных. Я postgresql ставлю в том числе на NILinuxRT.
Еще есть вариант сброса на централизованный postgresql сервер. Один такой на Debian работает уже 3 года.
TDMS для быстрых данных. Все что более 0,1 с и менее 1200 параметров удобнее скидывать в базу.
Например извлечение из базы 2х посекундных параметров за 24 часа занимает 4 сек.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Битые tdms
Формат TDMS
https://www.ni.com/ru-ru/support/docume ... cture.html
Для лечения можно производить элементарный разбор и находить битые записи вместо брутфорсного обрезания файла по 1 байту
А индексный файл удалять бесполезно. Ошибка как раз возникает, когда система пытается его восстановить.
https://www.ni.com/ru-ru/support/docume ... cture.html
Для лечения можно производить элементарный разбор и находить битые записи вместо брутфорсного обрезания файла по 1 байту
А индексный файл удалять бесполезно. Ошибка как раз возникает, когда система пытается его восстановить.
-
- professor
- Сообщения: 3410
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Битые tdms
От БД отказались по нескольким причинам. Главная - транспортабельность файлов - любое испытание можно перенести на другую машину и удалить с рабочей, чтобы место не занимало.
Ну а руками разбирать - странно как-то. Есть готовые функции, но не работающие :)
В общем, информацию понял, спасибо за разъяснения, учту на будущее такие особенности.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Битые tdms
Просто странно требовать от стандартной записи в файл устойчивости к сбоям при перерыве питания. Имеет смысл сделать запись реже (с учетом объема данных), с тем, чтобы уменьшить принципиальную вероятность возникновения ситуации. Ну и износ накопителя будет меньше.
-
- professor
- Сообщения: 3410
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Битые tdms
Мне это не кажется странным :)
Пусть он будет битый, но при этом читаемый стандартными же функциями. Предупреждение, что хвост сломан, но не полностью же "не совместимо с форматом".
Пусть он будет битый, но при этом читаемый стандартными же функциями. Предупреждение, что хвост сломан, но не полностью же "не совместимо с форматом".
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 1 Ответы
- 1030 Просмотры
-
Последнее сообщение Artem.spb