Создание новых файлов каждые сутки
-
- interested
- Сообщения: 2
- Зарегистрирован: 29 мар 2017, 13:02
- Версия LabVIEW: .
- Контактная информация:
Создание новых файлов каждые сутки
Уважаемые специалисты labview!
У меня следующая задача: в системе с нескольких датчиков по CAN-шине считываются показания.
Считывание данных организовано с помощью цикла while.
Я хочу записывать данные в текстовый файл таким образом, чтобы раз в сутки или по достижения определенного размера файла
открывался новый файл с новым именем (которое будет задаваться по какому-то заданному алгоритму).
Я нашел самую подходящую ветку для моей задачи эту: http://labviewportal.org/viewtopic.php?f=21&t=831
Но это не совсем то, так как в указанном топике не стоит проблема с закрытием файла и открытием нового файла на определенной итерации цикла.
Собственно мой вопрос: как организовать закрытие файла и открывание нового файла на определенной итерации цикла или как это можно организовать по_другому?
Заранее спасибо.
У меня следующая задача: в системе с нескольких датчиков по CAN-шине считываются показания.
Считывание данных организовано с помощью цикла while.
Я хочу записывать данные в текстовый файл таким образом, чтобы раз в сутки или по достижения определенного размера файла
открывался новый файл с новым именем (которое будет задаваться по какому-то заданному алгоритму).
Я нашел самую подходящую ветку для моей задачи эту: http://labviewportal.org/viewtopic.php?f=21&t=831
Но это не совсем то, так как в указанном топике не стоит проблема с закрытием файла и открытием нового файла на определенной итерации цикла.
Собственно мой вопрос: как организовать закрытие файла и открывание нового файла на определенной итерации цикла или как это можно организовать по_другому?
Заранее спасибо.
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Создание новых файлов каждые сутки
Установите библиотеку Asynchronous Multi File TDMS Data Logger https://forums.ni.com/t5/Example-Progra ... -p/3531663
при помощи VIPM или можно скачать по ссылке https://forums.ni.com/ni/attachments/ni ... .0.0.7.vip и установить.
И будет Вам "щастье"
при помощи VIPM или можно скачать по ссылке https://forums.ni.com/ni/attachments/ni ... .0.0.7.vip и установить.
И будет Вам "щастье"
-
- interested
- Сообщения: 2
- Зарегистрирован: 29 мар 2017, 13:02
- Версия LabVIEW: .
- Контактная информация:
Re: Создание новых файлов каждые сутки
Спасибо, попробую.
Но пока как временный вариант, когда опубликовал свой вопрос до меня дошло, что можно банально воспользоваться case structure,
которая будет проверять каждую итерацию while выполнение условия по размеру файла или по дате.
Главное, чтобы не было так, что "нет ничего постоянного, чем временное".
Но пока как временный вариант, когда опубликовал свой вопрос до меня дошло, что можно банально воспользоваться case structure,
которая будет проверять каждую итерацию while выполнение условия по размеру файла или по дате.
Главное, чтобы не было так, что "нет ничего постоянного, чем временное".
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Создание новых файлов каждые сутки
По-хорошему, нет смысла постоянно держать открытый файл TDMS. С чисто рабочих соображений - пока архив не будет закрыт, его нельзя посмотреть. Рекомендую буфферизировать запись и сохранять данные раз в минуту или около того, с открытием файла и последующим закрытием. В таком случае при достижении определенного порога достаточно изменить имя файла.
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Создание новых файлов каждые сутки
И как минимум получить в один прекрасный момент при очередной записи ошибку, что нет доступа к файлу, потому что кто-то решил его в это время посмотреть (например в Excel) и он оказался занятBorjomy_1 писал(а):...Рекомендую буфферизировать запись и сохранять данные раз в минуту или около того, с открытием файла и последующим закрытием...
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Создание новых файлов каждые сутки
Нормальная ситуация! Если ошибка доступа к файлу, то буфер не сбрасывается, а данные продолжают в него копиться. При освобождении - накопленные данные скидываются. Для этого желательно иметь собственный просмотрщик, который будет открывать файл только для загрузки. Если совсем невмоготу, то досрочно создается другой файл. Другой вариант - открывать копию в экселе. Но даже для копии необходимо время на копирование и будут конфликты доступа. Так что эти вещи надо предусматривать.И как минимум получить в один прекрасный момент при очередной записи ошибку, что нет доступа к файлу, потому что кто-то решил его в это время посмотреть (например в Excel) и он оказался занят
Глупо считать, что будет всегда просматриваться архив не позднее прошлых суток. Надо представлять себе, что требование просмотреть данные за последние несколько минут, возникнет в первый-же день эксплуатации оборудования.
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Создание новых файлов каждые сутки
Вар.1 Не выдерживает ни какой критики. Сколько времени будет занят файл? Какой буфер выделять? Как управлять записями?
Вар.2 Изобретение детского велосипеда
Вар.3 Ответ дан автором предыдущего сообщения. Тоже проблемы. А если еще лог под максимальный размер файла?
Горит посмотреть: закрой текущий файл и открой новый. Все есть в указанном выше логгере.
Вар.2 Изобретение детского велосипеда
Вар.3 Ответ дан автором предыдущего сообщения. Тоже проблемы. А если еще лог под максимальный размер файла?
Горит посмотреть: закрой текущий файл и открой новый. Все есть в указанном выше логгере.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Создание новых файлов каждые сутки
Blackman У меня подобный функционал под LV2009. потому все ручками (включая контроль размера папки и, кстати, свободного пространства еще и на диске). И все работает, причем не в лаборатории, а на производстве.
Однако остается вопрос работы в условиях совместного доступа.
Однако остается вопрос работы в условиях совместного доступа.
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Создание новых файлов каждые сутки
Вар.1 - как раз один из наиболее правильных и оптимальных. Плюс NI техподдержка такой подход тоже рекоммендует. Обращаться каждую секунду к файлу на диске - далеко не лучшая практика. А вот грамотная буфферизация - другое дело.Blackman писал(а):Вар.1 Не выдерживает ни какой критики. Сколько времени будет занят файл? Какой буфер выделять? Как управлять записями?
Вар.2 Изобретение детского велосипеда
Вар.3 Ответ дан автором предыдущего сообщения. Тоже проблемы. А если еще лог под максимальный размер файла?
Горит посмотреть: закрой текущий файл и открой новый. Все есть в указанном выше логгере.
Да, для TDMS есть эта либа (Asynchronous Multi File TDMS Data Logger). А если будет другой формат файла?
Мы делили апельсин - много наших полегло...
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Создание новых файлов каждые сутки
Уважаемый Kosist) Вы немного не в тему. Диспут был не о том как часто писать в файл и предварительной буферизации данных, которая как правило есть всегда в том или ином виде (в той же, как Вы говорите, либе), а о методах или способах доступа к текущему лог файлу.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Создание новых файлов каждые сутки
Ну и? ТС, кстати, этот вопрос не поднимался.а о методах или способах доступа к текущему лог файлу.
У меня есть два решения - работа с архивом в собственном просмотрщике, который открывает файл только на время чтения его в ОЗУ. И копирование архива для работы с ним, например, на другой машине. И то и другое требует обработки ситуации временной недоступности файла архива. Потому вопрос к Blackman - решает ли предложенная им библиотека эту задачу?
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Создание новых файлов каждые сутки
Asynchronous TDMS Logger v1.5.1.15 by National Instruments
Released On: Thu, 19 May 2016 16:32:10 -0500
Author: Piotr Kruczkowski
Copyright: Copyright (c) 2014, National Instruments
Compatible LabVIEW Versions: >= 2014.
Compatible OS Versions: ALL.
Repository Name: NI LabVIEW Tools Network
Description:
This is a library of functions of the asynchronous TDMS logger. It allows you to dynamically run an asynchronous thread for data logging with additional functionality of seperating the data into multiple files based on size or date and time. It also implements functions to delete old files that would normally overflow your hard drive.
These functions can be used in the same loop as you measurement task because they are asynchronous. This means that the logger is created in the background and works as a parallel thread. You can monitor the status of that thread by getting its info.
Please note that this functionality may not work correctly when the destination folder is updated by NI Data Finder or Google Drive etc.
The supported data types are: Single, Double, Double Waveform, Signed Integer 8 bit, Signed Integer 16 bit, Unsigned Integer 8 bit, 16 bit and String Events.
Release Notes:
- finalized support for I8, I16, U8, U16, Single, Double, Waveform and String data types,
- rewritten the code in the background not to use classes for data types. This minimizes the footprint and optimizes the API to work faster,
- modified the internal architecture to make it easier to understand,
- updated description of the package.
Released On: Thu, 19 May 2016 16:32:10 -0500
Author: Piotr Kruczkowski
Copyright: Copyright (c) 2014, National Instruments
Compatible LabVIEW Versions: >= 2014.
Compatible OS Versions: ALL.
Repository Name: NI LabVIEW Tools Network
Description:
This is a library of functions of the asynchronous TDMS logger. It allows you to dynamically run an asynchronous thread for data logging with additional functionality of seperating the data into multiple files based on size or date and time. It also implements functions to delete old files that would normally overflow your hard drive.
These functions can be used in the same loop as you measurement task because they are asynchronous. This means that the logger is created in the background and works as a parallel thread. You can monitor the status of that thread by getting its info.
Please note that this functionality may not work correctly when the destination folder is updated by NI Data Finder or Google Drive etc.
The supported data types are: Single, Double, Double Waveform, Signed Integer 8 bit, Signed Integer 16 bit, Unsigned Integer 8 bit, 16 bit and String Events.
Release Notes:
- finalized support for I8, I16, U8, U16, Single, Double, Waveform and String data types,
- rewritten the code in the background not to use classes for data types. This minimizes the footprint and optimizes the API to work faster,
- modified the internal architecture to make it easier to understand,
- updated description of the package.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Создание новых файлов каждые сутки
Хм.. ну и толку тогда от нее?... Если я, делая ручками, могу эту проблему корректно обработать, то в этой библиотеке этого никак не сделать.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение