- •Оглавление
- •Рекомендации слушателю курса
- •B. Что нужно для начала
- •C. Установка программного обеспечения курса
- •Восстановление или удаление материалов курса
- •D. Цели курса
- •Урок 1 Решение задач
- •A. Методика разработки ПО
- •Определение входных данных
- •Определение выходных данных
- •Определение дополнительных требований
- •Разработка алгоритма решения задачи
- •Разработка блок-схемы
- •Разработка диаграммы переходов
- •Цель
- •Сценарий
- •Проектирование
- •Реализация
- •Тестирование
- •Сопровождение
- •Цель
- •Сценарий
- •Проектирование
- •Входные данные
- •Выходные данные
- •Диаграмма переходов
- •G. Курсовой проект
- •Вопросы для самопроверки
- •Ответы
- •Урок 2 Введение в LabVIEW
- •A. Виртуальные приборы
- •B. Составные части ВП
- •Лицевая панель
- •Блок-диаграмма
- •Иконка и соединительная панель
- •C. Начало разработки ВП
- •Создание/открытие ВП или проекта
- •Создание «с чистого листа»
- •Создание ВП или проекта по шаблону
- •Открытие существующего ВП
- •Сохранение ВП
- •D. Project Explorer
- •Окно Project Explorer
- •Инструментальные панели проекта
- •Создание проекта LabVIEW
- •Добавление существующих файлов к проекту
- •Удаление элементов проекта
- •Организация элементов в проекте
- •Просмотр файлов проекта
- •Сохранение проекта
- •E. Лицевая панель
- •Элементы управления и индикаторы
- •Числовые элементы управления и индикаторы
- •Логические элементы управления и индикаторы
- •Строковые элементы управления и индикаторы
- •Палитра элементов управления
- •Контекстные меню
- •Диалоги свойств
- •Инструментальная панель лицевой панели
- •Терминалы
- •Узлы блок-диаграммы
- •Функции
- •ПодВП
- •Расширяемые узлы в сравнении с иконками
- •Проводники
- •Типы данных
- •Автоматическое соединение объектов
- •Ручное соединение объектов
- •Палитра функций
- •Инструментальная панель блок-диаграммы
- •Цель
- •Описание
- •G. Поиск элементов управления, ВП и функций
- •Цель
- •Описание
- •H. Выбор инструмента
- •Инструмент УПРАВЛЕНИЕ
- •Инструмент ПЕРЕМЕЩЕНИЕ
- •Инструмент ВВОД ТЕКСТА
- •Инструмент СОЕДИНЕНИЕ
- •Другие инструменты палитры Tools
- •Цель
- •Описание
- •I. Поток данных
- •Цель
- •Описание
- •J. Создание простого ВП
- •Сбор данных
- •DAQ Assistant
- •Instrument I/O Assistant
- •Simulate Signal
- •Read From Measurement File
- •Анализ данных
- •Amplitude and Level Measurements
- •Statistics
- •Spectral Measurements
- •Tone Measurements
- •Filter
- •Представление данных
- •Write To Measurement File
- •Build Text
- •Запуск ВП
- •Индикация ошибок кнопкой Run
- •Цель
- •Сценарий
- •Проектирование
- •Блок-схема
- •Вопросы по архитектуре программы
- •Ответы на вопросы по архитектуре программы
- •Реализация
- •При наличии аппаратуры
- •Без аппаратуры
- •При наличии аппаратуры
- •Без аппаратуры
- •Тестирование
- •K. Справочные средства LabVIEW
- •Окно контекстной справки
- •Справочная система LabVIEW
- •Система поиска примеров
- •Цель
- •Описание
- •NI Example Finder
- •Окно Context Help
- •Справочная система LabVIEW
- •Вопросы для самопроверки
- •Ответы
- •Урок 3 Создание ВП
- •A. Проектирование лицевой панели
- •Проектирование элементов управления и индикации
- •Метки и подписи
- •Настройка элементов управления и индикации
- •Использование цвета
- •Размещение и выравнивание
- •Текст и шрифты
- •Инструменты и подсказки в пользовательском интерфейсе
- •Системные элементы управления
- •Многостраничный элемент управления
- •Декоративные элементы
- •Меню
- •Автоматическое масштабирование объектов лицевой панели
- •Цель
- •Сценарий
- •Проектирование
- •Входные и выходные данные пользовательского интерфейса
- •Внешние входные и выходные данные
- •Диаграмма переходов
- •Реализация
- •B. Терминалы блок-диаграммы
- •Элементы управления, индикаторы и константы
- •Типы данных LabVIEW
- •Числовой тип данных
- •Числа с плавающей точкой
- •Целые числа
- •Комплексные числа
- •Логический тип данных
- •Строковый тип данных
- •Перечислимый тип данных
- •Динамический тип данных
- •C. Документирование кода
- •Всплывающие подсказки
- •Свойства ВП
- •Именование элементов управления и индикаторов
- •Графическое программирование
- •Цель
- •Сценарий
- •Проектирование
- •Входные и выходные данные
- •Блок-схема
- •Реализация
- •Тестирование
- •D. Цикл While
- •Туннели
- •Цель
- •Сценарий
- •Проектирование
- •Блок-схема
- •Реализация
- •Тестирование
- •E. Цикл For
- •Преобразование числовых типов данных
- •Цель
- •Описание
- •Сценарий 1
- •Сценарий 2
- •Сценарий 3
- •Сценарий 4
- •Ответы
- •Сценарий 1
- •Сценарий 2
- •Сценарий 3
- •Сценарий 4
- •F. Синхронизация ВП
- •Функции ожидания
- •Истекшее время
- •G. Передача данных между итерациями
- •Инициализация сдвиговых регистров
- •Стек сдвиговых регистров
- •Цель
- •Сценарий
- •Проектирование
- •Реализация
- •При наличии аппаратуры
- •Без аппаратуры
- •Тестирование
- •H. Графическое представление данных
- •Waveform Chart
- •Соединения на диаграммах
- •Waveform Graph
- •Waveform Graph с одной кривой
- •Waveform Graph со многими кривыми
- •XY Graph с одной кривой
- •XY Graph со многими кривыми
- •Цель
- •Сценарий
- •Проектирование
- •Реализация
- •Тестирование
- •I. Структура выбора Case
- •Выбор варианта
- •Входные и выходные туннели
- •Примеры
- •Логическая структура Case
- •Целочисленная структура Case
- •Строковая структура Case
- •Перечислимая структура Case
- •Цель
- •Сценарий
- •Проектирование
- •Реализация
- •Тестирование
- •J. Узел формул
- •Цель
- •Сценарий
- •Проектирование
- •Входные и выходные данные
- •Блок-схема
- •Реализация
- •Тестирование
- •Цель
- •Сценарий
- •Проектирование
- •Входные и выходные данные
- •Блок-схема
- •Реализация
- •Цель
- •Сценарий
- •Проектирование
- •Входные и выходные данные
- •Блок-схема
- •Архитектура ВП
- •Реализация
- •Тестирование
- •Вопросы для самопроверки
- •Ответы
- •Урок 4 Объединение данных
- •Ограничения
- •Создание массивов из элементов управления и индикаторов
- •Двумерные массивы
- •Инициализация массивов
- •Создание константного массива
- •Автоматическая индексация массивов
- •Ввод массивов в цикл
- •Вывод массивов из цикла
- •Создание двумерных массивов
- •Цель
- •Описание
- •Часть 1: индексация, модификация и отображение массива.
- •Часть 2: упрощенная индексация, модификация и отображение массива.
- •Часть 3: создание подмножеств массива
- •Часть 1: реализация
- •Часть 2: реализация
- •Часть 3: реализация
- •B. Кластеры
- •Создание кластеров из элементов управления и индикаторов
- •Создание кластерных констант
- •Порядок элементов в кластере
- •Функции для работы с кластерами
- •Сборка кластеров
- •Модификация кластера
- •Разборка кластеров
- •Кластеры ошибок
- •Цель
- •Описание
- •Цель
- •Сценарий
- •Проектирование
- •Реализация
- •C. Определения типов
- •Заказные элементы управления
- •Режим редактирования
- •Режим настройки
- •Сохранение элементов управления
- •Определение типа
- •Цель
- •Сценарий
- •Проектирование
- •Реализация
- •Вопросы для самопроверки
- •Ответы на вопросы
- •Урок 5 Отладка ВП
- •Поиск причин неработоспособности ВП
- •Типичные причины неработоспособности ВП
- •B. Методы отладки
- •Подсветка выполнения
- •Пошаговое выполнение
- •Инструмент ПРОБНИК
- •Типы пробников
- •Универсальный пробник
- •Просмотр данных с помощью индикаторов лицевой панели
- •Специализированные пробники
- •Заказные пробники
- •Контрольные точки
- •Состояние ожидания
- •Определение текущего экземпляра подВП
- •C. Неопределенные или непредвиденные данные
- •D. Обработка ошибок
- •Автоматическая обработка ошибок
- •Ручная обработка ошибок
- •Кластеры ошибок
- •Объяснение ошибок
- •Обработка ошибок при помощи структуры Case
- •Обработка ошибок при помощи цикла While
- •Цель
- •Описание
- •Вопросы для самопроверки
- •Ответы
- •Урок 6 Разработка модульных приложений
- •B. Иконка и соединительная панель
- •Создание иконки
- •Настройка соединительной панели
- •Выбор и модификация шаблонов терминалов
- •Привязка терминалов к элементам управления и индикаторам
- •C. Использование подВП
- •Открытие и редактирование подВП
- •Обязательные, рекомендуемые и необязательные входы и выходы
- •Создание подВП из кода существующего ВП
- •Цель
- •Сценарий
- •Проектирование
- •Реализация
- •Тестирование
- •Вопросы для самопроверки
- •Ответы
- •Урок 7 Основы измерений
- •Ввод сигналов
- •Источники сигналов
- •Заземленный источник сигнала
- •Плавающий источник сигнала
- •Формирование сигнала
- •Усиление
- •Линеаризация
- •Возбуждение датчика
- •Изоляция
- •Измерительные системы
- •Дифференциальные измерительные системы
- •Несимметричные заземленные и незаземленные системы
- •Источники сигнала и измерительные системы
- •C. Повышение качества измерений
- •Достижение предельной чувствительности
- •Разрешение
- •Входной диапазон
- •Усиление
- •Шаг квантования
- •Повышение точности восстановления формы
- •Уменьшение шума
- •Цель
- •Описание
- •Вопросы для самопроверки
- •Ответы
- •Урок 8 Сбор данных
- •Блок терминалов и кабель
- •Панель DAQ Signal Accessory
- •Устройство DAQ
- •B. Программная архитектура
- •Конфигурирование аппаратуры DAQ
- •Windows
- •Measurement & Automation Explorer
- •Шкалы
- •C. Имитация устройства DAQ
- •Создание имитированных устройств NI-DAQmx
- •Удаление имитированных устройств NI-DAQmx
- •Цель
- •Описание
- •Часть А. Создание имитированного устройства
- •Часть B. Изучение конфигурации устройства DAQ
- •Часть C. Тестирование компонентов устройства DAQ
- •Часть D. Создание заказной шкалы
- •D. Аналоговый ввод
- •Аналого-цифровое преобразование
- •Управление задачами
- •Однократная выборка
- •Многократная выборка
- •Непрерывная выборка
- •Синхронизация задач
- •Цель
- •Описание
- •Проектирование
- •Входы и выходы пользовательского интерфейса
- •Внешние входы и выходы
- •Реализация
- •Тестирование
- •Аппаратура
- •Без аппаратуры
- •E. Аналоговый вывод
- •Управление задачами
- •Однократное обновление
- •Генерация N точек
- •Непрерывная генерация
- •Синхронизация задач
- •Цифро-аналоговое преобразование
- •F. Счетчики
- •Цель
- •Сценарий
- •Проектирование
- •Датчик положения
- •Входы и выходы пользовательского интерфейса
- •Внешние входы
- •Реализация
- •Тестирование
- •G. Цифровой ввод-вывод
- •Цель
- •Сценарий
- •Проектирование
- •Цифровой ввод-вывод
- •Блок-схема
- •Реализация
- •Тестирование
- •Вопросы для самопроверки
- •Вопросы для самопроверки
- •Урок 9 Управление приборами
- •Завершение передачи данных
- •Пропускная способность
- •C. Последовательная связь
- •Скорость передачи данных
- •Стандарты последовательных портов
- •D. Другие интерфейсы
- •E. Программная архитектура
- •MAX (Windows, GPIB)
- •Цель
- •Описание
- •F. Instrument I/O Assistant
- •Цель
- •Часть A: последовательный интерфейс
- •Часть B: GPIB
- •Терминология VISA
- •VISA и последовательный порт
- •Цель
- •Описание
- •Тест A: последовательный порт
- •Тест B: GPIB
- •H. Драйверы приборов
- •Что такое драйвер прибора?
- •Где найти драйверы приборов?
- •Пример работы с драйвером прибора
- •Как работает драйвер прибора?
- •Цель
- •Описание
- •Установка драйвера прибора
- •Знакомство с драйвером прибора
- •Работа с примерами программ
- •Вопросы для самопроверки
- •Ответы
- •Урок 10 Анализ и сохранение результатов измерений
- •Выбор правильного метода анализа
- •Оперативный и отложенный анализ
- •Программный и интерактивный анализ
- •Категории анализа
- •Цель
- •Описание
- •Сценарий 1
- •Сценарий 2
- •Сценарий 3
- •Сценарий 4
- •Сценарий 1
- •Сценарий 2
- •Сценарий 3
- •Сценарий 4
- •B. Чтение и запись данных в файл
- •Форматы файлов
- •Каталог LabVIEW Data
- •ВП файлового ввода-вывода
- •Потоковый вывод на диск
- •Высокоуровневый файловый ввод-вывод
- •Цель
- •Сценарий
- •Проектирование
- •Входы и выходы
- •Блок-схема
- •Реализация
- •Тестирование
- •Вопросы для самопроверки
- •Ответы
- •Урок 11 Стандартные методы и образцы проектирования
- •Инфраструктура конечного автомата
- •Управление конечным автоматом
- •Элемент управления перечислимого типа
- •Переход по умолчанию
- •Переход между двумя состояниями
- •Переход между двумя и более состояниями
- •Цель
- •Сценарий
- •Проектирование
- •Входы и выходы пользовательского интерфейса
- •Внешние входы и выходы
- •Реализация
- •Состояние сбора данных
- •Аппаратура
- •Без аппаратуры
- •Состояние анализа
- •Состояние сохранения
- •Состояние проверки времени
- •Завершение работы конечного автомата
- •Тестирование
- •D. Параллелизм
- •Заключение
- •Приложение A Дополнительная информация и ресурсы
- •Публикации о LabVIEW
- •Бюллетень LabVIEW Technical Resource (LTR)
- •Книги по LabVIEW
- •Информационная рассылка info-labview
Урок 3 Создание ВП
D. Цикл While
Цикл While подобен циклам do и do-while в текстовых языках программирования. Диаграмма цикла выполняется до тех пор, пока не будет выполнено условие выхода.
На рис. 3-17 показано, как выглядит цикл While на блок-диаграмме LabVIEW. Показаны также его эквивалентная блок-схема и псевдокод, реализующий те же функции.
|
Код |
|
|
|
Нет |
Repeat (код); |
|
Код |
Условие |
Until Условие выполнено; |
|
выполнено? |
|||
End; |
|||
|
|
||
|
Да |
|
|
|
Конец |
|
|
1 |
2 |
3 |
|
1 Цикл While в LabVIEW |
2 Блок-схема |
3 Псевдокод |
Рис. 3-17. Цикл While.
Структура цикла While находится на палитре Functions>>All Functions>>Structures. Выберите цикл в палитре, а затем растяните курсором прямоугольник выделения вокруг той части блокдиаграммы, которую нужно повторять. После отпускания кнопки мыши выделенный участок будет заключен в рамку цикла.
Для добавления к циклу других объектов блок-диаграммы просто перетаскивайте их внутрь рамки.
Совет Цикл While всегда выполняется как минимум один раз.
Диаграмма цикла While выполняется до тех пор, пока терминал условия (входной терминал цикла) не получит заданное логическое значение. По умолчанию терминал условия работает в режиме Stop if True (завершить по значению True) и выглядит так, как показано
слева.
В этом режиме диаграмма цикла выполняется до тех пор, пока на терминал условия не будет подано значение TRUE. Внешний вид и поведение терминала можно изменить, щелкнув на нем (или на рамке цикла) правой кнопкой и выбрав в контекстном меню пункт Continue if True (продолжать по значению True).
В режиме Continue if True диаграмма цикла выполняется до тех пор, пока на терминал условия не будет подано значение FALSE. Изменить условие можно также инструментом УПРАВЛЕНИЕ, щелкнув им на терминале.
Терминал счетчика итераций (выходной терминал цикла), показанный слева, содержит количество выполненных итераций.
©National Instruments Corporation |
3-31 |
Учебный курс LabVIEW Основы I |
Урок 3 Создание ВП
Подсчет итераций всегда начинается с нуля. Во время первой итерации терминал возвращает 0.
На диаграмме рис. 3-18 цикл While завершится, когда случайное число окажется больше или равно 10.00 и при этом элемент управления Enable будет содержать значение True. Функция And (логическое И) возвращает True только при наличии True на обоих входах. В противном случае возвращается False.
В этом примере повышена вероятность зацикливания, поскольку для выхода из цикла требуется выполнение сразу двух условий. В общем случае рекомендуется использовать только одно условие.
Рис. 3-18. Цикл, который может стать бесконечным.
Туннели
Туннели (tunnels) используются для ввода и вывода данных из структуры. На блок-диаграмме туннель имеет вид сплошного квадратика на границе цикла. Его цвет совпадает с цветом проводника, подведенного к туннелю. Данные выводятся из цикла после его завершения. Если туннель используется для ввода данных
вцикл, то выполнение цикла не начинается до поступления данных
втуннель.
На блок-диаграмме рис. 3-19 с туннелем соединен терминал итераций. Однако значение в туннеле не передается на индикатор Iterations, пока цикл не завершится. В результате индикатор покажет только последнее значение счетчика итераций.
Рис. 3-19. Туннель цикла While.
©National Instruments Corporation |
3-32 |
Учебный курс LabVIEW Основы I |
Урок 3 Создание ВП
Упражнение 3-3 ВП для поиска совпадений
Цель
Использовать цикл While, терминал счетчика итераций и передачу данных по туннелю.
Сценарий
Построить ВП, который непрерывно генерирует случайные числа между 0 и 1000, пока очередное число не совпадет с числом, выбранным пользователем. Определить, сколько случайных чисел сгенерировал ВП до того, как произошло совпадение.
Проектирование
Табл. 3-2. Входные и выходные данные.
Тип |
Имя |
Свойства |
|
|
|
Вход |
Заданное число |
С плавающей точкой, |
|
|
двойной точности, диапазон |
|
|
от 0 до 1000, округлить до |
|
|
ближайшего целого, по |
|
|
умолчанию = 50 |
|
|
|
Выход |
Текущее число |
С плавающей точкой, |
|
|
двойной точности |
|
|
|
Выход |
Кол-во итераций |
Целое |
|
|
|
©National Instruments Corporation |
3-33 |
Учебный курс LabVIEW Основы I |
|
Урок 3 Создание ВП |
|
|
||
Блок-схема |
|
|
|
|
|
Сгенерировать |
|
Нет |
|
|
|
случайное число |
|
|
|
||
от 0 до 1 |
|
|
|
|
|
Умножить на 1000 |
|
|
|
|
|
Округлить до |
Показать |
= Заданное |
|
Добавить 1 |
|
ближайшего |
Да |
к терминалу |
|||
пользователю |
число? |
||||
целого |
|
итераций |
|||
|
|
|
|||
|
|
|
|
Показать число |
|
|
|
|
|
итераций |
|
|
Рис. 3-20. Блок-схема ВП Поиск совпадений. |
||||
Реализация
Откройте пустой ВП и постройте лицевую панель, как показано ниже. Модифицируйте элементы управления и индикаторы согласно рисунку и пошаговым инструкциям.
1. Создайте вход Заданное число.
©National Instruments Corporation |
3-34 |
Учебный курс LabVIEW Основы I |
Урок 3 Создание ВП
Поместите на лицевую панель числовой элемент управления.
Измените метку на Заданное число.
2.Установите следующие свойства элемента управления Заданное число: значение по умолчанию 50, диапазон значений от 0 до 1000, инкремент 1 и число цифр после запятой 1.
Щелкните правой кнопкой на элементе Заданное число и выберите в контекстном меню пункт Data Range (Диапазон значений). Появится страница Data Range диалога Numeric Properties.
Снимите отметку Use Default Range (Использовать диапазон по умолчанию).
Установите для Default Value (Значение по умолчанию) значение 50.
Установите значение Minimum равным 0 и выберите Coerce (Привести) в раскрывающемся меню Out of Range Action (Действие при выходе за границу диапазона).
Установите значение Maximum равным 1000 и выберите
Coerce в раскрывающемся меню Out of Range Action.
Установите значение Increment равным 1 и выберите Coerce to Nearest (Привести к ближайшему) в раскрывающемся меню Out of Range Action.
Щелкните на вкладке Format and Precision.
Выберите формат Floating Point и измените способ задания точности с Significant digits (Число значащих цифр) на Digits of precision (Число цифр после запятой).
Введите 0 в текстовом поле Digits и нажмите OK.
3.Создайте выход Текущее число.
Поместите числовой индикатор на лицевую панель.
Измените метку на Текущее число.
4.Установите для индикатора число цифр после запятой равным 0.
Выберите в контекстном меню индикатора пункт Format & Precision. Появится одноименная страница диалога Numeric Properties.
Выберите формат Floating Point и измените способ задания точности с Significant digits на Digits of precision.
Введите 0 в текстовом поле Digits и нажмите OK.
5.Создайте выход Кол-во итераций.
Поместите числовой индикатор на лицевую панель.
Измените метку на Кол-во итераций.
6.Задайте представление в формате длинного целого.
Щелкните правой кнопкой на индикаторе Кол-во итераций.
©National Instruments Corporation |
3-35 |
Учебный курс LabVIEW Основы I |
Урок 3 Создание ВП
Выберите в контекстном меню Representation>>I32. Постройте блок-диаграмму согласно рисунку.
7.Сгенерируйте случайное целое число между 0 и 1000.
Поместите на блок-диаграмму функцию Random Number (0– 1). Эта функция генерирует случайное число от 0 до 1.
Поместите на блок-диаграмму функцию Multiply. Эта функция умножает случайное число на y, чтобы получить случайное число от 0 до y.
Щелкните правой кнопкой на входе y функции умножения, выберите в контекстном меню Create>>Constant, введите 1000 и нажмите <Enter>, чтобы создать числовую константу.
Поместите на блок-диаграмму функцию Round To Nearest. Эта функция округляет случайное число до ближайшего целого.
8.Сравните сгенерированное случайное число со значением
Заданное число.
Поместите на блок-диаграмму функцию Not Equal?. Эта функция сравнивает случайное число с Заданное число и возвращает True, если числа не равны, и False в противном случае.
9.Повторяйте алгоритм, пока функция Not Equal? не возвратит
True.
Поместите цикл While из палитры Structures на блокдиаграмму.
Щелкните правой кнопкой на терминале условия и выберите Continue if True в контекстном меню.
10.Покажите пользователю количество сгенерированных случайных чисел, прибавив единицу к значению счетчика итераций.
Соедините терминал счетчика итераций с рамкой цикла While. На рамке появится синий туннель.
Совет На каждом проходе цикла счетчик итераций увеличивается на единицу. Счет начинается с 0, поэтому нужно соединить терминал счетчика с
©National Instruments Corporation |
3-36 |
Учебный курс LabVIEW Основы I |
