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

LabView - учеб. пособия / LabVIEW Руководство пользователя

.pdf
Скачиваний:
909
Добавлен:
03.03.2016
Размер:
4.63 Mб
Скачать

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

Проверьте порядок выполнения узлов.

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

Сверьте перечень ВПП данного ВП с результатами, которые по-

лучите, выбирая Brows»This VI’s SubVI и Brows»Unopened SubVIs, чтобы увидеть, нет ли лишних ВПП. Кроме того, откройте окно Hierarchy, чтобы посмотреть ВПП данного ВП. Чтобы избавиться от возможности некорректных результатов из-за наличия срытых ВПП, делайте все входы ВПП обязательными.

Подсвечивание выполнения

Для просмотра анимации выполнения блок-диаграммы щелкните кнопку Highlight Execution, показанную слева. Подсвечивание выполнения показывает перемещение данных на блок-диаграмме от одного узла к другому с помощью пузырька, который перемещается вдоль проводников. Для того, чтобы видеть, как данные перемещаются через ВП от узла к узлу, используйте подсвечивание выполнения совместно с пошаговым исполнением.

"Примечание. Подсвечивание выполнения очень сильно замедляет работу ВП.

Если кластер error out сообщает об ошибке, то значение ошибки появляется в красной рамке рядом с выводом error out. Если ошибка отсутствует, то рядом с выводом error out появляется OK в зеленой рамке. Более подробно о кластерах ошибок см. в разделе

Кластеры ошибок в этой Главе.

Пошаговое выполнение

Применяйте пошаговое выполнение ВП, чтобы просмотреть каждое действие на блок-диаграмме в процессе ее исполнения. Кнопки пошагового исполнения, показанные слева, действуют только в пошаговом режиме. Войдите в пошаговый режим, щелкая клавишу

121

Step Over (шаг через, перешагнуть) или Step Into (шаг внутрь, войти) на панели инструментов блок-диаграммы. Перемещайте курсор над кнопками Step Over, Step Into или Step Out, чтобы прочесть подсказки, которые описывают, каким будет следующий шаг, если Вы щелкните эту кнопку. Вы можете выполнить в пошаговом режиме весь ВП или запустить его затем в обычном режиме.

Если Вы осуществляете пошаговое выполнение при включенном подсвечивании, то на иконке ВПП, который в данный момент исполняется, появится значок выполнения (стрелка).

Инструмент Probe (пробник)

Используйте инструмент Probe, показанный слева, чтобы при запуске ВП проверить текущие значения на проводниках. Используйте инструмент Probe, если Вы имеете сложную блок-диаграмму с последовательностью операций, каждая из которых может давать неверные данные. Используйте инструмент Probe совместно с подсвечиванием выполнения, пошаговым выполнением и установкой точек прерывания (breakpoints) для выявления имеются ли и в каком месте неверные данные. Если данные доступны, то пробник немедленно обновляется в течение одного шага или во время паузы в точке прерывания. Когда выполнение приостанавливается на ка- ком-то узле в связи с пошаговым выполнением или из-за точки прерывания, Вы также можете установить пробник на проводник, который только что выполнился, чтобы просмотреть значение, которое через него прошло.

Типы пробников

Вы можете проверять текущие значения на проводниках при запуске ВП, используя родовой пробник (Generic probe), используя для просмотра данных индикатор с палитры Controls, используя типовой пробник (supplied probe), используя настраиваемый типовой пробник или создавая новый пробник.

Родовой пробник

Используйте родовой пробник (generic probe) для просмотра данных, которые проходят через проводник. Чтобы воспользоваться родовым пробником щелкните правой кнопкой проводник и выберите из контекстного меню Custom Probe»Generic.

122

Родовой пробник только отображает данные. Нельзя конфигурировать реакцию пробника на данные.

LabVIEW устанавливает родовой пробник, когда Вы щелкаете правой кнопкой проводник и выбираете Probe, при условии, что Вы еще не специфицировали настраиваемый или типовой пробник для данного типа данных.

Использование индикаторов для просмотра данных

Вы также можете использовать индикаторы для просмотра проходящих через проводник данных. Например, если Вы смотрите числовые данные, то для просмотра данных внутри пробника можно использовать индикатор диаграмма (Chart). Щелкните правой кнопкой проводник, выберите Custom Probe»Controls контекстного меню и выберите индикатор, который Вы хотите использовать. Можно также щелкнуть иконку Select a Control на палитре Control и выбрать любой пользовательский элемент управления или определитель типа, сохраненный на компьютере или в совместном каталоге на сервере. LabVIEW обращается с определителями типов как с пользовательскими элементами управления, когда вы используете их для просмотра данных в пробниках.

Если тип данных индикатора, который Вы выбрали, не соответствует типу данных проводника, который Вы щелкнули правой кнопкой, то LabVIEW не поместит такой индикатор на этот проводник.

Типовой пробник

Типовые пробники (supplied probes) это ВП, которые отображают исчерпывающую информацию о данных, проходящих через проводник. Например, VI Refnum Probe возвращает имя ВП, путь, и ссылочный номер в шестнадцатеричной форме. Можно также использовать типовой пробник, чтобы реагировать на поток данных через проводник. Например, используйте пробник Error на кластере ошибок для получения статуса, кода, источника и описания данной ошибки и описания условия прерывания при возникновении ошибки.

Типовые пробники появляются в верхней части контекстного меню Custom Probe. Щелкните правой кнопкой проводник и выберите из контекстного меню Custom Probe, чтобы затем выбрать типовой пробник. В контекстном меню появятся только те пробники,

123

которые соответствуют типу данных проводника, который Вы щелкнули правой кнопкой.

В качестве примера использования типовых пробников см. ВП Using Supplied Probes из библиотеки examples\ general\ probes.llb.

Настраиваемый пробник

Используйте мастер настраиваемого пробника (Custom Probe Wizard) для создания пробника, основываясь на уже существующем пробнике, или для создания нового пробника. Чтобы запустить мастер настраиваемого пробника, щелкните правой кнопкой проводник и выберите из контекстного меню Custom Probe»New. Создайте пробник, когда нужно иметь больше контроля над тем, как LabVIEW исследует данные, которые проходят через проводник. Когда Вы создаете новый пробник, тип данных пробника совпадает с типом данных проводника, который вы щелкнули правой кнопкой. Если Вы хотите изменить создаваемый пробник, Вы должны открыть его из директории, в которой Вы его сохранили.

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

После того, как Вы выбрали пробник из контекстного меню Custom Probe, его можно найти, используя кнопку Select Control палитры Control, или можно создать новый пробник с помощью мастера настраиваемого пробника. Этот пробник становится пробником по умолчанию для данного типа данных, и LabVIEW загрузит именно этот пробник, когда Вы щелкните правой кнопкой проводник и выберите Probe из контекстного меню. LabVIEW загрузит только те пробники, которые точно соответствуют типу данных проводника, который Вы щелкаете правой кнопкой. То есть, пробник двойной точности с плавающей точкой не может использоваться для проводника с 32-битовым целым, несмотря на то, что LabVIEW может конвертировать данные.

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

директории user.lib\_probes\default. Не сохраняйте пробники

124

в директории vi.lib\_probes, поскольку LabVIEW перезаписывает эти файлы при обновлении или при повторной инсталляции.

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

справочной системе LabVIEW Help (раздел Caveats and Recommendations when Using Custom Probes).

Точки прерывания

Используйте инструмент Breakpoint (точка прерывания), показанный слева, чтобы поместить точки прерывания на ВП, узлах и проводниках блок-диаграммы с целью приостановки выполнения в этих точках. Если Вы установили на проводнике точку прерывания, то выполнение будет приостановлено сразу после того, как данные пройдут через этот проводник. Размещайте точку прерывания на блок-диаграмму для приостановки выполнения только после того, как все узлы на блок-диаграмме выполнятся.

Когда ВП приостанавливается в точке прерывания, LabVIEW переносит блок-диаграмму на передний план (делает ее видимой), при этом для выделения узлов, помеченных точкой прерывания, используется красная кайма, а для выделения проводников с точкой прерывания – красная точка. Когда Вы перемещаете курсор над существующими точками прерывания, черная область внутри курсора инструмента Breakpoint становится белой.

Когда во время исполнения достигается точка прерывания, ВП приостанавливается, и кнопка Pause становится красной. Вы можете выбрать следующие действия:

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

Поставить пробники на проводники, чтобы проверить текущие значения.

Изменить значения элементов управления лицевой панели.

Щелкнуть кнопку Pause, чтобы продолжить исполнение до следующей точки прерывания или до завершения работы ВП.

125

LabVIEW сохраняет точки прерывания вместе с ВП, но они становятся активными только после запуска ВП. Можно просмотреть все точки прерывания, выбирая Brows»Breakpoints.

Приостановка исполнения

Делайте приостановку выполнения (suspend execution) ВПП для изменения значений элементов управления и индикаторов, для контроля над количеством запусков ВПП перед возвратом в точку вызова или чтобы вернуться к началу выполнения ВПП. Вы можете устанавливать так, чтобы все вызовы ВПП были с приостановкой или чтобы приостанавливались только отдельные вызовы ВПП.

Чтобы сделать все вызовы ВПП с приостановкой, откройте ВПП и выберите Operate»Suspend when Called. Такой ВПП будет автоматически приостанавливаться, когда его будет вызывать другой ВП. Если Вы выберите этот же пункт меню при пошаговом выполнении, то ВПП не будет приостановлен немедленно. Этот ВПП будет приостановлен, только когда его вызовет другой ВП.

Чтобы приостановить конкретный вызов некоторого ВПП, щелкните правой кнопкой узел этого ВПП на блок-диаграмме и выберите из контекстного меню SubVI Node Setup. Поместите птичку на опцию Suspend when called, чтобы приостановить выполнение только этого представителя (instance) ВПП.

Окно Hierarchy, которое Вы отображаете, выбирая Brows»Show VI Hierarchy, показывает, находится ли ВП в состоянии приостановки исполнения (pause) или в состоянии приостановленного вызова (suspend). Пометка стрелкой означает, что ВП запущен как обычно или в пошаговом режиме. Пометка значком паузы означает, что ВП приостановлен (paused) или приостановлен его вызов (suspended). Зеленый значок паузы или пустота в белом или в черном означает, что ВП приостановлен во время его вызова. Красный значок паузы или сплошной значок в белом или черном означает, что ВП временно приостановлен. Изображение восклицательного знака означает, что приостановлен вызов ВП. ВП может быть одновременно приостановленным (paused) и с приостановленным вызовом (suspended).

126

Определение текущих представителей ВПП

Когда Вы приостанавливаете ВП, спадающее меню Call list (список вызовов) на панели инструментов отображает цепочку вызовов от ВП верхнего уровня до текущего ВПП. Этот список отличается от такого же списка, который Вы видите, когда выбираете Browse»This VI’s Callers. В нем отображены все вызовы ВП, независимо от того, являются ли они запущенными. Используйте меню Call list для определения текущего представителя ВПП, если на блок-диаграмме их несколько. Когда Вы выбираете ВП из меню Call list, его блок-диаграмма открывается и LabVIEW высвечивает текущего представителя данного ВПП.

Комментирование сегментов блок-диаграммы

Вы можете запускать ВП с отключенным сегментом блокдиаграммы, подобно тому, как комментируется сегмент кода в текстовых языках программирования. Отключайте сегмент блокдиаграммы, чтобы узнать, не будет ли ВП работать без него лучше. Поместите сегмент, который Вы хотите отключить, внутрь структуры Case (Выбор) и используйте булевы константы для запуска обоих вариантов. Более подробно о структуре Case см. в разделе

Структуры варианта в Главе 8 Циклы и структуры. Кроме того,

Вы можете создать копию ВП и удалить этот сегмент из блокдиаграммы в этой копии. Удалите потом эту версию ВП, если Вы решите, что она не нужна.

Отключение инструментов отладки

Вы можете отключить отладочные инструменты для уменьшения памяти и некоторого увеличения эффективности. Щелкните правой кнопкой соединительную панель и выберите VI Properties. В меню Category выберите Execution и уберите птичку с опции Allow Debugging.

Неопределенные или неожиданные данные

Неопределенные данные, которыми являются NaN (not a number – не число) или Inf (infinity – бесконечность), делают недействительными все последующие операции. Операции с плавающей точкой возвращают следующие две символические величины, которые указывают на неправильные вычисления или бессмысленные результаты:

127

NaN (not a number – не число) – представляет значение с плавающей точкой, которое вырабатывают неправильные операции, такие как взятие квадратного корня от отрицательного числа.

Inf (infinity – бесконечность) – представляет значение с плавающей точкой, которое вырабатывают такие операции, как деление на ноль.

LabVIEW не проверяет условия переполнения и потери значимости над целыми числами. Переполнение и потеря значимости для чисел с плавающей точкой определяются в соответствии с IEEE 754, Standard for Binary Floating-Point Arithmetic (Стандарт для двоичной арифметики с плавающей точкой).

Операции с плавающей точкой надежно распространяют NaN и Inf. Когда Вы явно или неявно конвертируете NaN или Inf в целые или булевы значения, эти значения становятся бессмысленными. Например, деление 1 на ноль дает Inf. Конвертирование Inf в 16-битное целое дает значение 32767, которое выглядит как нормальное значение. Более подробно о конвертировании число-

вых значений см. в разделе Преобразование числовых представлений в Приложении B Полиморфные функции.

Перед конвертированием данных к целому типу, используйте инструмент Probe для проверки промежуточных значений на правильность. Проверьте на значение NaN путем подсоединения функции сравнения Not A Number/Path/Refnum? к значению, которое Вы подозреваете на неправильность.

Данные по умолчанию в циклах

Циклы For Loop возвращают данные по умолчанию, когда счетчик итераций равен нулю.

Более подробно о значениях по умолчанию для типов данных см. в

разделе Типы данных элементов управления и индикаторов в Главе 5 Построение блок-диаграммы.

Циклы For Loop

Циклы For Loop вырабатывают значения данных по умолчанию, если Вы присоедините 0 к терминалу счетчика циклов или если Вы присоедините к циклу пустой массив на вход с включенной автоиндексацией. Такой цикл не выполняется, и любой выходной тун-

128

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

Более подробно о циклах For Loop, автоиндексации и сдвигающих регистрах см. в разделе Структуры For Loop и While Loop в Главе

8 Циклы и структуры.

Значения по умолчанию в массивах

Индексация за пределами границ массива вырабатывает значение по умолчанию для элемента массива. Вы можете использовать функцию Array Size для определения фактического размера массива. Более подробно о массивах см. в разделе Массивы в Главе 10

Группирока данных с использованием строк, массивов и кластеров.

Более подробно об индексации см. в разделе Автоиндексация циклов в Главе 8 Циклы и структуры. Вы можете нечаянно индексировать за границы массива из-за индексирования прошлого массива последним элементом, используя цикл While Loop, или подавая слишком большое значение на вход indexing функции Index Array, или подавая пустой массив на функцию Index Array.

Предотвращение неопределенных данных

Не полагайтесь на специальные значения вроде NaN, Inf или пустые массивы для того, чтобы определить, что ВП вырабатывает неопределенные данные. Вместо этого либо подтвердите, что этот ВП вырабатывает определенные данные, либо делайте сообщение об ошибках, если имеет место ситуация, похожая на получение неопределенных данных.

Например, если Вы создаете ВП, который использует входящий массив для автоиндексации цикла For Loop, определите, что Вы хотите, чтобы делал ВП, когда массив будет пустым. Либо выработайте код ошибки на выходе, либо подставьте определенные данные для значений, которые определяют поведение цикла.

Проверка и обработка ошибок

Каждая ошибка имеет числовой код и соответствующее сообщение об ошибке. По умолчанию LabVIEW автоматически обрабатывает любые ошибки, когда ВП запущен в режиме suspend execution (вы129

полнение с приостановкой при вызове), подсвечивая ВПП или функцию, в которых произошла ошибка, и отображая диалоговое окно Error.

Выберите File»VI Properties и затем Execution из спадающего меню Category, чтобы отключить автоматическую обработку ошибок для конкретного ВП (снимите птичку с опции Enable automatic error handling). Выберите Tools»Options и затем Block Diagram из спадающего меню, чтобы отключить автоматическую обработку ошибок для всех новых ВП, которые Вы после этого будете созда-

вать (снимите птичку с опции Enable automatic error handling for new VIs).

Чтобы игнорировать любую ошибку, в ВПП или в функции, подсоедините выход error out этого ВПП или функции к входу error in ВП Clear Errors. Чтобы отключить автоматическую обработку ошибок для ВПП или функции, соедините их параметр error out к параметру error in другого ВПП или функции или к индикатору error out.

Для управления ошибками в LabVIEW используйте ВП, функции и параметры для обработки ошибок. Например, если LabVIEW обнаруживает ошибку, Вы можете отобразить сообщение об ошибке в диалоговом окне. Используйте обработку ошибок совместно с инструментами отладки для поиска и устранения ошибок. National Instruments настоятельно рекомендует использовать обработку ошибок.

Проверка на ошибки

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

Когда Вы выполняете любые операции ввода/вывода, рассмотрите вероятность того, что ошибки могут возникнуть. Почти все функции ввода/вывода возвращают информацию об ошибках. Включите проверку ошибок в ВП, особенно для операций ввода/вывода (файловых, последовательных, от измерительных устройств вво-

130