Скачиваний:
3
Добавлен:
18.02.2023
Размер:
497.97 Кб
Скачать

Методические указания для выполнения лабораторной работы №4

Задание 1

  1. Для выполнения данного задания откройте сначала ВП Level.vi из задания 1 лабораторной работы 3, перетащите на лицевую панель с палитры элементов Controls два тумблера Modern >> Boolean >> Vertical Toggle Switch и переименуйте их в Пуск и Стоп.

  2. На блок-диаграмме слева от первого кадра добавьте ещё два кадра. Теперь тот кадр, который раньше был первым, станет третьим.

  3. В данном третьем кадре отключите глобальную переменную Boolean от терминала остановки цикла и при помощи контекстного меню переведите её в режим записи (Change to Write), а к терминалу остановки цикла и к данной глобальной переменной подключите тумблер Стоп.

  4. Кнопку Пуск разместите в цикле While Loop второго кадра. Задержка выполнения итераций в данном цикле такая же, как в циклах второго и третьего кадров (100 млсек).

  5. Создайте локальную переменную тумблера Пуск и разместите её в первом кадре. Переведите её в режим записи данных (если после её создания она находилась в режиме считывания) и подключите к ней логическую константу со значением True. Для этого на панели инструментов нужно выбрать инструмент , подвести его ко входу данной локальной переменной и щёлкнуть правой клавишей мыши. В появившемся контекстном меню щёлкнуть левой клавишей мыши по строке Create >> Constant. Если подключится константа со значением False , то, щёлкнув по ней инструментом , она изменит своё значение на True .

  6. Вторую копию локальной переменной тумблера Пуск разместите в цикле третьего кадра и подключите её к тумблеру Стоп параллельно глобальной переменной Boolean и терминалу остановки цикла.

  7. Извлеките из контекстного меню тумблера Пуск свойство Create >> Property Node >> Disabled. Разместите его в первом кадре и если данное свойство находится в режиме считывания данных (вывод расположен справа), переведите его в режим записи данных и способом, описанным в пункте 5, подключите к нему константу в виде раскрывающегося списка. В данном списке инструментом выберите пункт Enabled (рис.1).

Рис. 1

  1. На рисунке 2 приведён фрагмент блок-диаграммы второго кадра. В цикле While Loop данного кадра к терминалу тумблера Пуск подключите его свойство Create >> Property Node >> Visible и логический элемент отрицания Programming >> Boolean >> Not.

  2. К выходу логического элемента Not подключите терминал остановки цикла и свойство Create >> Property Node >> Visible тумблера Стоп.

  3. Константу со значением 0 за циклом второго кадра соедините через весь цикл и границу между вторым и третьим кадром с левым терминалом сдвигового регистра цикла третьего кадра.

  4. К этой линии связи внутри цикла второго кадра подключите копию глобальной переменной Level из третьего кадра (в режиме записи данных) и терминал лицевой панели Waveform Chart.

  5. Поскольку терминал лицевой панели Waveform Chart теперь будет находиться в цикле второго кадра, в третьем кадре вместо него подключите его локальную переменную.

  6. Кроме того, параллельно терминалу остановки цикла третьего кадра подключите свойства тумблеров Пуск и Стоп Create >> Property Node >> Visible (в режиме записи данных), которые можно извлечь из их контекстного меню. Только между терминалом тумблера Стоп и свойством Visible данного тумблера подключите логический элемент отрицания Programming >> Boolean >> Not. В результате фрагмент блок-диаграммы третьего кадра будет иметь вид, представленный на рисунке 3

Рис. 2

Рассмотрим фрагмент блок-диаграммы цикла третьего кадра внутри овала на рисунке 3. Данный фрагмент используется и в лабораторной работе №2, и в лабораторной работе №3, а также он применён и в данной лабораторной работе. Этот фрагмент можно заменить одним элементом, который создаётся пользователем и который называется виртуальным подприбором (ВПП).

Рис. 3

Для создания ВПП рекомендуется фрагмент блок-диаграммы разместить в заново создаваемом ВП. Рассмотрим последовательность создания нашего ВПП.

  1. Откроем пустой ВП и вставим на его блок-диаграмму скопированный фрагмент блок-диаграммы задания 1 лабораторной работы №3, заключённый в овал.

  2. Отобразив метки элементов, получим блок-диаграмму, представленную на рисунке 4.

Рис. 4

  1. Подключим к элементу Round To Nearest числовой индикатор. Для этого на панели инструментов нужно выбрать инструмент , подвести его к выходу данного элемента и, как только он замигает щёлкнуть правой клавишей мыши. В появившемся контекстном меню щёлкнуть левой клавишей мыши по строке Create >> Indicator. К выходу будет подключен терминал индикатора с названием «nearest integer value», который при помощи инструмента переименуем, например, в «Случайное число».

  2. Выбрав инструмент , щелчком правой клавиши мыши по константе с числом 10 будет вызвано контекстное меню, в котором нужно выполнить команду Change to Control (преобразовать в элемент управления). Константа будет преобразована в терминал элемента управления с названием «y», который при помощи инструмента переименуем, например, в «Множитель». Лицевая панель будет иметь вид, представленный на рисунке 5.

Рис. 5

  1. Щелчком правой клавишей мыши (инструментом ) по значку нужно вызвать контекстное меню и через строку Patterns перейти в окно на рисунке 6.

Рис. 6

  1. В нашем ВП имеется один вход «Множитель» и один выход «Случайное число». Так как значок соответствует нашему расположению входа и выхода, его нужно выбрать щелчком левой клавиши мыши.

  2. Далее, сначала щёлкнуть по левому прямоугольнику (входному терминалу), а затем по элементу управления «Множитель». Входной терминал окрасится в цвет, соответствующий типу элемента управления «Множитель».

  3. Такую же процедуру нужно повторить для индикатора «Случайное число», назначив ему правый прямоугольник (выходной терминал).

  4. В контекстном меню значка , щелчком по строке Edit Icon…, можно вызвать простой графический редактор и изменить рисунок иконки, заданный по умолчанию (подробное описание работы с графическим редактором приведено в теме 4).

  5. Сохраните созданный ВПП под названием Inpsig.vi в папке, предназначенной для сохранения виртуальных подприборов, и закройте его.

  6. Теперь заключённый в овале фрагмент блок-диаграммы, представленный на рисунке 2, можно удалить.

  7. В палитре элементов Functions щелчком по строке Select a VI…вызвать окно файловой системы.

  8. Найдите файл Inpsig.vi, выделите его и после щелчка по кнопке OK перетащите на блок-диаграмму, в которой был удалён вышеуказанный фрагмент.

  9. Выход ВПП подключите к элементу сложения , а ко входу подключите константу со значением 10. Фрагмент блок-диаграммы примет вид, представленный на рисунке 7.

Рис. 7

  1. Количество копий экземпляров созданного ВПП ограничивается памятью компьютера.

  2. Скопируйте соединённые между собой элементы из первого кадра, заключённые в овале на рисунке 1, и вставьте их в цикл четвёртого кадра. Только в раскрывающемся списке выберите пункт Disabled.

  3. После проверки работоспособности ВП выделите на лицевой панели оба тумблера и совместите их в одну при помощи кнопок 3 и 4 (рисунок 8).

Рис. 8

  1. Перейдите на блок-диаграмму и в контекстном меню терминала тумблера Стоп выполните команду Hide Control (скрыть элемент управления).

  2. Всё что было описано выше нужно применить и к ВП Temp.vi.

Задание 2

  1. Откройте пустой ВП (Blank VI).

  2. Перейдите на лицевую панель и перетащите на неё с палитры элементов Controls элемент Modern >> Containers >> Tab Control.

  3. Щёлкните по нему, чтобы на рамке элемента появились маркеры. Ухватившись за один из них, измените размеры элемента, сделав его как можно больше. Позже размеры можно подкорректировать.

  4. По умолчанию элемент Tab Control будет иметь две вкладки. Чтобы добавить третью вкладку, щёлкните сначала инструментом по вкладке Page 2 (она станет активной). Вызовите на этой вкладке контекстное меню и выполните команду Add Page After. После вкладки Page 2 будет добавлена вкладка Page 3.

  5. Если на одной из вкладок вызвать контекстное меню и щёлкнуть по команде Rearrange Pages…, то появится одноимённое окно, в котором эти вкладки можно поменять местами.

  6. Названия вкладок можно поменять при помощи инструмента .

  7. В соответствии с заданием расположите на каждой из вкладок, делая её активной, элементы, представленные на рисунке 9. Кнопку stop расположите вне элемента Tab Control, как показано на данном рисунке.

Рис. 9

  1. В качестве элементов Уровень и Температура воспользуйтесь индикаторами Modern >> Numeric >> Numeric Indicator. Затем их переименуйте.

  2. Для вкладки Таблица воспользуйтесь элементом Modern >> List, Table & Tree >> Table Control.

  3. Чтобы отобразить названия столбцов таблицы, нужно в контекстном меню данного элемента выполнить команду Visible Items >> Column Headers и инструментом ввести названия столбцов в соответствии с рисунком 9.

  4. В соответствии с рисунком 9 задайте максимальное значение по оси ординат и отключите автомасштабирование по данной оси (см. пункт 10 задания 1 мет. указаний к лабораторной работе №2). А также измените шкалу Термометра и Ёмкости.

  5. На этом формирование лицевой панели закончено.

  6. Перейдите на блок-диаграмму и разверните её на весь экран.

  7. Расположите терминал элемента Table Control где-нибудь вне цикла.

  8. Перетащите на блок-диаграмму функциональный элемент While Loop и разверните его как можно больше по вертикали и по горизонтали.

  9. Подключите терминал кнопки stop к терминалу остановки цикла.

  10. Задайте задержку выполнения итераций цикла 100 млсек.

  11. На рамке цикла создайте четыре сдвиговых регистра и инициализируйте их пустым строковым массивом при помощи функционального элемента Programming >> Array >> Initialize Array, как показано на рисунке 10.

Рис. 10

  1. Чтобы индикатор Термометр отображал изменение значение температуры, создаваемое в ВП Temp.vi, разместите в цикле ранее созданную глобальную переменную с элементом Temp в режиме считывания данных и подключите к ней терминал индикатора Термометр и терминал индикатора Температура.

  2. В этом же цикле создайте копию глобальной переменой с элементом Temp, а затем переключитесь в ней на элемент Level и подключите терминал индикатора Ёмкость и терминал индикатора Уровень.

  3. Для отображения обеих кривых изменения значения температуры и величины уровня жидкости в Ёмкости подключите эти элементы глобальной переменной к терминалу графика Waveform Chart (в режиме записи данных) через функциональный элемент Programming >> Cluster, Class & Variant >> Bundle, как показано на рисунке 11.

Рис. 11

  1. Для фиксирования в элементе Table Control даты, времени и температуры для значения уровня превышающего числовое значение равное 75, в цикл нужно добавить функциональный элемент Case Structure, а внутри рамки True данной структуры расположить следующие элементы:

    1. Функциональный элемент Programming >> Timing >> Get Date/Time String (поз. 1 – 1 шт.).

    2. Функциональный элемент Programming >> String >> String/Number Convtrsion >> Number To Fractional String (поз. 2 – 2 шт.).

    3. Функциональный элемент Programming >> Array >> Build Array (поз. 3 – 4 шт.).

    4. Функциональный элемент Programming >> Array >> Build Array (поз. 4 – 1 шт.).

    5. Функциональный элемент Programming >> Array >> Transpose 2D Array (поз. 5 – 1 шт.).

  2. По умолчанию элемент Build Array имеет два входа, но их количество можно увеличить, если потянуть инструментом мыши за нижнюю границу элемента.

  3. Элемент Transpose 2D Array необходим для того, чтобы данные в таблице отображались не построчно, а в столбцах.

  4. Все вышеописанные элементы внутри структуры цикла While Loop, включая элементы, расположенные в элементе Case Structure, подключить так, как показано на рисунке 12.

Рис. 12

  1. Рамка False элемента Case Structure должна выглядеть так, как показано на рисунке 13.

Рис. 13

  1. Внутри рамки True внутри элемента Case Structure логическая константа со значением истина (true) подключена к нижнему входу элемента Get Date/Time String для отображения секунд.

  2. Числовые константы подключены для отображения значений температуры и уровня жидкости с одним десятичным знаком после запятой.

  3. Данные, которые заносятся в элемент Table Control, дополнительно можно записать и в файл табличного формата (.csv).

  4. Для этого в верхней части рамки True элемента Case Structure необходимо добавить элементы, перечисленные ниже.

    1. Функциональный элемент Programming >> Array >> Build Array (поз. 6 – 1 шт.).

    2. Функциональный элемент Programming >> String >> String/Array/Path Conversion >> String To Path (поз. 7 – 1 шт.)

  5. Затем подключить их так, как показано на рисунке 14.

Рис. 14

  1. На вход элемента String To Path (поз. 7) подключите константу с указанием пути к заранее созданному файлу.

  2. Константа подключена к нижнему вводу элемента Write To Spreadsheet File.vi, чтобы данные добавлялись в файл.

  3. Константа (точка с запятой) подключена в качестве разделителя содержимого ячеек между столбцами.

Задание 3

Для реализации событий используется функциональный элемент Programming >> Structure >> Event Structure. В данном задании индикатор Уровень или Температура на лицевой панели должны исчезать при наведении на один из них курсора мыши и появляться тогда, когда курсор оказывается за границами скрытого индикатора.

Для этого нужно выполнить следующие действия.

  1. Расположить на блок-диаграмме ещё один цикл While Loop вне основного цикла, созданного в задании 2

  2. Внутри данного цикла расположить элемент Event Structure. По умолчанию будет только одна рамка с названием Timeout и она будет выглядеть так, как показано на рисунке 14.

Рис. 14

  1. Для создания события для индикатора Термометр в контекстном меню, вызываемым щелчком правой клавиши мыши, нужно выполнить команду Add Event Case…

  2. В появившемся окне Edit Events, в секции Event Sources щелчком по значку «+» раскройте строку Controls и выберите индикатор Термометр.

  3. В секции Events появятся все события, которые можно сконфигурировать для данного индикатора. Щелчком по значку «+» раскройте строку Mouse и выберите событие Enter. Затем щёлкните по кнопке OK.

  4. Поверх рамки Timeout появится рамка с названием «Термометр: Mouse Enter».

  5. Таким же образом добавьте рамку с названием «Термометр: Mouse Leave».

  6. Внутрь рамки Timeout вставьте локальную переменную кнопки stop в режиме считывания данных и соедините её через рамку элемента Event Structure с терминалом остановки цикла.

  7. Внутрь рамки «Термометр: Mouse Enter» вставьте свойство Visible в режиме записи данных индикатора Термометр и подключите к нему логическую константу .

  8. Сделайте копию данного свойства Visible, вставьте его в рамку «Термометр: Mouse Leave» и подключите к нему логическую константу .

  9. К терминалу , расположенному в левом верхнем углу подключите числовую константу со значением 10.

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

Рис. 15

  1. К этим событиям можно добавить аналогичные события и для индикатора Уровень. Сделайте это самостоятельно. В результате должно получиться пять рамок.

Соседние файлы в папке Методические указания к практическим заданиям