
- •Оглавление
- •Рекомендации слушателю курса
- •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

Урок10 Стандартные методы и образцы проектирования
C.Конечные автоматы
Конечный автомат является одним из самых распространенных и очень удобных образцов проектирования для LabVIEW. Его можно использовать для реализации любого алгоритма, который явно описывается диаграммой состояний или блок-схемой. Конечные автоматы обычно реализуют алгоритмы принятия решений умеренной сложности, например, для диагностики или управления процессами.
Конечный автомат (КА) описывается множеством состояний и функцией перехода из одного состояния в другое. Существует много разновидностей КА. Наиболее распространенными являются автомат Мили (Mealy) и автомат Мура (Moore). Автомат Мили выполняет действие при каждом переходе. Автомат Мура выполняет определенное действие в каждом состоянии. Шаблон образца конечного автомата, который есть в LabVIEW, позволяет реализовать любой алгоритм, описываемый автоматом Мура.
Конечные автоматы используются в тех приложениях, где существуют четко различимые состояния. Из каждого состояния можно перейти в одно или несколько других состояний, или завершить процесс. Переход в следующее состояние происходит в результате действий пользователя или вычислений в рамках текущего состояния. Для многих приложений первым должно быть состояние инициализации, за которым следует состояние по умолчанию, позволяющее выполнять много различных действий. Выбор того или иного действия зависит от предшествующих и текущих входных данных и состояний. В состоянии завершения работы обычно выполняются действия по освобождению ресурсов.
Конечные автоматы широко используются для создания пользовательских интерфейсов. Различные действия пользователя приводят к переходу в те или иные секции обработки. Каждая секция обработки эквивалентна состоянию КА. Каждый сегмент может передавать управление другому сегменту или ожидать дальнейших действий пользователя. Такой КА постоянно следит за пользователем, реагируя на его действия.
Другим распространенным применением образца КА является тестирование процессов. Здесь состоянием является каждый сегмент процесса. В зависимости от результата теста текущего состояния может быть выполнен переход в другое состояние. Это может происходить многократно, позволяя выполнять углубленный анализ тестируемого процесса.
Использование КА имеет то преимущество, что после создания диаграммы переходов можно сравнительно легко построить ВП.
Инфраструктура конечного автомата
Для перевода диаграммы переходов на язык блок-диаграмм LabVIEW требуется следующие компоненты инфраструктуры:
• Цикл While — многократно повторяет различные состояния.
©National Instruments Corporation |
11-6 |
Учебный курс LabVIEW Основы I |

Урок10 Стандартные методы и образцы проектирования
•Структура Case — содержит вариант с кодом для каждого состояния.
•Сдвиговый регистр — содержит информацию о переходе.
•Функциональный код состояния — реализует основную функцию состояния.
•Код перехода — определяет следующее состояние в последовательности состояний.
На рис. 11-6 показана базовая структура КА, реализующего алгоритм сбора температурных данных.
1
2
3
1 Цикл While |
2 Сдвиговый регистр |
3 Структура Case |
|
|
|
Рис. 11-6. Базовая инфраструктура конечного автомата LabVIEW.
Поток состояний диаграммы переходов реализуется циклом While. Отдельные состояния представлены вариантами структуры Case. Сдвиговый регистр цикла While хранит информацию о текущем состоянии и передает ее на вход структуры Case.
Управление конечным автоматом
Для управления выбором того или иного варианта в структуре Case существует много методов. Выбирайте тот из них, который лучше соответствует функциям и сложности вашего КА. Самым простым и распространенным методом реализации переходов является прямой выбор в единственной структуре Case. Он позволяет получить наиболее понятную, масштабируемую и удобную в сопровождении архитектуру КА. В определенных ситуациях могут быть полезны и другие методы, и вы должны быть с ними знакомы.
Элемент управления перечислимого типа
Наилучший метод управления инициализацией и переходами КА — это использование элемента управления перечислимого типа. Эти элементы управления широко используются в качестве селектора вариантов в КА, но им присущи определенные недостатки. Если пользователь попытается добавить или удалить состояние в перечислимом типе, то проводники, соединенные с копиями элемента управления, будут разорваны. Одно из решений данной проблемы состоит в том, чтобы создать определение типа, щелкнув правой кнопкой на элементе управления и выбрав typedef в
©National Instruments Corporation |
11-7 |
Учебный курс LabVIEW Основы I |

Урок10 Стандартные методы и образцы проектирования
контекстном меню. После этого все копии данного элемента управления будут автоматически обновляться при добавлении или удалении состояний.
Переход по умолчанию
При разработке кода КА, управляемого элементом перечислимого типа, можно использовать несколько стандартных образцов проектирования. На рис. 11-7 показан образец проектирования с переходом по умолчанию, реализованный для системы сбора температурных данных. Переход по умолчанию не требует какоголибо кода для определения следующего состояния.
Рис. 11-7. Одиночный переход по умолчанию.
Переход между двумя состояниями
Следующий метод основан на принятии решения о переходе между двумя состояниями. Для него также существует несколько распространенных образцов проектирования. На рис. 11-8 показан переход при помощи функции Select, реализованный в системе сбора температурных данных.
Рис. 11-8. Переход между двумя состояниями.
Этот метод хорошо работает, если заранее известно, что из отдельного состояния возможен переход только в два других состояния. Масштабируемость системы в этом случае ограничена. Если потребуется переходить более чем в два состояния, приведенное решение не будет работать и код перехода придется радикально менять.
©National Instruments Corporation |
11-8 |
Учебный курс LabVIEW Основы I |

Урок10 Стандартные методы и образцы проектирования
Переход между двумя и более состояниями
Для создания архитектуры с лучшей масштабируемостью применяются следующие методы перехода.
•Структура Case. Используется вместо функции Select. На рис. 11-9 показано, как при помощи Case можно реализовать переход в системе сбора температурных данных.
Рис. 11-9. Переход при помощи структуры Case.
Одним из достоинств структуры Case является самодокументируемость кода. Каждый вариант структуры соответствует элементу перечислимого типа, поэтому код легко читать и понимать. Структура Case хорошо масштабируется. По мере роста программы можно добавлять к каждому состоянию другие переходы, просто добавляя варианты в структуру. Недостаток структуры Case в том, что в каждый момент можно видеть только один вариант. Это ограничение, присущее структуре, не позволяет одним взглядом охватить все возможные варианты переходов.
•Массив переходов. Если требуется видеть больше кода, чем позволяет структура Case, можно поместить все переходы из данного состояния в массив и индексировать этот массив.
На рис. 11-10 показан массив переходов для системы сбора температурных данных.
Рис. 11-10. Массив переходов.
В этом примере массив перечислимых элементов управления индексируется первой логической True-константой в логическом массиве, индекс которой соответствует индексу нового
©National Instruments Corporation |
11-9 |
Учебный курс LabVIEW Основы I |

Урок10 Стандартные методы и образцы проектирования
состояния в массиве перечислимых элементов. Такой образец проектирования позволяет сделать код масштабируемым и легко читаемым. Одним из его недостатков является то, что при разработке необходимо внимательно следить за однозначным соответствием элементов логического массива и элементов массива переходов. Кроме того, функция Search 1D Array возвращает –1, если элемент не найден. Чтобы функция индексирования работала ожидаемым образом, необходимо увеличить выходное значение Search 1D Array на 1. Если на рис. 11-10 элемент не найден, КА остается в состоянии Analyzer.
•State Diagram Toolkit. Еще один образец, реализующий переходы, можно найти в пакете NI LabVIEW State Diagram Toolkit. Этот образец содержит большую структуру Case для каждого состояния и малый цикл While, который перебирает переходы, пока не будет найден нужный. На рис. 11-11 показана реализация системы сбора температурных данных на основе
State Diagram Toolkit.
State Diagram Toolkit добавляет к LabVIEW редактор диаграмм состояний (State Diagram Editor), который позволяет схематически нарисовать логику приложения. После создания визуального представления логики, редактор генерирует код LabVIEW, который будет служить основой приложения.
Примечание LabVIEW State Diagram Toolkit не входит в LabVIEW Professional Development System. Его нужно приобретать отдельно.
Рис. 11-11. Реализация конечного автомата в State Diagram Toolkit.
Большая структура Case выбирает код, соответствующий текущему активному состоянию. Обратите внимание, что сдвиговый регистр инициализируется перечислимым элементом управления, который содержит начальное состояние, указанное
©National Instruments Corporation |
11-10 |
Учебный курс LabVIEW Основы I |
Урок10 Стандартные методы и образцы проектирования
на диаграмме переходов. Большая структура Case содержит по одной поддиаграмме для каждого состояния. Поддиаграммы, в свою очередь, содержат набор инструкций, которые выполняются, когда соответствующее состояние становится активным. Условие перехода проверяется в цикле While, который является частью кода каждого состояния. Этот цикл содержит еще один перечислимый тип (для каждого состояния свой), элементы которого соответствуют состояниям, в которые можно перейти из данного состояния. Элементы упорядочены по приоритету переходов. Переходы с наибольшим приоритетом имеют меньшие числовые значения. При выполнении цикла эти значения по очереди (от меньшего к большему) подаются на вход малой структуры Case. Целые значения индексного терминала преобразуются в тип данных transition. Структура вырабатывает два значения: значение условия перехода для проверяемого перехода, и значение нового активного состояния (в предположении, что для этого перехода условие было определено как TRUE). Как только встречается переход TRUE, цикл останавливается, и КА переходит в следующее активное состояние.
Конечный автомат State Diagram Toolkit должен удовлетворять следующим условиям:
•Всегда должен существовать переход по умолчанию.
•Переход по умолчанию всегда должен иметь низший приоритет, чтобы он проверялся последним.
•Условием перехода по умолчанию всегда должно быть TRUE. Для этого перехода с выходом условия можно соединить логическую константу.
©National Instruments Corporation |
11-11 |
Учебный курс LabVIEW Основы I |