Labview les8 (1031617), страница 3
Текст из файла (страница 3)
Рядом появитсяокошко с индикатором, соответствующего типа данных.ВыполнениепрограммыКонтрольные точкиможно остановить в определенных Вами контрольных точках, например вподпрограмме, на проводнике и т.п. Необходимый для этого инструмент Set/Clear Breakpoint(Установить/Убрать контрольную точку) находится в палитре инструментов. Выберите его и нажмите налюбой элемент, где Вы хотите устанавливать или убратьконтрольную точку.
Контрольные точки изображены в виде красных рамок диаграмм, и красных точек для проводов. После запуска VI, дойдя до контрольной точки, активирует паузу.А теперь практическая работа с использованиемтрассировки, контрольных точек, пошагового исполненияи пробников. Создаете VI как показано ниже и назовитеего Random Number Plus.vi.В окне диаграмм нажмите на кнопку Execution Highlighting на панели инструментов,включите переключатель "ВКЛ" и нажмите кнопкуRun. Обратите внимание, что точки, “бегущие попроводам” показывают Вам поток данных и порядок выполнения subVI.Снимите выделение кнопкиExecution Highlighting, и нажмите на переключатель "ВКЛ" для остановки VI.
Откройте всплывающее меню на проводникемеждуфункцией Random number (01)итерминаломRandom Plot, ивыберите Probe.Установитеконтрольную точкуна функции Random number (01). Функция будети м е т ькрасноеобрамление.Включите переключатель"ВКЛ", и запустите533/2005в ПОМОЩЬ инженеруVI. На диаграммебудет вспыхиватьфункция Randomnumber (01), указывая, что она готова к выполнению.Нажмите накнопку Step Overдля того, чтобывыполниласьфункция Randomnumber (01). Сгенерированноезначение теперьотображаетсявокне пробника.Нажмите накнопкиStep IntoиStepOver.
Выувидите, как Работает пошаговыйрежим вLabVIEW.Для того, чтобывернутьсяв обычный реж и м ,просто нажмите накнопку Pause.Выберите из числа своих VI примерчик посложнее и попросите коллегу внести в него "некоторые коррективы". Не трудно догадаться, какиеименно. А затем, используя описанную техникуотладки, найдите эти "улучшизмы".
Но занятьсяэтим следует после того, как вы пройдете этотурок до конца. Осталось чутьчуть.Вернемся к полезым советам гна Johnson и рассмотрим Правила Соединений (Wiring Guidelines) функциональных блоков на диаграмме с помощью инструмента wiring tool.28Выполняйте соединение слева направои не делайте соединения невидимымиПомните правило, в котором говорится о коннекторах для подсоединения к VI? Как раз тот самый случай.
Если Ваши коннекторные панели сконструированы одинаково, то все соединения делаются одним щелчком. Выходустановленный справа непосредственно и прямо соединяется с входом следующего блока. А если коннекторные панели имеют одно и то же число терминалов, то и не надоизгибать проводники для соединений между ними.Никогда не прокладывайте проводники один поддругим! Если это сделать, Вы больше не сможете видеть выполнены все соединения или нет. К тому же Вы можетеи забыть о том, чего не видите.Могут возникнуть большие проблемы, если Вы выделите некоторое количество точек в цикле и соедините543/2005их так, что изображение цикла наложится на проводники.В этом случае проводники не будут видны, и Вы можетеподумать, что эти проводники не участвуют в работецикла.Если Вы удаляете или перемещаете часть программы с невидимыми линиями, то будут удаляться и невидимые линии, а что будет после этого неизвестно. Если Вамповезет, то увидите предупреждение LabVIEW, еслинет то...29Remove Bad Wires удобный инструмент, ноИзбегайте использовать Remove Bad Wires.
Этотинструмент удаляет любые неправильные соединения ине только те, на которые Вы смотрите, например те соединения, которые могут быть частью незаконченной программы. Если Вы удалите все, то потом нужно будет возвращаться назад и восстанавливать соединения в частипрограммы, которую Вы не закончили. Некоторые соединения могут быть удалены, и при этом не будет вызоваошибки. Если Вам доводилось программировать на С илиBasic, то представьте себе, что Ваш редактор сразу удалилвсе строки с синтаксическими ошибками. Это будет катастрофа, не так ли?Используйте Remove Bad Wires тогда, когда у Васнебольшая программа и возникло одно или два "плохих"соединений.
Вы абсолютно уверены, что ничего не испортите? Тогда нажимайте CtrB.30Используйте тройной "клик"для просмотра ошибки соединенияУ вас возникли проблемы с соединением? Как ихрешить без применения Remove Bad Wires? Попробуйтещелкнуть мышью по плохому соединению. Одиночныйщелчок выделит сегмент соединения, двойной от точкидо точки, тройной всю линию.
Тройной щелчок специально используют для поиска всех взаимосвязанныхтерминалов, тех о которых Вы знаете и не знаете. И нетдругого пути, когда соединены два входных терминала (аэтого нельзя делать) и один из проводников спрятан подиконкой. И если Вы будете использовать двойной щелчоки потом удалите все, то Вы удалите и правильную частьсоединения. В такой ситуации следует трижды щелкнуть,чтобы увидеть все точки подключения. Нет более простого и правильного пути для того, чтобы быть уверенным вправильности соединения, чем тройной щелчок.31Используйте Create Control/Constantтак часто, как можетеЕще со времен LabVIEW 4.0 стало возможным создавать константы на диаграмме простым щелчком по правой клавише мыши и выбором пункта Create Constant.Помните об этой возможности и со многими неприятными ошибками Вам не придется иметь дело.
Пусть, например, в подпрограмме используется Еnumerate Сonstant идля управления Саse используется некоторое число, которое спустя некоторое время изменится, то Вы и не будетеосведомлены о том, что случилось. Лучше создайте константу и тогда, если enumerated constant когданибудь изменится, Вы сразу получите сообщение об ошибке. Подумайте о часах, потраченных на поиск ошибок, которыеможет сохранить Вам этот прием.в ПОМОЩЬ инженеру"Чистая" диаграмма свободна от ошибок, выглядитболее профессионально, проста в сопровождении и быланаписана кемто, кто сначала подумал, а потом начал всесоединять.
"Грязная" же диаграмма обычно полна неприятных неожиданных ошибок, чувствуется, что написана оченьбыстро и непродуманно. Всего несколько минут, потраченных на "причесывание" диаграммы, сэкономят часы при отладке! Совсем без ошибок не бывает. В любой программебудут встречаться ошибки. Но в хорошо и профессионально написанных приложениях возни с ними будет не много.32Используйте кластеры Error In и Error OutВо всех VI, в которых могут возникнуть проблемыво время исполнения, используйте кластеры Error In иError Out из палитры Array and Cluster Control. Этообычная практика для VI, работающих с файлами, сериальным портом, GPIB (приборный интерфейс) и т.п. Названные кластеры обеспечивают простой и последовательный путь для отчета об ошибках, возникших во время вызова VI.
Они также могут быть использованы и как вызовдля управления ходом выполнения программы:В этом примере Open File должен исполняться перед Read File и Close File после того, как все будет выполнено. Заметьте, как это выглядит. Никаких структурSequence, которые скрывают код, никаких промежуточных проверок ошибок. Если ошибка возникнет до исполнения этой части, она будет обработана в этом кластеренемедленно.33Используйте NaN (NotaNumber)вместо кластеров Error, где это уместноНекоторые VI, особенно математические функции,не выдают информацию в кластер Error. Вместо этого, если VI не исполняется, на его выходе устанавливается NaN.В этом есть несколько преимуществ.
Первое любой вызванный VI может использовать Not a Number/Path/Refnum для того, чтобы посмотреть успешно ли исполняется функция. Второе NaN не отображается на графике.Так что, что когда формируется график, а Ваши данныевдруг вышли за границы, то на нем не будут отображеныданные, вышедшие за границы.34Не спешите смотреть на ошибки пропустите их дальше по линииЗаймитесь анализом ошибок в соответствующеевремя. Например, в примере, приведенном выше, нет необходимости отслеживать возникновение ошибки в каждой точке. Вместо этого подождите, пока сообщение обошибке появится в конце.35Передавайте ошибку без измененийЕсли ошибка обнаружена до Вашего VI , пропустите исполнение Вашей программы и передайте ошибкунетронутой.
Не делайте дополнительного переписываниясообщения об источнике или коде ошибки, или Вы никогда точно не будете знать, что произошло.36Никогда не делайте stop или не показывайтемного диалоговых оконError Cluster не только позволяет разместить сообщение в одном месте, но также исключает необходимостьвсе время нажимать на OK или Cancel. LabVIEWпрофессионалам нравится использовать LabVIEW Queue для управления сообщениями об ошибках. Создается queue(очередь) в главной программе и запускается RemoveQueue Element в отдельном цикле.
Все subVI пересылаютстатусы ошибок или другую инфомацию (NaN) в главнуюпрограмму, используя Insert Queue Element. Это не только простой, но и очень эффективный способ. Одно предупреждение: управление ошибками программно приводит к необходимости выключать большое количестваинформационных диалогов, которые будут появляться избольшого количества встроенных VI. Не все VI имеют этуопцию, так что Вам может понадобится модифицировать их.Управление ошибками в центральном окне можетпотребовать выключение advisory dialog, встроенный в VI.37Создавайте свои коды ошибок и используйтеих в дополнении к кодам ошибок LabVIEWВ большинстве случаев Вы будете обнаруживатьподходящие коды ошибок в Error Ring в секции AdditionNumeric Constants в палитре Numeric.
Но это не значит,что Вы ограничены только этими кодами. LabVIEW допускает значительно больше сообщений об ошибках Вы можете определить их сами в диапазоне 5000..9999.Используйте General Error Handler из палитрыTime&Dialog. Если Вы попрежнему не можете найти подходящий код ошибки, создайте свой собственный в диапазоне 5000..9999.38Используйте отрицательные значения кодовошибок для обозначения фатальной ошибкиВ соответствии с Соглашениями LabVIEW, если Вы неможете завершить Вашу задачу, установите статус кода Вашей ошибки отрицательным. А если задача завершена, ночтото произошло, установите значения кода положительным.
Потом можно будет разобраться, что же произошло.Все. Рекомендации закончились, а вместе с ними,наверное, и Ваши мучения. Ура! Но! Если Вы хотите, чтобы сам процесс программирования в LabVIEW стал дляВас райским наслаждением, перечитайте наставленияэтого урока еще раз. :)"Быстрая разработка, легкость сопровождения имногократность использования подпрограмм вот результат использования правил 1..38", М.
И. Манжелий,Инженерный Центр "Автоматизированные системы контроля", Москва, Россия.553/2005.