Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ASVT Материалы / основы_labview_1

.pdf
Скачиваний:
234
Добавлен:
29.03.2016
Размер:
5.26 Mб
Скачать

Лекция 8. Методы проектирования и шаблоны

На рисунке 8-6 показана базовая структура реализованного в LabVIEW конечного автомата системы измерения температуры.

Рисунок 8-6. Базовая инфраструктура конечного автомата LabVIEW

Поток диаграммы перехода реализован циклом While. Отдельные состояния представлены фреймами структуры Case. Сдвиговый регистр в цикле While хранит текущее состояния и передает его на вход структуры Case.

Управление конечными автоматами

Лучший способ управления инициализацией и переходами конечного автомата – использование элемента управления типа enumerated. Enums широко используются как селекторы выбора в конечном автомате. Однако, если пользователь предпринимает попытку добавить или удалить состояние из элемента управления типа enumerated, оставшиеся проводники, подключенные к копиями этого элемента управления, рвутся. Это одно из наиболее распространенных затруднений при реализации конечных автоматов на основе элементов управления типа enumerated. Одно из решений этой проблемы – создать определитель типа enumerated. Это заставляет все экземпляры элемента управления типа enumerated автоматически обновляться при добавлении или удалении состояния.

Переходы в конечных автоматах

Существует много способов управления тем, какой фрейм структуры Case будет выполняться в конечном автомате. Выбирайте метод, лучше всего подходящий для функциональности и сложности вашего конечного автомата. Из всех способов реализации переходов в конечном автомате наиболее простой и распространенный – единственная структура Case, которая может быть использована для переходов между любым количеством состояний. Этот способ обеспечивает масштабируемую, легкочитаемую и развиваемую архитектуру конечного автомата. Другие методы могут оказаться полезными в определенных ситуациях, поэтому вам имеет смысл ознакомиться и с ними.

Основы LabVIEW 1. Учебное пособие

201

ni.com

Лекция 8. Методы проектирования и шаблоны

Переход по умолчанию

Для перехода по умолчанию не требуется кода для определения следующего состояния, поскольку далее возможно только одно состояние. На рисунке 8- 7 показан шаблон разработки, в котором реализован переход по умолчанию для системы измерения температуры.

Рисунок 8-7. Единственный переход по умолчанию

Переход между двумя состояниями

Данный метод включает принятие решения о переходе между двумя состояниями. Существуют несколько шаблонов для реализации этого метода. На рисунке 8-8 показана функция Select, используемая для перехода между двумя состояниями.

Рисунок 8-8. Код перехода с функцией Select

Этот метод хорошо работает, если вы точно знаете, что в определенном состоянии всегда выполняется переход в два других состояния. Однако этот метод ограничивает масштабируемость приложения. Если вам придется модифицировать приложение для перехода между более чем двумя состояниями, оно перестанет работать и потребует глобальной модификации кода перехода.

© National Instruments Corporation

202

Основы LabVIEW 1. Учебное пособие

Лекция 8. Методы проектирования и шаблоны

Переход между двумя и более состояниями.

Для создания более масштабируемой архитектуры используйте один из следующих методов перехода между состояниями.

Case Structure — используйте структуру Case вместо функции Select для реализации кода перехода. На рисунке 8-9 показан переход с использованием структуры Case в системе измерения температуры.

Рисунок 8-9. Код перехода со структурой Case

Преимуществом использования структуры Case является самодокументированный код. Поскольку каждый фрейм структуры Case соответствует элементу в enum, код легок для чтения и понимания. Структура Case также масштабируется, поэтому по мере расширения приложения вы можете добавлять больше переходов в определенное состояние, добавляя для этого состояния фреймы в структуру Case. Недостатком использования структуры Case является невозможность увидеть весь код сразу. Из-за природы структуры Case невозможно сразу увидеть всю функциональность кода перехода.

Transition Array (Массив переходов) – если вам необходимо увидеть больше кода, чем позволяет структура Case, вы можете создать массив переходов для всех переходов. На рисунке 8-10 показан массив переходов для системы измерения температуры.

Рисунок 8-10. Код перехода с массивом переходов

Основы LabVIEW 1. Учебное пособие

203

ni.com

Лекция 8. Методы проектирования и шаблоны

В этом примере код принятия решений предоставляет индекс, который описывает следующее состояние. Например, если далее код должен перейти в состояние Error Handler, код принятия решений выдает 1 на индексный вход функции Index Array. Этот шаблон разработки делает код перехода масштабируемым и более простым для чтения.

Недостаток данного подхода в том, что вы должны разрабатывать код перехода с осторожностью, поскольку индексация в массиве начинается с нуля.

© National Instruments Corporation

204

Основы LabVIEW 1. Учебное пособие

Лекция 8. Методы проектирования и шаблоны

Изучение структуры Case: курсовой проект

В данном курсовом проекте каждые полсекунды выполняется измерение температуры, анализируется, не является ли температура слишком высокой или слишком низкой и выдается предупреждение пользователю, если существует опасность теплового удара или обморожения. Программа записывает данные при возникновении предупреждения. Если пользователь не нажал кнопку «Стоп», весь процесс повторяется. На рисунке 8-11 представлена диаграмма переходов для реализации курсового проекта

Рисунок 8-11. Диаграмма переходов для реализации курсового проекта

На рисунках с 8-12 по 8-15 представлены состояния конечного автомата, реализующего показанную на рисунке 8-11 диаграмму переходов. Если вы инсталлировали упражнения и решения, проект находится в папке

<Exercises>\LabVIEW Core 1\Course Project, и вы можете подробно изучить этот конечный автомат.

Основы LabVIEW 1. Учебное пособие

205

ni.com

Лекция 8. Методы проектирования и шаблоны

Рисунок 8-12. Состояние измерения

Рисунок 8-13. Состояние анализа

© National Instruments Corporation

206

Основы LabVIEW 1. Учебное пособие

Лекция 8. Методы проектирования и шаблоны

Рисунок 8-14. Состояние записи данных

Рисунок 8-15. Состояние проверки времени

D. Параллелизм

Часто вам необходимо запрограммировать несколько задач, которые должны выполняться одновременно. В LabVIEW задачи могут выполняться параллельно, если между ними нет зависимости по данным, и если они не используют один и тот же общий ресурс. Пример общего ресурса – файл или измерительный прибор.

Вы узнаете о шаблонах проектирования LabVIEW для выполнения нескольких задач параллельно в курсе LabVIEW Core 2. Этот шаблон проектирования включает параллельные циклы, архитектуру ведущий/ведомый и изготовитель/потребитель.

Основы LabVIEW 1. Учебное пособие

207

ni.com

Лекция 8. Методы проектирования и шаблоны

Самопроверка: короткий тест

1.При использовании структуры Sequence вы можете остановить выполнение на любой стадии последовательности.

a.Да

b.Нет

2.Какие из следующих преимуществ дает применение конечного автомата взамен последовательной структуры?

a.Вы можете изменять порядок выполнения в последовательности

b.Вы можете повторять отдельные элементы последовательности

c.Вы можете задать условия, которые определяют, когда должен выполняться элемент последовательности

d.Вы можете остановить выполнение программы в любом месте последовательности.

© National Instruments Corporation

208

Основы LabVIEW 1. Учебное пособие

Самопроверка: ответы

1.При использовании структуры Sequence вы можете остановить выполнение на любой стадии последовательности.

a.Да

b.Нет

2.Какие из следующих преимуществ дает применение конечного автомата взамен последовательной структуры?

a.Вы можете изменять порядок выполнения в последовательности

b.Вы можете повторять отдельные элементы последовательности

c.Вы можете задать условия, которые определяют, когда должен выполняться элемент последовательности

d.Вы можете остановить выполнение программы в любом месте последовательности

© National Instruments Corporation

209

Основы LabVIEW 1. Учебное пособие

Лекция 8. Методы проектирования и шаблоны

Заметки

© National Instruments Corporation

210

Основы LabVIEW 1. Учебное пособие