1Запуск
Скачать 1.2 Mb.
|
7 Массивы Массив - набор однотипных данных (элементов), расположенных в памяти непосредственно друг за другом, доступ к которым осуществляется по индексу (индексам). Массив является структурой с произвольным доступом, т.е. программист может осуществлять доступ к любому элементу по его индексу в произвольном порядке. Количество используемых индексов массива может быть различным. Массивы с одним индексом называют одномерными, с двумя – двумерными и т. д. Одномерный массив нестрого соответствует вектору в математике, двумерный - матрице. Чаще всего применяются массивы с одним или двумя индексами. Основными характеристиками массива является его размерность, тип входящих в него элементов и его размер (количество элементов по каждой размерности). Все массивы в LabVIEW являются динамическими. Динамические массивы делают работу с данными более гибкой, так как не требуют предварительного определения хранимых объёмов данных. Максимальное количество элементов на каждую размерность составляет 31 2 . Значения индексов лежат в диапазоне от 0 до N-1, где N – количество элементов массива. Элементом массива может быть любой тип данных, за исключением массива, таблицы или графика. В LabVIEW массивы могут быть созданы как вручную на лицевой панели или на блок-диаграмме, так и программно. На лицевой панели могут быть созданы массивы элементов управления или индикаторов, на блок-диаграммы - массивы констант. Программно массивы создаются с помощью структур и соответствующих функций. Для формирования массивов на лицевой панели необходимо разместить на ней шаблон массива (Array) из палитры Массив, матрица и кластер (Array, Matrix & Cluster) палитры элементов управления. В окно отображения элемента может быть помещен объект данных - элемент управления или индикатор в соответствии с типом формируемого массива. Помещение объекта в шаблоне приводит к присвоению терминалу массива цвета и типа, помещенного объекта. После задания типа массива он может использоваться для ввода или вывода данных (рис. 17). Аналогичным образом создается массив констант на блок-диаграмме. Для создания массива констант необходимо разместить на диаграмме шаблон массива констант (Array Constant) из палитры Массив (Array) и поместить в него константу необходимого типа. Для программного формирования и обработки массивов используются структуры Цикл с фиксированным числом итераций (For Loop) и Цикл по условию (While Loop), имеющие в своем составе индексную переменную структуре цикла с фиксированным в массив происходит в умолчанию в режиме включить режиме терминал вывода квадрат. Формирование массива провода с данными после индексирования осуществляется индексирование (Disable Indexing) из структуры будет выводиться Рисунок Описанный режим аккумулирования массивов нового элемента в автоиндексированием (auto При вводе массива умолчанию также находится (рис.18). В данном режиме каждую итерацию. В этом размерность массива и нет числа итераций. При подаче структура настраивается происходит и при одновременно переменную i. Если элементы массива формируются цикла с фиксированным числом итераций, то их преобразование происходит в терминале вывода данных, находящемся ключить индексирование (Enable Indexing) терминал вывода данных представляет пустотелый Формирование массива сопровождается изменением данными после его выхода из структуры. Выключение индексирования осуществляется с помощью строки индексирование (Disable Indexing) контекстного меню терминала будет выводиться только последний элемент. Рисунок 17 – Виды массивов Описанный режим автоматического индексирования аккумулирования массивов на границе цикла путем добавления элемента в каждом повторении цикла автоиндексированием (auto-indexing). вводе массива в структуру цикла терминал ввода также находится в состоянии включить индексирование данном режиме терминал передает в цикл по одному итерацию В этом случае структура автоматически массива и нет необходимости задавать значение итераций При подаче на вход нескольких массивов разной настраивается на самый короткий массив. То при одновременно подключенном терминале числа массива формируются в итераций то их преобразование данных находящемся по Enable Indexing). В этом представляет пустотелый двойной сопровождается изменением толщины структуры Выключение режима строки отключить меню терминала. При этом индексирования и путем добавления одного цикла называется терминал ввода данных по ключить индексирование цикл по одному элементу в автоматически определяет задавать значение терминала массивов разной длины массив. То же самое инале числа итераций. Рисунок 18 – Варианты Если терминал индексирование, массив будет естественно, способность циклов должно быть задано На рис. 18 видно, что режиме автоиндексирования такой же размерности может при использовании структур Увеличение размерности панели или в блок-диаграмме добавить размерность (Add Dimension) управления / отображения В таблице 8 представлено работы с массивами. Таблица 8 - Описание основных Название Array Size Index Array Build Array Варианты ввода/вывода данных в/из цикла входа перевести в состояние индексирование массив будет вводиться в цикл целиком (рис способность автоиндексирования теряется и значение быть задано видно, что при выводе одномерного массива автоиндексирования он преобразуется в двумерный массив размерности может быть создан на основе скалярных использовании структуры из внутреннего и внешнего размерности массива, созданного оператором диаграмме, может быть выполнено с помощью размерность (Add Dimension) контекстного меню отображения индекса массива. представлено описание основных функций Описание основных функций работы с массивами Пиктограмма Описание Возвращает количество в массиве Возвращает массива индексу Возвращает построенный элементов Элементы должны быть типа. данных в из цикла состояние отключить рис. 18). При этом, теряется и значение числа одномерного массива из цикла в двумерный массив. Массив основе скалярных переменных и внешнего циклов. оператором на лицевой выполнено с помощью строки контекстного меню элемента основных функций LabVIEW для массивами Описание Возвращает количество элементов в массиве. Возвращает элемент массива по его индексу. Возвращает массив, построенный из элементов на входе. Элементы на входе должны быть одного Insert Into Array Delete From Array Array Max & Min Transpose 2D Array 8 Ввод /вывод данных Операции ввода и вывода сохраняют информацию в функций ввода и вывода обеспечивают выполнение Функции ввода/вывода находятся Для функций, работающих размещению файла, который видом данных для работы файла. Если переменная вызовет диалоговое окно Будучи вызванными, функции запишут данные, а затем закроют Одним из наиболее распространенных файле является форматирование открыт в любой программе Notepad и т.д.). В большинстве табуляцией, а строки - символами файл табличного формата табличного формата (Read From Spreadsheet File) файлами табличного формата Spreadsheet File на входе одномерный Возвращает вставленным указанную элементом Возвращает удаленным Удаляется одиночный так и часть Возвращает максимальное минимальное значения так же их Выполняет транспонирования исходным вывод данных в/из файла Операции ввода и вывода (I/O) запрашивают информацию информацию в файле на диске. LabVIEW имеет ввода и вывода наряду с простыми функциями выполнение практически всех операций ввода вывода находятся в палитре Programming-File I/O ( функций работающих с файлами, необходимо ввести который выглядит как строка. Путь является для работы с файловой системой, указывая местоположение ая пути к файлу не была подключена диалоговое окно и попросит выбрать файл или ввести вызванными функции откроют или создадут файл, прочитают данные а затем закроют файл. из наиболее распространенных способов хранения форматирование текстового файла. Такой файл амме, работающей с таблицами или текстом В большинстве табличных форматов столбцы символами конца строк (EOL). Функции табличного формата (Write То Spreadsheet File) и Считать формата (Read From Spreadsheet File) взаимодействуют табличного формата. При этом функция имеет на входе одномерный или двумерный массив для Возвращает массив со вставленным на указанную позицию элементом. Возвращает массив с удаленным элементом. Удаляется как одиночный элемент, так и часть массива. Возвращает максимальное и минимальное значения в массива, а так же их координаты. Выполняет операцию транспонирования над исходным массивом. информацию из файла и имеет ряд гибких простыми функциями, которые операций ввода и вывода. File I/O (рис. 19). необходимо ввести путь к Путь является особым указывая местоположение подключена, то функция файл или ввести его имя. создадут файл, прочитают или способов хранения данных в акой файл может быть таблицами или текстом (Excel, форматов столбцы отделяются Функции Записать в и Считать из файла взаимодействуют с имеет Write То двумерный массив для записи, а так же флаг продолжения записи в файл. Функция Read From Spreadsheet File является полиморфной, пользователь может выбирать в каком типе данных считывать файл (double, integer, string). Эти функции очень удобны при записи и чтения массивов данных. Рисунок 19 – Палитра ввода/вывода в файл Если необходимо сформировать простой текстовый файл, то используется функция Write to Text File и Read from Text File. Эти функции позволяют записывать любые строки в указанный текстовый файл. Однако при использовании этих функций необходимо соблюдать определенный алгоритм работы и использовать дополнительные модули. Так для записи или чтения необходимо открыть файл при помощи функции Open/Create/Replace File, при этом необходимо обязательно указывать действия при операции с файлом (открыть, создать, заменить, открыть или создать, заменить или создать, заменить или создать с подтверждением). После того как с файлом будут произведены заданные действия, файл необходимо закрыть. Эта операция нужна для того, чтобы операционная система знала, что доступ к файлу больше не заблокирован и другая программа может взаимодействовать с ним. В таблице 9 представлено описание основных функций LabVIEW для работы с файлами. Таблица 9 - Описание основных Название Read from Text File Write to Text File Open/Create/Replace File Close File Write To Spreadsheet File Read From Spreadsheet File 9 Создание подприбора В LabVIEW очень использование кода. Для этих Подприбор - это отдельный можно использовать в высокоуровневого ВП, снабдив панель. Виртуальный подпрограммы в языке С или Поскольку не имеется никаких языке С, также не существует подприбров, применяемых Описание основных функций работы с файлами Пиктограмма Описание Возвращает текстового файла в виде Осуществляет запись строки в файл Возвращает ссылку на файл и начинает работу Завершает работу с ссылке. Функция преобразует массив или строк в текстовую записывает эту строку нового текстового добавляет строку существующему файлу функция используется создания текстового воспринимаемого большинством табличных приложений умолчанию разделение значениями производится помощи знака табуляции Функция считывает файл в таблицу поддерживаются форматы входных данных целые, числа с плавающей Создание подприбора очень важным аспектом является кода Для этих целей служат виртуальные подприборы это отдельный ВП, применяемый другим ВП использовать в качестве подприбора на блок , снабдив иконкой и определив его соединительную Виртуальный подприбор LabVIEW является в языке С или другом подобном языке программирования имеется никаких ограничений по количеству подпрограмм не существует и каких-либо ограничений по применяемых в ВП LabVIEW (если позволяет память файлами Описание Возвращает содержимое в виде строки Осуществляет запись текстовой ссылку на открытый начинает работу с ним работу с файлом по преобразует массив чисел в текстовую строку и записывает эту строку в виде текстового файла или строку к существующему файлу. Эта используется для текстового файла, воспринимаемого большинством приложений. По разделение между значениями производится при знака табуляции. считывает текстовый таблицу значений, поддерживаются различные входных данных (строки, числа с плавающей точкой). является повторное виртуальные подприборы. применяемый другим ВП. Новый ВП на блок-диаграмме определив его соединительную является аналогом языке программирования. количеству подпрограмм в ограничений по количеству позволяет память). Для того чтобы превратить любой ВП в подприбор, необходимо определить какие данные в него поступают и какие данные он возвращает. Это производится при помощи назначения соответствующих элементов управления и индикаторов терминалам ВП. Палитра коннекторов ВП находится в верхнем правом углу ВП (рис.2), для ее отображения необходимо щелкнуть на иконку ВП правой кнопкой мыши и нажать show connectors. Существует большое количество конфигураций (паттернов) палитры коннекторов (рис. 20). В одном ВП рекомендуется применять одинаковые паттерны (самый распространенный 4-2-4-2). Рисунок 20 – Палитра коннекторов подприбора Чтобы назначить соответствие элементов подпрограммы выводам коннекторов, необходимо подвести указатель мыши к контакту и нажать левую кнопку мыши. Активная клетка коннектора подсветится. Далее следует подвести указатель к требуемому элементу подпрограммы и нажать левую кнопку мыши. Цвет коннектора изменится в зависимости от типа данных элемента (рис. 21). Так, если элемент принимает значения действительного типа, то коннектор будет оранжевым, если это булевый тип - то зеленый и т.д. Рисунок 21 – Иконка коннекторов подприбора с подключенными элементами Каждая подпрограмма может иметь свою уникальную иконку. Иконка – это изображение размера 32×32 пикселя с произвольной картинкой и/или текстом. Для того чтобы задать иконку ВП, необходимо дважды кликнуть на его иконку в правом верхнем углу окна и переопределить ее при помощи встроенного редактора. Иконки очень маленькие: всего 32×32 пикселя, поэтому они должны быть краткими, но понятными. Рекомендуется использовать символы и шрифты, которые будут легко читаться при таких размерах. Глиф – это графический, легко узнаваемый символ. К ним относятся, например, знаки дорожного движения. Это отличный пример совмещения графики и текста на ограниченном пространстве для сообщения важной информации. Библиотеки глифов, значков и других символов обычно есть в любом приложении и на многих сетевых ресурсах. Например, в зоне разработчиков (NI Developer Zone) такая библиотека есть по адресу www.ni.com/ devzone/idnet/library/icon_art_glossary.htm. Лучшие иконки состоят из глифа, лаконичного текста и окрашены в 2 или 3 цвета. Глиф занимает половину или 2/3 места, текст – от одного до трех слов или понятных сокращений. |