ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ 2
1. ОБЩИЕ ПРИНЦИПЫ ПОСТРОЕНИЯ ПРОГРАММЫ В LABVIEW 8
1.1. Палитра Tools (Палитра Инструментов) 10
1.2. Палитра Controls (управления) 11
1.3. Палитра Functions (функций) 17
1.4. Переменные в программе 19
2. ЯЗЫК ПРОГРАММИРОВАНИЯ LABVIEW 27
2.1. Технология программирования в среде LabView 27
2.2. Выполнение программы, средства отладки и поиска ошибок 34
2.3. Сервисные возможности формирования Лицевой панели 37
2.4. Азбука математики в программе LabView 48
2.5. Массивы и кластеры 58
2.6. Структуры в LabView 80
2.7. Строковые переменные и таблицы 88
2.8. Служебные узлы, Local AND Global Variables 100
2.9. Подпрограммы и их использование 106
2.10. Совместимость с другими языками программирования 114
2.11. Структуры. Формульный узел 142
2.12. Обработка сигналов в частотной области 152
2.13. Генераторы сигналов. Часть 1 159
2.14. Генераторы сигналов. Часть 2 169
2.15. Обработка сигналов. Фильтрация сигналов 178
2.16. Обработка сигналов. Оконное взвешивание 191
2.17. Линейная алгебра. 195
2.18. Распространение программ 201
3. РАБОТА С ВИРТУАЛЬНЫМИ ИНСТРУМЕНТАМИ В СРЕДЕ LABVIEW 211
3.1. Осциллографы в LabView 211
3.2. Ввод-вывод данных в LabView 227
4. ВНЕШНИЕ УСТРОЙСТВА СОПРЯЖЕНИЯ В LABVIEW 248
4.1. Работа с внешними устройствами 248
4.2. Работа с шиной ISA. 254
4.3. Работа с шиной PCI 273
4.4. Работа с последовательным портом 300
4.5. Работа со звуковыми платами 325
ЛИТЕРАТУРА 350



ВВЕДЕНИЕ
Сегодня инженеру-разработчику времени на выполнение проекта и средств на его реализацию выделяется все меньше и меньше. А требования к качеству его продукции все возрастают и возрастают. И сейчас практически невозможно представить себе, чтобы работа инженера обходилась без использования персонального компьютера. Это необходимо и при определении структуры и алгоритмов функционирования системы, и в моделировании и макетировании узлов и устройства целиком, и при разработке документации, и даже при настройке и регулировке системы. Рынок программных средств и раньше предлагал инженеру-схемотехнику программные средства от языков высокого уровня С и Pascal до специализированных прикладных пакетов систем автоматизированного проектирования (САПР).
Языки высокого уровня помогают инженеру на этапе подготовки модели его системы, при анализе ее поведения в различных условиях. Системы автоматизированного проектирования позволяют использовать интерактивный режим проектирования и проводить моделирование радиоэлектронных систем (РЭС) в условиях, близких к реальным условиям работы. И в том и в другом случае от инженера требуется не только знание своей родной области, но и умение грамотно создать свою программу и правильно пользоваться уже имеющимися программными средствами.
Часто на этапе проектирования трудно предвидеть некоторые особенности работы изделия, особенно если они обусловливаются эксплуатационными условиями. Представляемые к испытаниям опытные образцы часто оказываются не удовлетворяющими заданным требованиям, а доводка аппаратуры происходит в процессе испытаний, что удорожает готовый продукт во много раз.
Подобное положение не вина инженеров-разработчиков. Это результат возникшего принципиального несоответствия между традиционным подходом к проектированию и сложностью современных радиоэлектронных средств. Указанное противоречие и вызвало интенсивное развитие новой технологии проектирования РЭС, базирующейся на системном подходе и совершенствовании самих процессов проектирования. А замена макетирования и натурного моделирования математическим моделированием, использованием эффективных методов многовариантного проектирования и оптимизации повышало качество управления проектированием.
На начальном этапе применение ЭВМ для автоматизации проектирования сводилось к решению частных задач, носивших главным образом расчетный характер. Для каждой задачи строилась ее математическая модель, выбирался численный метод и разрабатывался алгоритм решения [1]. Полученные от ЭВМ результаты подвергались необходимой обработке «вручную», так называемый «позадачный подход».
Первой характерной особенностью САПР и их принципиальным отличием от «позадачных» методов является возможность комплексного решения общей задачи проектирования, установления тесной связи между частными задачами.
Проведение имитационного моделирования РЭС в условиях работы, близких к реальным, позволяет сравнить различные варианты решения и выбрать лучший из них.
Но эти возможности даром не даются. Языки программирования и средства САПР становятся сложными, при этом возникает задача общения между программами и данными, полученными разными программами. Появляется задача обеспечения рационального выбора аппаратного обеспечения не только для программ и средств САПР, но и для средств сопряжения компьютера с физическими объектами.
В настоящее время тенденции к автоматизации всего процесса проектирования РЭС привели к появлению нескольких САПР, решающих задачи функционального моделирования, моделирования работы отдельных схем и т. д. Эти САПР позволяют моделировать работу аппаратуры и обладают средствами анализа процессов, происходящих в модели (к числу таких САПР можно отнести систему SystemView фирмы «Elanix»).
Трансформация макетирования и натурного моделирования в математическое моделирование с возможностью представления объекта его экспериментальными характеристиками привело к появлению на рабочих местах проектировщиков специализированных САПР «виртуальных инструментов». Такие САПР обладают средствами для создания виртуальных устройств различного назначения, например осциллографов, анализаторов спектра, и обработки данных, полученных как в режиме реального времени от физического объекта, так и в виде файлов. Система LabView, разработанная фирмой «National Instruments» является именно такой. Эта фирма существует более 25 лет и является лидером по производству контрольно-измерительной техники. В России офис фирмы открыт в 2001 г.
Основным принципом построения систем сбора, обработки и управления на базе оборудования и программного обеспечения фирмы «National Instruments» является возможность превращения персонального компьютера в измерительный комплекс с требуемыми метрологическими характеристиками.
Конфигурировать измерительные комплексы в системе LabView можно как от датчиков и исполнительных механизмов (измерительная часть), так и от обработки данных (вычислительная часть). В первом случае необходимо подсоединить датчики к персональному компьютеру и провести аналого-цифровое преобразование аналоговых сигналов для дальнейшей обработки и формирования отчетов. Во втором случае задача решается встроенными программными средствами обработки сигналов, статистического анализа, имитации, при необходимости – работы внешних устройств.
Очень важно, что алгоритм обработки сигналов и для первого и для второго подхода остается одним и тем же.
Появление программы LabView позволило существенно упростить и сделать универсальным комплекс объект – измерение. Появилась возможность на основании датчика, аналого-цифрового преобразователя и соответствующих программных средств осуществлять функции множества измерительных приборов различного назначения, а также функции обработки результатов измерений. Все это в совокупности является характерной основной чертой так называемого виртуального прибора. Запись больших массивов данных позволяет запоминать результаты эксперимента, что дает возможность проводить ретроспективный анализ, статистическую обработку и т. д. LabView – программа (работает уже более 15 лет), которая содержит громадное количество библиотек для расширенного анализа сигналов.
Программирование в LabView происходит графически, т. е. отсутствует привычное текстовое описание алгоритма на языке программ высокого уровня. Инженеру достаточно составить блок-схему алгоритма и внести ее в программу. Сейчас программа LabView стала фактически стандартом в области программных средств обработки сигналов и моделирования сложных устройств. В 2000 г. вышла версия LabView 6i описанию работы с которой и посвящена данная книга. Более поздняя версия LabView 6.1, имеет некоторые революционные изменения – обработку событий, но при этом сохраняет всю прежнюю мощь версии LabView 6i.
Сама программа LabView является полностью открытой, т. е. позволяет получить доступ к любым компонентам внутри ее. Она позволяет встраивать ранее созданные программы на языках высокого уровня, работать с библиотеками DLL, является сервером/контейнером ActiveX. Кроме этого, она поддерживает все стандартные протоколы обмена данными между приложениями (DDE, OPC, ODBC/OLEDB/ADO и т. д.), имеет открытую сетевую архитектуру, поддерживает работу различных операционных систем (Windows, UNIX, Lunux, Mac, LabView Real Time).
Программа LabView как средство прикладного программирования по своей логической структуре близка к конструкции языков высшего уровня. Однако при создании программ в ней используется язык графического программирования (язык G), похожий на объектно-ориентированные языки программирования, привычные для широкого круга пользователей.
Как универсальная система программирования, программа LabView имеет обширные библиотеки для работы с периферийными внешними устройствами, средства обработки, анализа и представления данных.
Любая программа, созданная в LabView, называется виртуальным инструментом или виртуальным прибором и состоит формально из двух основных частей – лицевой панели, на которой расположен интерфейс оператора, и блока диаграммы, который содержит код программы в графическом виде. LabView является компилятором и позволяет создавать исполняемые модули (файлы .exe) и динамические библиотеки (файлы .dll).
Виртуальный инструмент можно использовать при анализе и верификации модели созданной, САПР функционального проектирования. Поэтому комбинирование САПР функционального моделирования и САПР виртуальных инструментов позволяет не только создать модель, но и детально исследовать ее поведение. На базе LabView существуют система технического зрения и управления движением, системы автоматизации технологических процессов. Распределенные системы позволяют решать задачи, когда исследуемые объекты разнесены пространственно, а результаты измерений и обработки данных должны быть доступны большому количеству пользователей. LabView оптимизирована для работы в сетях (Internet/Intranet).
На базе LabView возможно даже построение средств дистанционного обучения. Можно превратить персональный компьютер в современную лабораторную станцию для работы с реальными сигналами, причем по стоимости такая модификация не превысит стоимости персонального компьютера среднего класса. В этом направлении накоплен значительный опыт по автоматизации лабораторных работ по таким техническим дисциплинам, как цифровая электроника, электроника, теория и техника современного эксперимента и др.
Система жесткого реального времени LabView Real Time используется в системах сбора/обработки информации/управления, когда требуется жесткий детерминизм и когда обычные операционные системы, такие, как Windows, не могут быть использованы.
В этой книге сделана попытка представить замечательный пакет LabView, который, с точки зрения автора, может значительно повысить качество разработки РЭС, снизить затраты на «железо» и дать разработчику РЭС новый класс инструментов анализа, настройки и оптимизации решений.
Новая система обычно вызывает у инженера справедливый вопрос – стоит ли тратить время и силы на освоение программного средства и в каких случаях он его будет использовать. Такие вопросы были и у автора этих строк. В книге далее будет показано, что инженеру, обладающему минимальными навыками в программировании и достаточными знаниями в своей области, начать работать в программе LabView просто. Надо только найти знакомые лица в толпе, проведя некую аналогию с ранее знакомыми терминами из языков высокого уровня.
Читатель может найти большое количество статей, готовых приложений и технических заметок на Web-сайте «National Instruments» http://www.ni.com /appnotes.nsf, а также в зоне разработчика (Developer Zone) http://zone.ni. com/. Эффективным способом понять LabView являются учебные курсы, предлагаемые «National Instruments». Для тех, кто совсем незнаком с LabView, наиболее рекомендуемые курсы «Базовый I» (Basic I) и «Базовый II» (Basic II). Эти курсы позволят вам начать программировать, даже если вы никогда ранее вообще не программировали на компьютере.
Правда, курсы платные, но бесплатный сыр только в мышеловке; ответьте сами себе на вопрос, как дорого ваше время на разработку и стоимость ваших простейших ошибок? LabView как графический язык программирования, конечно, отличается от традиционного текстового программирования, поэтому грáблей для новичков будет предостаточно.
Хотя литературы на русском языке, посвященной LabView, на момент написания этой книги автором мало, но есть отличные книги на английском языке. Список этих книг, которые рекомендуют или написали профессионалы LabView, можно найти на www.ni.com/reference/books /labView.htm. Самое простое – почитать Справочное руководство программиста на G (G Programmer\'s reference manual) и Руководство пользователя (User Manual). Эти руководства пользователь обнаружит в сопровождающей документации LabView.
Существенным (но, безусловно, оправданным, с точки зрения администрации «National Instruments») недостатком среды LabView является ее явная ориентированность на родное аппаратное обеспечение «National Instruments», которая заключается в упрощенности процедур обращения к этому аппаратному обеспечению из среды программирования. Обращение к платам прочих производителей может состоять из длинных последовательностей совершенно нетривиальных для пользователя операций, что в конечном счете может осложнить применение LabView для отечественного аппаратного обеспечения.
Автор ставит перед собой задачу помочь студентам, инженерам и просто заинтересованным людям как в освоении LabView, так и в использовании отечественных устройств ввода/вывода аналого-цифровой информации в программной среде LabView. Я выражаю благодарность студентам кафедр РЛ1 и РК6 МГТУ им. Н. Э. Баумана, чьи вопросы в процессе работы со мной помогли появиться этой книге на свет.