Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектирование средств идентификационных измерений сигналов. Практикум.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
массивы, по двойному проводнику – двумерные массивы, по утолщенно­му двойному проводнику – массивы с размерностью больше двух.
Тип представляемых данных можно изменить во вкладке Data Type свойств терминала или в контекстном меню Representation.
Больше информации о типе данных терминала или проводника можно получить при помощи функции Контекстная справка.
Важной особенностью LabVIEW является полиморфизм функций, то есть способность функции обрабатывать данные разных типов. Функция автоматически определяет тип данных, подключенных к ее входу, и обра­батывает их соответствующим образом.
Например, при подключении к входам функции суммирования (Add) двух терминалов с типом данных U8 она вернет число того же типа. А при подключении двух массивов эта функция произведет поэлементное сум­мирование и вернет массив того же типа и размерности. При этом про-
граммисту не требуется никак настраивать эту функцию, все происходит
автоматически [4, с. 10].
Базовые функции – это кирпичики, из которых программист строит блок-диаграмму прибора или подприбора. Все они расположены в палитре функций Программирование (Programming) (рис. 3.7).
Рис. 3.7. Палитра функций «Программирование»
31
Базовые функции сгруппированы по категориям в подпалитры: Чис-
Обозначе-
Add
Возвращает сумму двух входных значений
Subtract
Возвращает разность двух входных значений
Multiply
Возвращает произведение двух входных значений
Divide
Возвращает частное двух входных значений
Increment
Возвращает входное значение, увеличенное на 1
Decrement
Возвращает входное значение, уменьшенное на 1
Absolute
Square Root
Возвращает корень квадратный входного значения
Square
Возвращает квадрат входного значения
Negate
Возвращает входное значение, умноженное на (–1)
Reciprocal
Возвращает значение, обратное входному
Random
ловые (Numeric), Сравнения (Comparison), Логические (Boolean), Строко­вые (String).
Числовые функции (Numeric) применяются для выполнения арифме-
тических операций с числовыми данными. Комбинируя эти функции,
можно выполнять большинство математических операций над числами. В таблице 3.3 приведены обозначения и описания основных математиче­ских функций LabVIEW. Все указанные функции являются полиморфны­ми [4, с. 13].
Таблица 3.3
Описание числовых функций
Название
Value
ние
Функция
Возвращает входное значение, взятое по модулю
Number
Возвращает случайное число от 0 до 1
Функции сравнения (Comparison) предназначены для проверки соот- ношений между переменными (равно, не равно, больше, меньше), позво­ляют проверять, находится ли число в заданном диапазоне, и т. п. Функ­ции сравнения, как и числовые, являются полиморфными и способны
32
производить сравнение скалярных значений, массивов числового, логиче-
Обозна-
Возвращает значение ИСТИНА, если верхнее значение
Возвращает значение ИСТИНА, если верхнее значение не
Возвращает значение ИСТИНА, если верхнее значение
Возвращает значение ИСТИНА, если верхнее значение
Возвращает значение ИСТИНА, если входное значение
Not Equal To
Возвращает значение ИСТИНА, если входное значение не
Функция возвращает значение, подключенное к входу «T»,
Функция возвращает на выход «?» значение ИСТИНА, если
ского и строкового типа. Условно-графические обозначения и описания основных функций сравнения приведены в таблице 3.4 [4, с. 20].
Таблица 3.4
Описание функций сравнения
Название
Equal?
Not Equal?
Greater?
Less?
Equal To 0?
0?
Select
чение
Функция
равно нижнему, иначе – ЛОЖЬ
равно нижнему, иначе – ЛОЖЬ
больше нижнего, иначе – ЛОЖЬ
меньше нижнего, иначе – ЛОЖЬ
равно 0, иначе – ЛОЖЬ
равно 0, иначе – ЛОЖЬ
если на вход «?» подано значение ИСТИНА. Иначе функ­ция возвращает значение, подключенное к входу «F»
In Range and
Coerce
центральное значение находится в диапазоне, заданном верхним значением и нижним значением. Иначе на выходе «?» – ЛОЖЬ. На выход « » выводится центральное значе­ние, ограниченное указанным диапазоном
Логические функции (Boolean) позволяют выполнять логические
операции над скалярными значениями и массивами логических величин.
Логические функции также являются полиморфными, на их входы можно
подавать логические или числовые значения (скалярные значения или
массивы). Условно-графические обозначения и таблицы истинности ос­новных логических функций приведены в таблице 3.5 [4, с. 17].
33
Описание логических функций
Название
Обозначение
Функция
Верхний вход
Нижний вход
Выход
ЛОЖЬ (0)
ЛОЖЬ (0)
ЛОЖЬ (0)
ЛОЖЬ (0)
ИСТИНА (1)
ЛОЖЬ (0)
ИСТИНА (1)
ЛОЖЬ (0)
ЛОЖЬ (0)
ИСТИНА (1)
ИСТИНА (1)
ИСТИНА (1)
Верхний вход
Нижний вход
Выход
ЛОЖЬ (0)
ЛОЖЬ (0)
ЛОЖЬ (0)
ЛОЖЬ (0)
ИСТИНА (1)
ИСТИНА (1)
ИСТИНА (1)
ЛОЖЬ (0)
ИСТИНА (1)
ИСТИНА (1)
ИСТИНА (1)
ИСТИНА (1)
Верхний вход
Нижний вход
Выход
ЛОЖЬ (0)
ЛОЖЬ (0)
ЛОЖЬ (0)
ЛОЖЬ (0)
ИСТИНА (1)
ИСТИНА (1)
ИСТИНА (1)
ЛОЖЬ (0)
ИСТИНА (1)
ИСТИНА (1)
ИСТИНА (1)
ЛОЖЬ (0)
Вход
Выход
ЛОЖЬ (0)
ИСТИНА (1)
ИСТИНА (1)
ЛОЖЬ (0)
Верхний вход
Нижний вход
Выход
ЛОЖЬ (0)
ЛОЖЬ (0)
ИСТИНА (1)
ЛОЖЬ (0)
ИСТИНА (1)
ИСТИНА (1)
ИСТИНА (1)
ЛОЖЬ (0)
ИСТИНА (1)
ИСТИНА (1)
ИСТИНА (1)
ЛОЖЬ (0)
Верхний вход
Нижний вход
Выход
ЛОЖЬ (0)
ЛОЖЬ (0)
ИСТИНА (1)
ЛОЖЬ (0)
ИСТИНА (1)
ЛОЖЬ (0)
ИСТИНА (1)
ЛОЖЬ (0)
ЛОЖЬ (0)
ИСТИНА (1)
ИСТИНА (1)
ЛОЖЬ (0)
Верхний вход
Нижний вход
Выход
ЛОЖЬ (0)
ЛОЖЬ (0)
ИСТИНА (1)
ЛОЖЬ (0)
ИСТИНА (1)
ИСТИНА (1)
ИСТИНА (1)
ЛОЖЬ (0)
ЛОЖЬ (0)
ИСТИНА (1)
ИСТИНА (1)
ИСТИНА (1)
Таблица 3.5
And
Or
Exclusive
Or
Not
Not And
Not Or
Implies
Выполняет операцию ИЛИ между инвертирован­ным верхним и неизменным нижним значением
34
Альтернативой описанным функциям является структура Formula
Node (рис. 3.8), которая позволяет записывать математические выражения
в текстовом виде.
Рис. 3.8. Структура Formula Node
Структуру Formula Node удобно применять при программировании
сложных выражений с большим количеством переменных. Расположена
она в палитре функций Функции (Functions) > Программирование (Pro- gramming) > Структуры (Structures) [4, с. 15].
Чтобы использовать Formula Node, требуется добавить на ее рамку
входные и выходные переменные. Для этого в контекстном меню рамки
(вызывается щелчком правой кнопкой мыши по рамке структуры) выбрать
Add input или Add output соответственно. После этого в появившемся на
рамке входе или выходе указывается имя переменной, которое далее бу-
дет использовано в выражении. Выражения записываются при помощи
функций и операторов, полный список которых приведен в справке (Lab-
VIEW Help). Доступ к ней можно получить при помощи функции Кон- текстная справка или выбрав пункт главного меню Help > LabVIEW Help.
Строковые функции предназначены для выполнения операций раз-
биения, объединения строк, поиска символа (группы символов) в строке,
замены символа (группы символов) на другой символ (группу символов) и т. п. Строки в LabVIEW – это, как и в других языках программирова­ния, последовательности символов из набора ASCII. Они применяются
для вывода сообщений на лицевую панель ВП или для формирования
команд управления для некоторых устройств. Условно-графические обо-
значения и описания основных строковых функций приведены в табли-
це 3.6 [4, с. 18].
35
Описание строковых функций
Обозна-
String Length
Возвращает число символов во входной строке
Объединяет входные строки и одномерные массивы строк
Возвращает часть входной строки. Начало подстроки за-
Search and Re-
Number To
Преобразует число в строку, состоящую из десятичных
Decimal String
Преобразует строку или ее часть в десятичное число.
String To Byte
Byte Array To
Таблица 3.6
Название
Concatenate
Strings
String Subset
place String
Decimal String
To Number
чение
Описание
в единственную выходную строку. Функция масштабиру­ется для объединения трех и более строк
дано номером символа (offset). Размер подстроки задан длиной (length)
Заменяет указанную подстроку другой подстрокой
цифр
Начало подстроки задано номером символа (offset)
Преобразует строку в массив байтов типа U8
Array
String
Преобразует массив байтов типа U8 в строку
Операторы ветвления в языках программирования дают возмож-
ность выбрать для выполнения один из двух (или нескольких) блоков про-
граммы в зависимости от значения некоторой переменной. В LabVIEW таким оператором является Структура выбора (Case Structure) (рис. 3.9), которую можно найти в палитре Программирование (Programming) > Структуры (Structures). Функционально она является аналогом оператора ветвления switch... case или условного оператора if... else в традиционных
языках программирования. В зависимости от значения, подаваемого на
вход структуры, выполнение программы происходит по одной из ветвей.
Структура является полиморфной, и управляющее значение может иметь логический, числовой или строковый тип данных. Количество ветв-
лений не ограничено и определяется типом данных управляющей перемен-
36
ной. Например, для управляющей переменной логического типа возможно только 2 ветвления, для переменной числового типа U8 – до 256 и т. д.
а б
Рис. 3.9. Структура выбора при значении переменной Boolean:
а – ИСТИНА; б – ЛОЖЬ
В рамке Структуры выбора находится поле для построения блок-
диаграммы конкретной ветви. Вверху расположен селектор с набором
значений, которые может принимать управляющая переменная. Для каж-
дого значения селектора в поле структуры строится блок-диаграмма, определяющая путь выполнения программы. В качестве значения селек­тора может выступать как одно число, так и диапазон или список чисел.
Если тип данных управляющей переменной числовой или строковый,
то одно из значений селектора обязательно должно быть выбрано как зна-
чение по умолчанию (Default). Ветвь с этим значением будет выполняться тогда, когда значение управляющей переменной не соответствует ни од­ному из значений селектора.
Структура выбора может иметь неограниченное число входных
и выходных терминалов. Для добавления нового терминала достаточно
подключить проводник к границе структуры [4, с. 22].
Циклы позволяют организовать многократное повторение набора ко­манд в программе. Этот набор команд называется телом цикла, а единич­ное выполнение тела цикла – итерацией. Как любой язык программирова­ния, LabVIEW имеет два типа циклов: Цикл со счетчиком итераций (For Loop) (рис. 3.10) и Цикл с условием (While Loop) (рис. 3.11). Оба цикла можно найти в палитре Программирование (Programming) > Структуры
(Structures).
37
Рис. 3.10. Цикл со счетчиком итераций
Рис. 3.11. Цикл с условием
Цикл со счетчиком итераций (For Loop) выполняет фиксированное
число итераций, которое задается константой или переменной, подклю­ченной к специальному терминалу .
Этот цикл имеет счетчик итераций , который выводит на свой вы-
ход номер текущей итерации. Счет итераций начинается с нуля.
Цикл с условием (While Loop) может выполнять неограниченное число
итераций, до тех пор, пока не выполнится логическое условие выхода из
цикла.
Этот цикл также имеет счетчик итераций , который выводит номер
текущей итерации. Кроме того, цикл имеет терминал завершения, на вход
которого подается логическое значение. Этот терминал работает в двух
режимах. В первом режиме при передаче активного значения (по умол­чанию это значение – ИСТИНА) выполнение цикла останавливается пол­ностью. Во втором режиме при передаче активного значения прерыва­ется выполнение текущей итерации, и выполнение цикла продолжается с новой итерации. Переключение между режимами выполняется щелчком
левой кнопки мыши по значку терминала или выбором пункта кон-
текстного меню Остановить, если ИСТИНА (Stop If True) / Продолжить,
если ИСТИНА (Continue If True).
38
Циклы могут иметь неограниченное количество входных и выходных
терминалов. Через терминалы могут передаваться скалярные значения или
массивы. Для добавления нового терминала нужно присоединить провод-
ник к одной из границ цикла. Если к циклу подключить внешний массив,
то терминал сможет вводить в тело цикла по одному элементу массива за итерацию. Такой режим терминала называется автоиндексирующим (Auto- Indexing Tunnel) и настраивается выбором пункта контекстного меню Включить индексацию (Enable Indexing). Значок терминала при этом дол- жен измениться на . Цикл со счетчиком итераций автоматически опре­делит размер массива и выполнит нужное число итераций. На терминал подавать число итераций не обязательно. Оно требуется только если число итераций должно быть меньше размера массива. Если к циклу подключе­но несколько массивов разного размера, то в качестве числа итераций он выберет наименьший размер.
Такой же терминал можно применять для создания одномерного мас­сива из единичных значений или двумерного массива из одномерных, вы­водимых из цикла по одному за итерацию.
В другом режиме работы входного терминала, если к нему подключен массив, через него передается весь массив целиком. Если к выходному терминалу подключен массив, то в этом режиме он выводит только по­следний элемент. Такие терминалы имеют значок , называются Терми- нал цикла (Tunnel Loop) и настраиваются выбором пункта контекстного меню Выключить индексацию (Disable Indexing) [4, с. 23].
Массив – набор однотипных значений (элементов), доступ к которым осуществляется по индексу. Физически все элементы массива размещают-
ся в одной области памяти один за другим, так что физический адрес
ячейки можно использовать в качестве индекса. Структура массива позво­ляет осуществлять доступ к элементам в произвольном порядке, указав его индекс.
39
Массив может иметь один и более индексов. Количество индексов
массива определяет его размерность. Например, массив с одним индексом называют одномерным, с двумя – двумерным и т. д.
Все массивы в LabVIEW являются динамическими, т. е. не требуют
предварительного определения количества элементов (размера). Макси-
мальное количество элементов массива в LabVIEW составляет 231. Индек­сы могут принимать значения от 0 до N–1, где N – размер массива. Эле­ментом массива может быть значение или структура, состоящая из значе­ний любого типа данных. Исключением является массив.
Для создания Массива константы (Array Constant) его нужно перене­сти из палитры Программирование (Programming) > Массив (Array) на блок-диаграмму. На рабочей области появится значок массива черного цвета (рис. 3.12).
Рис. 3.12. Шаблон массива
Это не типизированный шаблон массива, которому нужно присвоить
тип данных. Далее в рамку шаблона нужно поместить константу необхо­димого типа. Цвет значка массива изменится на цвет, соответствующий типу помещенной константы. Для увеличения размерности нового масси­ва нужно выбрать пункт Добавить размерность (Add Dimension) в кон- текстном меню индекса массива.
Чаще всего в программах требуется, чтобы массив формировался и обрабатывался программно, без участия оператора. Для этого использу­ются Цикл со счетчиком итераций (For Loop) или Цикл с условием (While Loop) с автоиндексируемыми терминалами (Auto-Indexing Tunnel). Кроме того, LabVIEW содержит набор функций для работы с массивами. Их ус­ловно-графические обозначения и описания приведены в табл. 3.7 [4, с. 27].
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]