Системы реального времени. Методические указания к лабораторным работам для студентов III курса дневного и IV курса заочного отделений АВТФ (направлен
.pdfиз Functions>>Numeric. Функция возвращает сумму четырех случайных чисел из итераций. Чтобы добавить большее количество вводов, встаньте на вводе и выберите Add Input из всплывающего меню. Функция деления из Functions>>Numeric возвращает среднее из последних четырех случайных чисел. В течение каждой итерации цикла с условием продолжения функция случайного числа (0-1) генерирует одно произвольное значение. VI добавляет это значение к последним трем, сохраняемым в левых вводах сдвигового регистра. Затем результат делится на четыре, чтобы найти среднее из четырех значений. Затем среднее отображается на диаграмме. Задержка следующей итерации из Functions>>Time & Dialog гарантирует, что каждая итерация цикла происходит не быстрее, чем установленная величина в миллисекундах.
6.Встаньте на вводе данной функции и выберите правой кнопкой
Create Constant.
7.Напечатайте 500.
8.Выполните VI.
9.Проанализируйте первые четыре итерации в отладочном режиме, чтобы понять работу сдвигового регистра и сумматора.
10. Сохраните VI как Shift Register.vi в своем каталоге.
Упражнение 11. Создание диаграммы с несколькими графиками Цель – создать диаграмму несколькими графиками.
Передняя панель
1.Откройте Shift Register.vi, созданный в упражнении 10 с использованием сдвигового регистра.
2.Измените переднюю панель, как показано на рис. 22. Используя средства панели Позиционирование (+), растяните легенду, чтобы включить два графика. Сделайте видимым цифровой дисплей, выбрав Show>>Digital Display. Переместите легенду в случае необходимости. Переименуйте график 0 в Current Value. Переименуйте график 1 в Means. Для графика 0 измените вывод на точечный, отметки на квадраты и цвет на зеленый.
21
Рис. 22
Диаграмма
3.Измените панель Диаграмма, как показано на рис. 23, для отображения среднего и текущего случайного чисел на той же самой диа-
грамме. Функция Bundle из Functions>>Cluster Bundle связывает сред-
нее и текущее значения для вывода графика на диаграмме. Связывающий узел появляется в левом углу при перемещении данной функции в блок-схему.
4.Из передней панели выполните VI. VI отображает два графика на диаграмме. Графики совмещены, т. е. они совместно используют тот же самый вертикальный масштаб.
Рис. 23
22
5.Из панели Диаграмма выполните VI в отладочном режиме с отображением потоков данных, чтобы видеть данные в сдвиговых регистрах.
6.Выключите отображение потоков данных. Из лицевой панели выполните VI. Когда VI выполняется, используйте кнопки из палитры
, чтобы изменить диаграмму. Можно очищать диаграмму, масштабировать ось X или Y и изменять формат дисплея.
7.Форматируйте масштабы диаграммы, чтобы представить абсолютное или относительное время. Чтобы выбрать формат времени масштаба X, встаньте на масштабе и выберите Formatting....
8.Выполните VI.
9.Сохраните VI как Multiple Plot.vi.
Упражнение 12. Использование цикла For Loop
Цель – использование цикла For Loop и сдвиговых регистров для вычисления максимального значения в ряду случайных чисел.
Передняя панель
1. Откройте новую переднюю панель и добавьте объекты, показанные на рис. 24. Поместите цифровой индикатор на переднюю панель и маркируйте его как Next Value. Поместите Waveform Chart на лицевую панель и маркируйте его как Random Data. Измените масштаб
Рис. 24
23
диаграммы от 0.9 до 1.0 или Auto Scale. Встаньте на диаграмме и вы-
берите Show>>Scrollbar и Show>>Digital Display. Скройте палитру и легенду. Измените размеры Scrollbar средством позиционирования.
Диаграмма
2.Откройте блок-схему и измените ее, как показано на рис. 25.
3.Поместите цикл For Loop из Functions>>Structures на блок-схеме.
4.Добавьте сдвиговый регистр.
5.Добавьте следующие объекты на блок-схему:
случайное число (Functions>>Numeric). Функция генерирует произвольные данные;
числовая константа (Functions>>Numeric). Число итераций цикла
100 раз;
числовая константа 0,0 (Functions>>Numeric). Устанавливает начальное значение сдвигового регистра, чтобы обнулить его для этого упражнения. Значения генератора случайных чисел – от 0.0 до 1.0.
функция Max and Min (Functions>>Comparison). Берет два числа и выводит максимальное значение в верхнем правом углу и минимальное в правом нижнем.
6.Выполните соединения.
7.Выполните VI. Проанализируйте результаты вычислений.
8.Сохраните VI как Calculate Max.vi в вашем каталоге.
Рис. 25
24
Упражнение 13. Использование структуры Case
Цель – сформировать VI, который вычисляет квадратный корень с проверкой на отрицательность, возводит в квадрат и куб. Если число положительно, VI вычисляет квадратный корень, иначе возвращает ошибку.
Передняя панель
1. Откройте новую лицевую панель и создайте объекты, как показано на рис. 26.
Рис. 26
Диаграмма
2.Сформируйте диаграмму так, как показано на рис. 27.
3.Поместите структуру Case в Диаграмму, выбрав ее из Functions>>Structures. Сформируйте последовательность структур, как показано на рис. 27, с управлением от Menu Ring из Controls>>Text Controls. Установите указатель на Menu Ring и правой кнопкой мыши выберите Edit Items. Затем в каждое состояние структуры Case впишите соответствующее название: выбор – 0, возведение в квадрат – 1, возведение в куб – 2, извлечение квадратного корня – 3.
4.Внутри последнего добавьте еще одну структуру Case для проверки числа на отрицательность:
функция «<0» из Functions>>Comparison. Возвращает TRUE, если число меньше 0;
функция квадратного корня Square Root из Functions”Numeric).
Возвращает квадратный корень входного числа;
числовая константа 99999,000. Указывает числовое значение ошибки;
строковая константа из Functions>>String "Error...Negative Number". Вводит текст внутри поля средствами маркирования «A».
25
Рис. 27
5.Вернитесь на лицевую панель и выполните VI, пробуя различные значения чисел.
6.Сохраните VI как Case Structure.vi.
Упражнение 14. Использование свойств атрибутов прибора
Необходимо создать VI, который устанавливает условие – ограничение, используя свойства атрибута. Используя Цветной атрибут индикатора Tank, можно указать, сместился ли случайно сгенерированный уровень резервуара выше определѐнного пользователем ограничения.
Передняя панель
1. Откройте новую лицевую панель и создайте ее, как показано на рис. 28.
26
Рис. 28
2.Повторно масштабируйте резервуар от 0.0 до 100.0.
3.Установите заданную по умолчанию установку ограничения на
57.00.
Диаграмма
4. Создайте панель Диаграмма, как показано на рис. 29. Введите следующие функции и константы:
Random Number Generator из Functions>>Numeric. Генериру-
ет данные между 0 и 1, чтобы заполнить резервуар на лицевой панели. Умножая это значение на 100, можно создать значение между 0 и 100;
Greater or Equal? из Functions>>Comparison. Сравнивает данные с ограничением, установленным на входе;
Рис. 29
27
Fill Color. Выберите свойство прибора из Create>>Property Node для терминала резервуара Tank;
Color Box Constant из Functions>>Numeric>>Additional Numeric Constants. Выберите бокс и заполните его красным цветом, чтобы происходило заполнение в случае TRUE и синим в случае FALSE;
Wait Until Next из Functions>>Time & Dialog. Введите числовую константу 1000, чтобы выполнять цикл каждую секунду.
5.Выполните VI.
6.Сохраните VI как Tank Limit.vi.
1.3. РАБОТА С МАССИВАМИ И ФАЙЛАМИ
Упражнение 15. Создание массива с автоиндексацией
Цель – создать массив, использующий возможность автоиндексации цикла For Loop и отобразить его на диаграмме.
Передняя панель
1.Откройте новую лицевую панель.
2.Поместите оболочку массива из Controls>>Array & Cluster на переднюю панель. Маркируйте оболочку массива как Waveform Array (рис. 30).
Рис. 30
28
3. |
Поместите |
цифровой индикатор из |
|
Controls>>Numeric |
внутрь дисплея оболочки |
|
|
массива, как показано на рис. 31. Этот индикатор |
|
||
отображает содержание массива. |
|
||
4. |
Поместите график Waveform Graph из |
|
|
Controls>>Graph на лицевую панель. |
|
||
5. |
Увеличьте график средствами позициони- |
Рис. 31 |
|
рования. |
|
|
|
6.Скройте легенду и палитру.
7.Отключите автомасштабирование для оси Y.
8.Масштабируйте ось Y в пределах от –0.4 до 1.2.
Диаграмма
9. Сформируйте панель Диаграмма, показанную на рис. 32. Используйте следующие функции:
Generate Waveform VI из Functions>>Select a VI… from the LabVIEW\Activity directory. Возвращает одну точку диаграммы;
Bundle function из Functions>>Cluster. Транслирует графические компоненты в кластер. Необходимо изменить размеры иконки функции Bundle на 3 входа для правильного функционирования. Поместите средство позиционирования в левый нижний угол иконки. Средство трансформируется в курсор изменения размеров. Перенесите его вниз, пока не появится третий входной терминал. Теперь можно продолжать монтаж блок-схемы, как показано на предыдущем рисунке;
Numeric Constant из Functions>>Numeric – три числовые констан-
ты. Устанавливает число итераций цикла, начального значения X и значения Delta X – приращение по X.
Рис. 32
29
10.На лицевой панели выполните VI. Начальное значение X = 0 и значение дельты X = 1.
11.Измените значение дельты X на 0.5 и начальное значение X на
20.Выполните VI снова.
12.Чтобы просматривать любой элемент массива на диаграмме, введите его индекс в индексном дисплее. Если ввести номер, больший, чем размер массива, дисплей потускнеет, указывая на отсутствие определенного элемента для индекса.
13.Возвратитесь в панель Диаграмма. Удалите функцию Bundle и числовые константы, связанные с ней.
14.Продолжайте формировать панель Диаграмма, как показано на рис. 33:
Sine function из Functions>>Numeric>>Trigonometric. Используйте функцию, чтобы сформировать массив точек, представляющих один цикл синусоидальной волны;
Build Array function (Functions”Array). Используйте эту функцию,
чтобы создать соответствующую структуру данных к графику двух массивов на диаграмме;
π constant из Functions>>Numeric>>Additional Numeric Constants; функции Multiply и Divide можно найти в Functions>>Numeric.
15.Переключитесь в лицевую панель. Выполните VI.
16.Сохраните VI как Graph Waveform Arrays.vi.
Рис. 33
Упражнение 16. Использование автоиндексации входных массивов
Цель – проверить VI, который использует автоиндексацию массива в цикле For Loop.
30
