Входы и выходы пользовательского интерфейса

Тип Имя Свойства
Числовой элемент управления Верхний предел Двойная точность
Числовой элемент управления Нижний предел Двойная точность
Waveform Chart Ход температуры  
Строковый индикатор Предупреждение Четыре возможных значения: "Жарко", "Холодно", "Нет", "Верхний предел < Нижний предел"
Кнопка Stop Stop  

Внешние входы и выходы

· Входы: текущая температура с датчика на канале AI0 платы сбора данных.

Формула преобразования: напряжение × 100 = градусы Цельсия.

· Выходы: ASCII-файл, разделенный табуляцией, в котором для каждого выданного предупреждения сохраняются текущая температура, пределы температуры и строка предупреждения.

Входы и выходы пользовательского интерфейса - student2.ru

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

Реализация

На следующих шагах вы построите конечный автомат в ВП Интерфейс метеостанции.

Входы и выходы пользовательского интерфейса - student2.ru

Рис. 11-13. Создание конечного автомата.

1. Откройте проект метеостанции.

q Выберите пункт меню File>>Open Project. Перейдите в каталог C:\Exercises\LabVIEW Basics I\Курсовой проект.

q Выберите Метеостанция.lvproj.

2. Откройте пользовательский интерфейс метеостанции.

q В окне Project Explorer дважды щелкните на Интерфейс метеостанции.vi.

3. Перейдите на блок-диаграмму.

4. Создайте на блок-диаграмме конечный автомат, используя существующий элемент управления перечислимого типа.

q Поместите на блок-диаграмму цикл While из палитры Structures, как показано на рис. 11-13.

q Поместите внутри цикла структуру Case.

q Вынесите перечислимую константу Состояния метеостанции за пределы цикла.

q Соедините константу с терминалом селектора вариантов.

q Щелкните правой кнопкой на структуре и выберите в контекстном меню пункт Add Case for Every Value (Добавить вариант для каждого значения).

q Измените туннель перечислимой константы на сдвиговый регистр.

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

q Поместите внутрь цикла While (но вне структуры Case) функцию Wait (ms).

q Щелкните правой кнопкой на терминале milliseconds to wait и выберите в контекстном меню Create>>Constant.

q Введите в константу значение 5.

6. Передайте кластер температур в конечный автомат так, чтобы он был доступен из любого состояния.

q Соедините выход функции Bundle с циклом While, чтобы создать туннель.

q Замените туннель на сдвиговый регистр.

q Соедините сдвиговый регистр со структурой Case.

7. Сравните свою блок-диаграмму с показанной на рис. 11-13.

8. Сохраните ВП.

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

Состояние сбора данных

Входы и выходы пользовательского интерфейса - student2.ru

Рис. 11-14. Состояние сбора данных.

1. Переключитесь на состояние "Сбор данных".

2. Выполните однократный ввод данных температуры.

Аппаратура

q Поместите DAQ Assistant в структуру Case.

q Выберите тип задачи Analog Input>>Voltage.

q Выберите канал ai0 для вашего устройства сбора данных.

q Нажмите кнопку Finish.

q Выберите Temperature в раскрывающемся меню Custom Scaling.

q Установите диапазон входного сигнала 0 to 50 degrees Celsius.

q Установите режим синхронизации 1 Sample (On Demand).

q Нажмите кнопку OK.

q Переходите к шагу 3.

Без аппаратуры

q Выберите в окне Project Explorer ВП Имитатор термометра и перетащите его в вариант "Сбор данных". Далее вы будете использовать терминалы этого ВП вместо терминалов DAQ Assistant.

3. Выведите полученные температурные данные на индикатор Ход температуры.

q Переместите терминал Ход температуры в вариант "Сбор данных".

q Соедините выход data DAQ Assistant с терминалом Ход температуры. Обратите внимание, что тип данных графического индикатора автоматически подстроился под тип входных данных.

4. Обновите текущую, максимальную и минимальную температуры в кластере температур.

q Поместите функцию Bundle By Name в вариант "Сбор данных".

q Соедините с функцией кластер температур.

q Расширьте функцию так, чтобы были видны три элемента.

q При необходимости переназначьте терминалы, чтобы порядок элементов был таким: Температура, Т ВерхПредел, Т НижПредел.

q Переместите терминалы Верхний предел и Нижний предел в вариант "Сбор данных".

q Соедините выход data DAQ Assistant с элементом Температура функции Bundle By Name.

q Соедините терминал Верхний предел с элементом Т ВерхПредел функции Bundle By Name.

q Соедините терминал Нижний предел с элементом Т НижПредел функции Bundle By Name.

5. Выполните переход в состояние "Анализ".

q Поместите копию перечислимой константы Состояния метеостанции в вариант "Сбор данных".

q Выберите в константе элемент Анализ.

q Соедините константу со сдвиговым регистром выходного состояния.

6. Сохраните ВП.

Состояние анализа

В предыдущих упражнениях вы написали подВП Предупреждения, который выполняет требуемый анализ. Он уже добавлен в проект; теперь его нужно вставить в главный ВП.

Входы и выходы пользовательского интерфейса - student2.ru

Рис. 11-15. Состояние анализа.

1. Переключитесь на состояние "Анализ".

2. Поместите ВП Предупреждения в вариант "Анализ".

q Перейдите в окно Project Explorer.

q Перетащите ВП Предупреждения на блок-диаграмму, в вариант "Анализ".

3. Передайте температурные значения в ВП Предупреждения.

q Поместите в вариант "Анализ" функцию Unbundle By Name.

q Соедините с функцией кластер температур.

q Расширьте функцию так, чтобы были видны три элемента.

q При необходимости переназначьте терминалы, чтобы порядок элементов был таким: Температура, Т ВерхПредел, Т НижПредел.

q Соедините каждый выход функции с соответствующим входом ВП Предупреждения.

4. Выведите на экран строку предупреждения.

q Переместите терминал Предупреждение в вариант "Анализ".

q Соедините терминал Текст ВП Предупреждения с терминалом Предупреждение.

5. Обновите текст предупреждения в кластере температур.

q Поместите в вариант "Анализ" функцию Bundle By Name.

q Соедините кластер температур с кластерным входом функции.

q Выберите на входе функции элемент Предупреждение.

q Соедините терминал Текст ВП Предупреждения с входом функции.

q Соедините выход функции со сдвиговым регистром выходного кластера.

6. Если выдано предупреждение, сохраните данные; в противном случае проверьте, не наступило ли время следующего измерения.

q Поместите в вариант "Анализ" структуру Case.

q Соедините терминал Предупреждение? ВП Предупреждения с селектором варианта новой структуры.

q Переключитесь на вариант True.

q Поместите в этот вариант копию перечислимой константы Состояния метеостанции.

q Выберите в константе элемент Сохранение.

q Соедините константу со сдвиговым регистром выходного состояния.

q Переключитесь на вариант False.

q Поместите в этот вариант копию перечислимой константы Состояния метеостанции.

q Выберите в константе элемент Проверка времени.

q Соедините константу со сдвиговым регистром выходного состояния.

7. Сохраните ВП.

Состояние сохранения

В этом состоянии данные сохраняются в виде ASCII-файла, разделенного табуляцией. Файл необходимо открыть до начала работы конечного автомата. После завершения его работы файл должен быть закрыт.

Входы и выходы пользовательского интерфейса - student2.ru

Рис. 11-16. Состояние сохранения.

1. Переключитесь на состояние "Сохранение".

2. Поместите функцию Open/Create/Replace File слева от конечного автомата.

3. Задайте для функции режим открытия или создания файла.

q Щелкните правой кнопкой на терминале operation функции и выберите в контекстном меню Create>>Constant.

q Выберите в константе элемент open or create.

4. Передайте кластер ошибки и ссылку на файл в конечный автомат, чтобы они могли использоваться во всех состояниях.

q Соедините терминал error out функции Open/Create/Replace File с циклом While.

q Замените туннель на сдвиговый регистр.

q Соедините с циклом терминал refnum out.

q Замените туннель на сдвиговый регистр.

5. Подготовьте данные для записи, объединив их в одной строке.

q Поместите функцию Unbundle By Name в вариант "Сохранение".

q Соедините кластер температур с входом функции.

q Расширьте функцию так, чтобы были видны четыре элемента.

q Выберите элементы так, чтобы они шли в следующем порядке: Температура, Т ВерхПредел, Т НижПредел, Предупреждение.

q Поместите справа от функции Unbundle By Name функцию Format Into String.

q Расширьте функцию до восьми входов.

q Поместите в вариант "Сохранение" константу с символом табуляции.

q Поместите здесь же константу с символом конца строки (End of Line).

q Подайте на входы данные в следующем порядке: Температура, <Tab>, Т ВерхПредел, <Tab>, Т НижПредел, <Tab>, Предупреждение, <End of Line>.

6. Запишите сформированную строку в файл.

q Поместите функцию Write To Text File в вариант "Сохранение".

q Соедините выход функции Format Into String с входом text функции записи.

q Введите в функцию и выведите из нее кластер ошибки.

q Введите в функцию и выведите из нее ссылку на файл.

7. Закройте файл.

q Поместите функцию Close File справа от конечного автомата.

q Соедините с функцией кластер error и ссылку file refnum.

q Поместите справа от функции обработчик ошибок Simple Error Handler.

q Соедините терминал error out функции Close File с обработчиком ошибок.

8. Поместите копию перечислимой константы Состояния метеостанции в вариант "Сохранение".

9. Выберите в константе элемент Проверка времени.

10. Сохраните ВП.

Наши рекомендации