Как сохранить файл в labview

Обновлено: 04.07.2024

Примечания к исследованию LabVIEW (восемь) - чтение и запись файлов

Предисловие:

Для полной тестовой системы или системы сбора данных нам часто необходимо хранить данные в файле определенного формата для сохранения данных. Таким образом, LabVIEW предоставляет мощные функции файлового ввода-вывода.Мы можем создавать, открывать и закрывать файлы; читать и записывать данные; перемещать или переименовывать файлы и каталоги; изменять атрибуты файлов.

Один, чтение и запись текстовых файлов

1.1 Написать текстовый файл

Текстовый файл изменяет строку символов на ASCII Формат кодирования хранится в файле, например txt Документы и Excel файл. Этот тип файлов является наиболее распространенным и его можно найти в Блокноте, Word、Excel Ожидание открытия стороннего программного обеспечения, поэтому этот тип файлов более универсален Сильный. Однако по сравнению с другими типами файлов, он потребляет относительно большое пространство на жестком диске, скорость чтения и записи также ниже, и он не может записывать или читать данные в указанном месте по желанию. Если вам нужно сохранить данные в виде текстового файла, вы должны преобразовать данные в строку перед ее сохранением.

В этом разделе мы сделаем пример: нарисуем синусоидальную кривую в реальном времени и сохраним данные чертежа в текстовый файл.

(1) Дизайн блок-схемы


Сначала создайте новый текстовый файл для хранения данных на рабочем столе и назовите его «demo.txt», как показано ниже:

Затем напишите программу блок-схемы:


(2) Рабочие процедуры

Сначала появится диалоговое окно, выберите файл:


Нажмите OK, на диаграмме формы сигнала будет записано значение синуса 100 точек:


Мы проверяем демонстрационный текстовый файл, некоторые из записанных данных выглядят следующим образом, первый столбец - это точка выборки, а второй столбец - значение синуса:


1.2 Прочитать текстовый файл

В этом разделе напишем реализацию программы: считываем данные из текстового файла и отображаем их в текстовом поле строки интерфейса. Для удобства мы читаем данные в демонстрационном тексте, сгенерированном программой в предыдущем разделе, и записываем программу на блок-диаграмме следующим образом:


Здесь нет никаких настроек. По умолчанию считывается весь файл, программа запускается и отображается в виде массива:


Два, чтение и запись двоичных файлов

Ввод данных двоичного файла может быть любым типом данных, включая сложные данные, такие как массивы и кластеры, но при чтении должна быть указана ссылка, и ссылка должна быть точно такой же, как формат данных при записи, в противном случае он не знает, как ее читать. Данные «переводятся» в формат при записи. двоичный файл Если записано несколько данных, при чтении возвращается массив записанных данных, поэтому необходимо убедиться, что записанные несколько форматов данных в точности совпадают. Чтобы

2.1 Запись двоичных файлов

Точно так же в этом разделе мы рисуем случайную кривую в реальном времени и сохраняем данные чертежа в двоичном файле.

Сначала мы создаем бинарный файл на рабочем столе, как показано ниже:


Затем создайте новый VI. На блок-диаграмме мы пишем программу:



Запустите программу, вы увидите:


2.2 Чтение двоичных файлов

Считываем только что записанные данные в файл demo.bin и пишем программу:


Константа 0 связана с портом эталонного типа данных для чтения двоичного файла, и мы можем просмотреть его формат данных в свойствах:


Это означает, что значение 0 является типом данных повышенной точности.


Давайте посмотрим на тип данных при записи двоичного файла.Поскольку данные получаются посредством умножения, мы смотрим на тип выходных данных умножения:

Эти два параметра должны быть согласованы, чтобы гарантировать правильное чтение данных в двоичном файле.

Запустите программу, на передней панели отобразится:


Очевидно, данные в двоичном тексте были прочитаны правильно.

Три, файл конфигурации

3.1 Введение

Что такое файл конфигурации в первую очередь? Я случайно открыл файл конфигурации на своем компьютере, как показано ниже:


Что это? Фактически, Конфигурационный файл здесь стандартный Windows Конфигурационный файл ( INI File), на самом деле это текстовый файл. Windows Формат файла конфигурации следующий:


Делит разные части на сегменты ( Section ), Используйте квадратные скобки, чтобы заключить имя абзаца, чтобы указать начало абзаца, то же самое IN 1 Имя раздела в файле должно быть уникальным. Внутренние ключи для каждого сегмента ( Key ) Для представления элементов данных имена ключей в одном и том же сегменте должны быть уникальными, но имена ключей между разными сегментами не имеют значения. Допустимые типы данных для значений ключей: строка, путь, логическое значение, 64-разрядные данные с плавающей запятой двойной точности, 32-разрядное целое число со знаком и 32-разрядное целое число без знака.

3.2 Запись файла конфигурации


Пишем программу для записи файла конфигурации:

Заполните входные значения на передней панели:


Затем запустите программу, появится диалоговое окно для выбора файла конфигурации:


Откройте файл конфигурации .ini и просмотрите сохраненное содержимое:


3.3 Чтение файла конфигурации

Теперь давайте прочитаем содержимое, записанное в файле конфигурации, создадим новый VI и напишем код на блок-диаграмме:

Файловые функции находятся в палитре Functions>>All Functions>>File I/O. С помощью этих функций и подпрограмм можно делать все необходимые при работе с файлами операции:

Функции для работы с файлами в LabVIEW можно разделить на четыре группы: функции высокого уровня, функции низкого уровня, "продвинутые" (advanced) и экспресс-функции.

Функции высокого уровня

Эти функции очень удобны в использовании, так как можно с помощью одной функции сразу сделать все операции с файлом - открыть, записать, закрыть. Естественно, они менее эффективны чем функции низкого уровня. Но, если производительность не критична (например, нужно записать в файл собранные данные в конце работы программы), то лучше и проще использовать как раз эти функции. Находятся эти функции, как уже говорилось, в палитре File I/O, в верхней строке. Write to Spreadsheet File - Преобразует одномерный или двумерный массив чисел в строку и записывает эту строку в файл. Файл создается и открывается автоматически, или дописывается в уже существующий. Есть возможность выбрать разделитель. В итоге, получается файл - текстовая таблица с числами, разделенными табуляцией, например. Очень удобно, можно открыть во многих приложениях (тот же Origin к примеру). Read From Spreadsheet File - То же что и предыдущая функция, только наоборот - читает из файла. Write Characters to File - записывает строку в новый или уже существующий файл. Создание, открытие, запись, закрытие производятся автоматически. Read Characters From File - чтение строки из файла. Открывает файл, читает из него, закрывает файл. Read Lines From File - читает строки из текстового или бинарного файла. Binary File VIs - несколько функций для работы с бинарными файлами чтение, запись и т.п. Данные могут быть целыми, или с плавающей точкой.

Функции низкого уровня

Используйте следующие функции для выполнения основных операций с файлами:


Open/Create/Replace File - открывает существующий файл, создает новый или заменяет уже существующий. Если путь не задан, будет выдано диалоговое окно, в котором можно будет выбрать нужный путь.


Read File - чтение данных из файла.


Write File - запись данных в файл.


Close File - закрывает файл. Более подробно - в справке LabVIEW. Использование этих функций оправдано, когда нужна высокая скорость работы (например, в приложениях реального времени). Чтобы было более понятно, посмотрите пример:


Здесь происходит запись данных в цикле. Такое часто встречается, например при сборе данных - в течение какого-то времени считываются показания приборов, и данные записываются в файл. Естественно, что выгоднее один раз открыть файл (перед началом записи), потом все записать, и в конце закрыть, чем повторять эти операции каждый раз в течение каждого шага.

Продолжительное увеличение емкости накопителей, а также падение стоимости оборудования и программного обеспечения для соответствующих нужд привели к взрывному росту количества обрабатываемых и хранимых данных. Однако с увеличением объема данных управление и обмен ими становится всё более сложной задачей. Использование традиционного программного обеспечения ведет к тому, что вы вынуждены либо хранить данные в определенном формате, который далеко не всегда подходит для обмена с другими приложениями и пользователями, либо самостоятельно разрабатывать формат, удобный для хранения и обмена.

Среда программирования LabVIEW, имеет встроенные средства сохранения данных и подготовки отчетов в простой и удобной форме.


Возможности чтения и записи, соответствующие вашим требованиям

Выбор наиболее подходящего формата хранения данных – непростая задача. Помимо обеспечения соответствия формата текущим характеристикам рабочей системы, следует учесть возможность изменения структуры данных в будущем. При этом следует опираться на несколько основных критериев:
  • • Пригодность формата для обмена с другими программами и пользователями
  • • Объем занимаемого пространства на накопителе
  • • Простота описания данных с помощью свойств (метаданных)
  • • Скорость чтения и записи
  • • Удобство работы с форматом

image002.jpg

Рис 1. LabVIEW позволяет выбрать наиболее подходящий для ваших инструмента чтения и записи данных

На рис. 1 показаны функции LabVIEW для работы с файлами. Одни позволяют осуществить низкоуровневую запись в файлы, другие – экспресс-ВП – позволяют настроить процесс с помощью интерактивного диалога и не беспокоиться о таких вещах, как ссылка на файл, форматирование строк и порядок следования битов. Эффективное использование работы с файлами – неотъемлемая часть качественной измерительной системы, поэтому в LabVIEW имеются десятки примеров работы со всеми поддерживаемыми форматами, которые помогут научиться работать с файлами.


Файловые операции, адаптированные для инженерных данных

Несмотря на то, что LabVIEW поддерживает большое количество форматов, обычно ни один из них не может полностью соответствовать всем требованиям вашей системы. Например, ASCII удобен для обмена информацией с другими пользователями, однако файлы в этом формате обычно получаются большими по размеру, а запись и чтение осуществляются недостаточно быстро. С другой стороны, двоичные форматы позволяют осуществлять такие операции быстро, однако обмен данными в этом формате осуществляется сложнее.

Названные недостатки традиционных форматов побудили National Instruments разработать специально для нужд инженеров и ученых собственный формат - Technical Data Management Streaming (TDMS). TDMS файлы основаны на TDM-модели данных, разработанной для представления данных испытаний и измерений. TDM-модель состоит из трех иерархических уровней: файл, группа, канал (см. рис. 2). Файл может содержать неограниченное количество групп, а группа – неограниченное количество каналов. Группировка каналов позволяет упорядочить данные так, чтобы структура файла стала более наглядной. К примеру, в файле может быть создано две группы – одна для каналов необработанных данных, другая – для обработанных. Или же можно создать группы, которые будут соответствовать типам и/или местам расположения датчиков.

image003.jpg

Рис 2. Модель данных TDM наиболее полно соответствует требованиям измерительных систем
Кроме того, элементы каждого из трех уровней могут быть описаны с помощью неограниченного количества атрибутов, что позволяет создавать хорошо структурированные, документированные и удобные для поиска информации файлы. Информация о свойствах данных (групп и каналов), имеющаяся в файлах TDMS – ключевое преимущество модели TDM – позволяет легко адаптировать структуру описания файла к меняющимся требованиям системы.

Несколько удобных интерфейсов работы в TDMS на выбор

Формат TDMS обеспечивает простоту использования, высокую скорость записи и удобства обмена с другими пользователями. Как и в большинстве случаев, LabVIEW обеспечивает несколько интерфейсов взаимодействия с TDMS файлами. Вы можете быстро настроить запись в файл TDMS с помощью экспресс-ВП Write To Measurement File или использовать набор относительно низкоуровневых ВП по работе с этим форматом из группы TDMS палитры File I/O. Кроме того, работая с NI-DAQmx, вы можете использовать ВП Configure Logging из палитры DAQ или сохранять данные непосредственно из NI DAQ Assistant (см. рис. 3)

image004.jpg

Рис 3. Запись TDMS с помощью наиболее подходящего интерфейса на выбор
(низкоуровневые ВП, экспресс-ВП, DAQ)

Высокоскоростная запись и чтение

Формат TDMS очень удобно использовать, однако, в связи с ростом возможностей оборудования в последние годы, очень важно оптимизировать работу с TDMS так, чтобы файловые операции не стали узким местом производительности системы. Неявная использование оптимизации путем параллельных ветвей буферизации делает формат TDMS наиболее быстрым способом сохранения данных на платформах NI. В ряде испытаний была достигнута скорость записи 1.2 гБ/с.

Обмен файлами с другими программами, например, MS Excel

Чтение и запись специфических и устаревших форматов

Несмотря на то, что обычно вы можете выбрать наиболее подходящий формат для работы, иногда приходится работать с конкретными форматами, которые поддерживаются специфическим оборудованием или просто использовались при создании большого архива данных. С такой проблемой на практике сталкиваются многие инженеры, поэтому NI разработала специальную технологию под названием DataPlugin, которая позволяет работать с любыми специфическими форматами. Из рис. 4 видно, что DataPlugin выполняет функции промежуточного обработчика файла, который создает в памяти TDM-модель на основе информации из файла специфического формата.

image005.jpg

Рис. 4. С помощью DataPlugin вы можете создать TDM-модель на основе файла специфического формата.

Управление данными с помощью DataFinder

При работе с некоторыми приложениями количество сохраненных данных растет как снежный ком. Обычно, в таких ситуациях разработчики начинают использовать вместо работы с отдельными файлами взаимодействие с СУБД, что позволяет ускорить процессы поиска информации. NI позволяет легко взаимодействовать с СУБД с помощью тулкита Database Connectivity, который скрывает тонкости низкоуровневой работы на языке SQL. Однако, использование СУБД, а особенно перенос имеющихся наработок в базу данных, может оказаться весьма затратным процессом.

В качестве альтернативного решения NI разработала технологию NI DataFinder, представленную туклитом LabVIEW DataFinder и приложением DIAdem, которая позволяет легко управлять большим количеством файлов без необходимости использования СУБД. NI DataFinder позволяет осуществить быстрый поиск информации в рамках интернет организации, независимо от формата файлов.

NI DataFinder автоматически создает индексные записи для все файлов, типы и местоположение которых указаны в конфигурации. В результате вы можете использовать атрибуты, автоматически созданные в индексе, в качестве критериев поиска. В процессе изменения данных в файлах, NI DataFinder автоматически обновляет индексные записи, а при сохранении новых атрибутов в файлах – вносит их в индекс. NI DataFinder динамически управляет собственными таблицами данных на основе различных событий и содержимого файлов. Такой подход позволяет добавлять и менять информацию (новый атрибуты и свойства) без переработки системы обработки и хранения данными, как это происходит в случае со многими СУБД. NI DataFinder позволяет быстро обнаружить корреляцию и построить тренды на основе массивов данных, полученных в результате испытаний.

Подготовка отчетов

После того как вы сохранили данные в файл, провели анализ и получили результаты, вам обычно необходимо представить их в наглядном и удобном для обмена с другими специалистами виде. Процесс подготовки отчетов фокусируется именно на задаче визуализации итоговых результатов в лаконичном виде, вместо предоставления всего массива данных. Несмотря на то, что лицевая панель ВП – весьма удачный инструмент визуализации и взаимодействия с полученными данными, она не предназначена для создания итоговых отчетов. В LabVIEW имеются средства, позволяющие быстро создавать отчеты, в том числе на основе шаблонов, в таких популярных форматах как HTML, PowerPoint и PDF.

Простое и удобное создание отчетов
Создание простых отчетов в текстовом и HTML формате возможно с помощью встроенных функций LabVIEW. Для этого можно использовать набор простых ВП или экспресс-ВП Report, который позволит сконфигурировать все параметры в одном окне (см. рис. 5)

image006.jpg

Рис. 5. Использование экспресс-ВП Report для создания отчета в LabVIEW.
В ходе работы часто необходимо передавать отчеты непосредственно в приложения Microsoft, такие как Excel и Word. Осуществить это можно программным способом с помощью ActiveX или же воспользовавшись набором инструментов LabVIEW Report Generation Toolkit для Microsoft Office. Этот набор инструментов скрывает тонкости взаимодействия с Excel и Word и позволяет сосредоточиться непосредственно на подготовке отчета: просто добавлять заголовки, таблицы и графики в документы. Кроме того, можно создать в Excel или Word шаблон документа и уже на его основе автоматизировать оформление отчетов.

Разработка гибких шаблонов автоматизированной подготовки отчетов

Файловые функции находятся в палитре Functions>>All Functions>>File I/O. С помощью этих функций и подпрограмм можно делать все необходимые при работе с файлами операции:

Функции высокого уровня

Функции низкого уровня

Используйте следующие функции для выполнения основных операций с файлами:

labview запись в файл

Есть источник динамических данных. Необходимо полученные данные записать в текстовый файл на диск. Запускаем « LabVIEW 8.5», открываем пустой виртуальный прибор и для начала создадим источник данных для того чтобы их записать в файл на диск. Для этого переходим на блоковую панель и перетаскиваем из панели функций цикл. Его можно найти в разделе « Programming – Structures – For loop ». Переменной « N » чикла присваиваем некое значение.

Далее, в тело цикла помещаем генератор случайных чисел. Он находится в разделе « Programming – Mathematics – Numeric » и называется « Random Number (0-1)». Выглядит он как пара костей для казино и генерирует случайным образом вещественные числа в диапазоне от 0 до 1.

Для визуализации генерации чисел на фронтальной/передней панели можно разместить индикатор вида « Chart ». Перетаскиваем его из раздела « Express – Graph Indicators » .

labview запись в файл

Рис. 1. Фронтальная панель нашего ВП

А для записи данных необходимо разместить на панели блоков виртуальный прибор « Write To SpreadSheet File », который находится в разделе « Programming – File I / O ».

labview запись в файл

Рис . 2. Виртуальный прибор «Write To SpreadSheet File»

Потом все грамотно соединяем на блоковой диаграмме, устанавливаем параметры для ВП « Write To SpreadSheet File » так, чтобы файл все время переписывался заново при запуске нашего виртуального прибора (параметр « append to file »), а то можно раздуть файл до невозможности. Также, в виртуальном приборе « Write To SpreadSheet File » есть входной параметр « transpose », который влияет на форму записи данных, а именно в виде одного столбца или таблицей. Также есть параметр « file path », для указания имени файла и папки куда писать файл.

labview запись в файл

Рис. 3. Расположение элементов и их соединения на блоковой диаграмме

В результате работы данного виртуального прибора на диске будет сохранен текстовый файл «1. txt » в папке, которую мы указали и с данными, которые случайным образом сгенерировались источником сигнала.

Если частота получения данных не очень медленная (выше 10 точек в секунду), вам придется записывать данные в бинарный файл, а не ASCII. Бинарные файлы гораздо меньше по объему и позволяют записывать данные компактнее, чем текстовые файлы.

При непрерывной работе ВП решающим фактором становится скорость, с которой LabVIEW считывает данные из буфера, а затем переносит их на диск. У вас должна быть возможность считывать и переносить данные достаточно быстро, чтобы не происходило переполнения кольцевого буфера. Для увеличения эффективности считывания данных во время процесса сбора необходимо избегать выполнения других функций, таких как анализ данных. С этой же целью вместо вывода данных из виртуального прибора DAQmx Read в аналоговом виде применяют вывод данных в двоичном виде (с помощью пункта селектора вариантов More » Raw »). Увеличивается скорость передачи данных и считывания. Когда вы настраиваете виртуальный прибор DAQmx Read для создания только бинарных данных, он возвращает их быстрее, чем в режиме аналоговой осциллограммы или напряжения. Недостатком считывания и потоковой передачи двоичных данных являются трудности при последующем использовании файла из других приложений.

Вы можете модифицировать виртуальный прибор непрерывного сбора данных, чтобы применять потоковую запись файла. Хотя раньше вы, вероятно, не использовали бинарные файлы, вы легко создадите ВП, описываемый в следующем примере. Более подробно о бинарных и других файлах мы поговорим в главе 14.

Читайте также: