Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Проектирование средств идентификационных измерений сигналов. Практикум.pdf
X
- •СПИСОК СОКРАЩЕНИЙ И УСЛОВНЫХ ОБОЗНАЧЕНИЙ
- •ВВЕДЕНИЕ
- •1. ТЕОРИЯ ИДЕНТИФИКАЦИОННЫХ ИЗМЕРЕНИЙ
- •1.1. Основы теории идентификационных измерений
- •1.2. Алгоритм выполнения идентификационных измерений
- •1.3. Методы идентификационных измерений
- •2.1. Понятие фракталов
- •2.2. Фрактальная размерность
- •1.4. Идентификационные характеристики
- •1.5. Средства идентификационных измерений
- •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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
