Главная страница
Навигация по странице:

  • Abort

  • Step Into

  • Step Over

  • Execution Highlighting

  • 2. Демонстрационные примеры

  • 2.2. Демонстрационный пример 2 - отладка программы с ошибками

  • Pause

  • Step Into, Step Over, Step Out

  • 4. Порядок выполнения работы

  • Задание 4.1. Виртуальный смеситель сигналов - показ результата на экране виртуального осциллографа

  • Задание 4 .2. Демонстрация на экране виртуального осциллографа фигур Лиссажу

  • 4.2.1. Фигуры Лиссажу для сигналов одной частоты

  • 4.2.2. Фигуры Лиссажу – изменение фазы сигналов во время работы программы

  • 4.2.3. Фигуры Лиссажу для сигналов разной частоты

  • 4.2.4. Фигуры Лиссажу для сигналов разной частоты – задержка в выполнении цикла

  • методичка по созданию приборов. 1_создание_виртуальных_приборов. Программирование устройства сбора


    Скачать 3.99 Mb.
    НазваниеПрограммирование устройства сбора
    Анкорметодичка по созданию приборов
    Дата16.03.2023
    Размер3.99 Mb.
    Формат файлаpdf
    Имя файла1_создание_виртуальных_приборов.pdf
    ТипУчебное пособие
    #994360
    страница5 из 9
    1   2   3   4   5   6   7   8   9
    1.1.5. Отладка ошибок
    При работе над проектами, особенно если они сложные, неизбежны ошибки. Проверка ошибок позволяет узнать, в каком месте и по какой причине произошел сбой в работе виртуального прибора.
    Ошибки могут быть как достаточно сложными, требующими для их исправления специальных средств LabView, так и совсем простыми.
    Наиболее распространенные ошибки бывают двух типов, которые мы назовем условно синтаксическими и логическими.

    52
    При наличии синтаксической ошибки кнопка запуска приобретает вид сломанной стрелки, и виртуальный прибор не запускается. Ошибка показывается во вкладке Error List(Список ошибок) и высвечивается на блок-схеме. К числу синтаксических ошибок относятся, например, такие:
    - на блок-схеме у компонента не подключен вход, требующий обязательного ввода данных (например, у какого-либо арифметического или логического компонента – Add, Subtract, And, Or и т.п.);
    - соединены выходы двух или более элементов управления;
    - на блок-схеме есть неисправные провода (не подсоединенные, либо оборванные, либо с несоответствующим типом данных);
    - подача на входы компонента, требующего синхронных сигналов
    (например, компонента XY Graph), двух сигналов с разной частотой дискретизации.
    Логическая ошибка – когда разработчик написал программу, которая делает не то, или не совсем то, или не всегда то, что ожидалось.
    При наличии логической ошибки виртуальный прибор запускается, но работает некорректно. Для исправления этого типа ошибок используется пошаговый режим отладки программы. Логическая ошибка возникает, например, если программа должна вычислить число точек измерения, а показывается значение 10,5. Не может быть “половины точки измерения”!
    Если данное значение использовать в дальнейшей работе программы для проведения измерений, могут получиться результаты, которые будут казаться правдоподобными, но неверными из-за допущенной логической ошибки.
    Прежде чем обсуждать способы исправления ошибок, рассмотрим назначение некоторых кнопок инструментальной линейки (рис.2.5).
    Рис.2.5. Вид инструментальная линейки блок‐схемы.

    53
    - кнопка Run (Запуск).
    - кнопка Continuous Run (Непрерывный запуск). При нажатии на эту кнопку программа выполняется непрерывно до нажатия на кнопку
    Abort, которая находится на лицевой панели.
    - кнопка Abort (Прервать).При нажатии на эту кнопку программа будет остановлена, но данные могут быть потеряны!
    - кнопка Pause (Пауза).Временно останавливает работу программы, после чего можно использовать одношаговые операции отладки программы, используя описанные ниже кнопки пошагового выполнения. Для того чтобы вновь запустить программу, нужно еще раз нажать эту кнопку.
    - кнопка Step Into (Шаг внутрь), войти внутрь узла (используется только в режиме отладки).
    - кнопка Step Over (Шаг через), шаг вперед.
    - кнопка Step Out (Шаг наружу), выйти изнутри узла.
    - кнопка Execution Highlighting (Подсветка выполнения).Подсвечивает поток данных, проходящих через блок-схему, что позволяет увидеть промежуточные величины данных, появляющихся по мере выполнения программы и визуально проследить за данными во время их перехода из одного узла в другой.
    При попытке запустить неисправную или незаконченную программу кнопка запуска принимает вид сломанной стрелки. Чтобы найти и исправить ошибки, нужно щелкнуть по сломанной стрелке мышкой, появится окно
    Error List (Список ошибок), в котором содержится описание ошибок
    (рис.2.6).
    Чтобы получить более подробное описание конкретной ошибки, нужно щелкнуть по соответствующему пункту списка мышкой (рис.2.6).

    54
    Рис.2.6. Вид окна со списком ошибок
    Для определения местонахождения ошибки на блок-схеме нужно сделать двойной щелчок по ошибке в списке, либо зайти в разделProperties. LabView выведет соответствующее окно на экран и выделит подсветкой объект, вызвавший данную ошибку. После исправления ошибки нужно снова запустить программу.
    Во время отладки для того, чтобы быстрее дойти до нужного места на блок-схеме, полезно выполнять программу пошагово, реализуя работу узла за узлом. Чтобы начать пошаговое выполнение, следует запустить виртуальный прибор щелчком мыши по одной из кнопок пошагового выполнения (вместо кнопки Run), затем можно временно остановить виртуальный прибор, например, щелкнув мышью по кнопке Pause.
    Каждая кнопка определяет способ выполнения следующего шага. При нажатии на кнопку Step Into выполняется заход внутрь узла (структуры или подпрограммы – виртуального подприбора, SubVI) и осуществляется первый шаг работы алгоритма выбранного узла.
    При нажатии на кнопку Step Over, “шаг вперед”,происходит выполнение всего алгоритма узла, и на выходе узла появляются результаты.

    55
    При нажатии кнопки Step Out (Шаг наружу)происходит выполнение работы узла, появление на выходах узла результатов, выход из алгоритма узла и остановка перед началом выполнения алгоритма следующего узла.
    В LabView можно наблюдать за прохождением данных в процессе выполнения или отладки программы, используя кнопку Execution
    Highlighting (Подсветка выполнения)– режим “Лампочка” на блок-схеме.
    Движение данных из одного узла в другой отмечается перемещающимися вдоль проводников кружочками. Во время работы в режиме подсветки на выходных терминалах автоматически отображаются исходящие данные.Это удобный и красивый способ анимации потоков данных, но программа в этом режиме выполняется гораздо медленнее. Выключается режим визуализации данных повторным нажатием на ту же кнопку.
    2. Демонстрационные примеры
    2.1. Демонстрационный пример 1 – создание виртуального
    преобразователя сигналов с использованием элемента Formula
    Воспользуйтесь компонентом
    Formula для преобразования сигнала по заданной формуле. Создайте виртуальный прибор, содержащий виртуальные генератор и осциллограф. Предусмотрите возможность изменения амплитуды и частоты сигнала с генератора.
    Замечание: воспользуйтесь компонентом Waveform Chart.
    В данном задании необходимо выводить на экран осциллографа зависимость от времени величины, вычисляемой по формуле
    (2.5*X1*X1+3*X2*X1)*X3+0.054, где значение X1 – сигнал с генератора, а
    X2 и X3 – числовые параметры, задаваемые пользователем программы.
    Добавьте компоненты Numeric для установки значений X2 и X3.
    Вызовите компонентFormula из раздела Express/Arithmetic&Comparison
    (рис.2.7).

    56
    Рис.2.7. Вид раздела Express/Arithmetic&Comparison с компонентом
    Formula.
    Щелкните дважды левой кнопкой мыши по значку Formula на компоненте, появится окно ввода, в которое нужно вписать необходимую формулу
    Result= (2.5*X1*X1+3*X2*X1)*X3+0.054.
    Рис.2.8. Вид лицевой панели виртуального преобразователя сигналов.
    Вид лицевой панели получившегося виртуального прибора показан на рис.2.8, вид блок-схемы программы – на рис.2.9.

    57
    Переменные Х1, Х2 и Х3 соответствуют сигналам на входах, переменной
    Result соответствует выход Result узла Formula, который соединяется с индикатором Waveform Chart.
    Рис.2.9. Использование компонента Formula для сложной математической обработки сигналов от нескольких источников.
    Запустите программу, проследите за тем, как меняется выходной сигнал при изменении параметров входных сигналов.
    2.2. Демонстрационный пример 2 - отладка программы с ошибками
    Продемонстрируем отладку программы с ошибками.
    Создайте виртуальный прибор, который осуществляет следующий алгоритм:

    58
    случайное число, генерируемое компонентом Functions/Programming/
    Numeric/Random Number (0-1), умножить на константу, прибавить к результату другую константу и вывести результат на Waveform Chart.
    Компонент Random Number (0-1)изображается в виде двух игровых кубиков с точками на гранях, символизирующих выпадение случайных чисел. Он реализует алгоритм генерации случайного числа в диапазоне от 0 до 1 (включая 0 и не включая 1), т.е. генерирует вещественные числа, содержащие дробную часть. У компонента отсутствуют какие-либо входные параметры, есть только выходной – сгенерированное случайное число.
    Сделайте вывод на индикаторы следующих данных: 1) случайного числа,
    2) результата умножения этого числа на константу, 3) результата сложения этого результата со второй константой.
    На блок-схеме сделайте ошибки: например, не подсоедините константу к элементу сложения, а также добавьте на схему неиспользуемый логический элемент And.
    Убедитесь в том, что стрелка кнопки Run приобрела сломанный вид.
    Проделайте следующие действия:
    1.Щелкните по сломанной стрелке, найдите ошибку в списке. Выделите место ошибки, нажав на кнопку Show Error внизу списка, подсоедините константу, запустите программу, убедитесь, что после этого вместо двух ошибок показывается одна. Устраните и эту ошибку и убедитесь, что виртуальный прибор работает.
    2.Отсоедините индикатор результата сложения. Запустите программу, убедитесь в том, что она работает, стрелка Run имеет нормальный вид, но результат сложения не выводится на индикатор – программа работает некорректно.
    3.Расположите лицевую панель и блок-схему виртуального прибора так, чтобы они не перекрывали друг друга. Запустите программу и пронаблюдайте изменение значений на индикаторах. Включите подсветку выполнения
    (кнопка
    Execution
    Highlighting) и пронаблюдайте

    59
    последовательность прохождения данных от узла к узлу, а также изменение значений на индикаторах.
    4. Проверьте работу узлов программы в пошаговом режиме: запустите программу и приостановите выполнение нажатием кнопки Pause. После чего продолжите выполнение программы, нажимая соответствующие кнопки
    Step Into, Step Over, Step Out на линейке инструментов блок-схемы.
    Нажимая несколько раз кнопку Step Over, проследите, как последовательно выполняются алгоритмы узлов программы. Обратите внимание на анимацию продвижения данных от одного узла к другому (при включенном режиме подстветки), и на появление данных на лицевой панели по мере пошагового выполнения программы. При поступлении новых данных на терминалы блок- схемы, соответствующие индикаторам, обновляется содержимое индикаторов на лицевой панели.
    Также полезно обратить внимание на то, что подсказки-названия кнопок
    Step Into, Step Over, Step Out на линейке инструментов блок-схемы во время выполнения меняются. Если очередной узел представляет один оператор, т.е. не является структурой или подпрограммой, подсказка для кнопки Step Into будет “Step Over” и далее название следующего узла, как и для кнопки Step Over. Этому не следует удивляться и считать, что что-то работает неправильно.
    3. Компьютерный тест №2
    В тесте проверяется усвоение учащимся теоретической части описания лабораторной работы. Для выполнения теста следует зайти на сайт http://distolymp2.spbu.ru/www/olymp/
    под своим логином и перейти по ссылке
    “Компьютерный тест “№2”.
    После прохождения теста в разделе «Результаты» правильные ответы помечаются зеленым цветом, неправильные – красным. Результаты прохождения теста служат допуском к выполнению лабораторной работы.

    60
    4. Порядок выполнения работы
    Перед выполнением заданий воспроизведите действия, описанные в разделах 2.1 и 2.2 «Демонстрационные примеры».
    При выполнении работы заносите в рабочий журнал и в файл, который прикладывается к отчету, ответы на вопросы во всех заданиях, объяснение результатов, необходимые вычисления и комментарии.
    Задание 4.1. Виртуальный смеситель сигналов - показ результата на
    экране виртуального осциллографа
    Создайте три генератора с различными параметрами выходных сигналов.
    Обеспечьте вычисление произведение первого и второго сигнала и разность второго и третьего. Полученные сигналы подайте с полученных выходов на входы двух виртуальных осциллографов. Оформите лицевую панель виртуального прибора
    , присвойте имя каждому индикатору.
    Сохраните проект в файле с именем “Лабораторная №2 Задание 4_1.vi”.
    Замечание: компонент, находящийся на блок‐схеме, можно скопировать.
    Выделите виртуальный генератор, и для занесения в буфер обмена либо нажмите комбинацию клавиш Ctrl+C, либо воспользуйтесь пунктом меню
    Edit/Copy. Вставить компонент из буфера обмена можно комбинацией клавиш Ctrl+V, либо пунктом меню Edit/Paste.
    Задание 4 .2. Демонстрация на экране виртуального осциллографа
    фигур Лиссажу
    Фигура Лиссажу – замкнутая траектория точки, совершающей гармонические колебания в двух взаимно перпендикулярных направлениях.
    Если периоды относятся как целые числа, то через промежуток времени, равный наименьшему кратному обоих периодов, движущаяся точка снова возвращается в то же положение, и траектория является фигурой Лиссажу.
    Вид фигур Лиссажу зависит от соотношения между частотами и фазами складывающихся колебаний. Наиболее красивые (симметричные) фигуры обычно появляются при различии в фазах колебаний 0, 90 или 180 градусов и при отношении частот равном отношению небольших целых чисел (1 и 1; 1 и
    2; 2 и 3; 1 и 4; 3 и 4; и т.д. ).

    61
    4.2.1. Фигуры Лиссажу для сигналов одной частоты
    Создайте два генератора Simulate Signal с одинаковой частотой выходных сигналов (можно использовать значения по умолчанию).
    Затем поместите на лицевую панель прибор для одновременного наблюдения двух синусоидальных функций – виртуальный двухлучевой осциллограф. Для этого удобно использовать компонент XY Graph
    (Control/Express/Graph Indicator/XY Graph).
    Установите у компонента в качестве подписи осей имена X и Y.
    Запустите программу и объясните результат.
    Сохраните проект.
    4.2.2. Фигуры Лиссажу – изменение фазы сигналов во время работы
    программы
    Создайте копию предыдущего проекта – сохраните ее с именем
    “Лабораторная №2 Задание 4_2_2.vi”.
    Зайдите в свойства первого генератора и установите для него сдвиг по фазе выходного сигнала 45 градусов.
    Запустите программу и объясните результат.
    Каждый раз останавливать программу для задания сдвига фаз генераторов неудобно. Поэтому добавьте на лицевую панель два компонента Numeric и подсоедините выход первого из них к входу Phase первого генератора
    Simulate Signal, а выход второго – к входу Phase второго генератора. Не забудьте предварительно растянуть на блок-схеме иконку генератора так, чтобы стали видны дополнительные входы, среди которых находится и вход
    Phase.
    У компонента Simulate Signal имеется особенность – задание начальной фазы сигнала производится либо в начале работы программы, либо по сигналу Reset (). Поэтому изменение значений чисел в компоненте Numeric
    не будет влиять на фазу сигнала соответствующего генератора до тех пор, пока на вход Reset генератора не поступит логическое значение true. Проще всего его получать нажатием кнопки

    62
    Поместите кнопку OK Button на лицевую панель и соедините выход этой кнопки с входами Reset генераторов.
    Запустите программу. Установите для первого генератора сдвиг по фазе выходного сигнала 45 градусов, а у второго генератора 0. Нажмите кнопку
    OK Button и объясните результат.
    Установите для второго генератора сдвиг по фазе выходного сигнала 45 градусов. Нажмите кнопку OK Button и объясните результат.
    Установите для второго генератора сдвиг по фазе выходного сигнала -45 градусов. Нажмите кнопку OK Button и объясните результат.
    Сохраните проект.
    4.2.3. Фигуры Лиссажу для сигналов разной частоты
    Создайте копию предыдущего проекта – сохраните ее с именем
    “Лабораторная №2 Задание 4_2_3.vi”.
    Добавьте еще два компонента Numeric для задания частот генераторов, введите в каждом из них в качестве начального значения 10, т.е. частоту генерации 10 Гц.
    Установите у компонента XY Graph в качестве подписи осей имена X и Y.
    Задайте для показа по осям X и Y фиксированные масштабы Minimum=-1,
    Maximum=1.
    Замечание: если оставить автоматический выбор масштаба, при каждом выводе будут выбираться разные границы, и будет наблюдаться мерцающая картинка, не имеющая физического смысла. В предыдущих заданиях просто повезло, что во время каждого построения графика границы графика не менялись, и выводимые значения всегда лежали в диапазоне от ‐1 до 1. Для корректного показа картинки на виртуальном осциллографе по возможности следует выбирать фиксированные масштабы шкал.
    Подберите частоты и фазы сигналов генераторов так, чтобы продемонстрировать возникновение фигур Лиссажу. Не забывайте нажимать на кнопку OK Button после изменения значений фазы.
    Что произойдет, если фаза сигнала первого генератора 0, а второго 90 градусов?

    63
    Что произойдет, если частоту генерации увеличить до 100 Гц? Почему?
    Что произойдет, если при частоте генерируемых сигналов 100 Гц в генераторах увеличить частоту дискретизации (Samples per second – точек в секунду) со значения по умолчанию (1000) до 10000? Почему?
    Сохраните проект.
    4.2.4. Фигуры Лиссажу для сигналов разной частоты – задержка в
    выполнении цикла
    Создайте копию предыдущего проекта – сохраните ее с именем
    “Лабораторная №2 Задание 4_2_4.vi”.
    Добавьте на блок-схему внутрь рамки основного цикла программы компонент Time Delay (задержка по времени в секундах), находящийся в разделе Timing, и в появившемся окне оставьте значение по умолчанию, т.е. 1 секунду.
    После запуска программы перед каждым выводом порции данных на экран будет происходить задержка на 1 секунду, что позволит увидеть порядок смены кадров на цифровом осциллографе. Измените частоту одного из генераторов на такое значение, при котором раньше наблюдалось только мелькание. Посмотрите, как в режиме с задержкой будет рисоваться кривая на экране.
    Сохраните проект.
    1   2   3   4   5   6   7   8   9


    написать администратору сайта