Программное обеспечение для сбора и обработки данных при измерениях и испытаниях
2. Использование графического программирования
К системам, основанным на таком стиле программирования, относят пакеты, в которых пользователь осуществляет графическое построение функциональной схемы (блок-схемы, диаграммы) процесса или устройства, выбирая наиболее подходящие для данной задачи блоки из имеющихся в пакете библиотек. Существуют и другие, но менее употребительные названия такого способа создания программ — визуальное, иконное программирование и т. п.
Подобный подход ориентирован в первую очередь на потребителей, понимающих способы решения своей задачи и желающих получить результат как можно быстрее. Вопросы быстродействия и какой-либо оптимальности обычно второстепенны. К таким потребителям принадлежат не только те, кто не имеет опыта в традиционном программировании и не собирается его приобретать. В современных графических пакетах, которые всегда ориентированы на определенный тип задач, за счет наличия в них специализированных и весьма мощных функциональных блоков время разработки программ, по некоторым оценкам, до 10 раз меньше, чем в универсальных системах программирования текстом. Поэтому не редкость, когда графическим методом пользуются и специалисты, которые в состоянии разработать программу традиционным способом. Справедливости ради нужно заметить, что в нынешних пакетах для С/C++ и Visual Basic значительно сокращены рутинные операции, и сейчас они по времени разработки более конкурентоспособны, чем в первое время появления графических систем.
Очень часто в титульных свойствах пакета графического программирования для задач измерений и испытаний указывается о ненужности написания кода. Тем не менее в этих системах также весьма часто допускается возможность использования пользовательского библиотечного блока, созданного с помощью текстового программирования. Данное свойство предлагает альтернативу рассмотренному в первой части статьи варианту построения систем сбора и обработки данных на основе С/С++ и Visual Basic и соответствующих специализированных библиотек.
2.1. LabVIEW и HP VEE
Эти два продукта, наиболее популярные за рубежом среди графических пакетов для проведения измерений и испытаний, имеют много общих свойств, конкурируют между собой и поэтому рассматриваются совместно.
LabVIEW от National Instruments (
www.ni.com/labview) является старейшей (выпускается более 10 лет) и наиболее распространенной в мире системой графического программирования для сбора и обработки данных. В США для подобных задач этот пакет выбирает примерно каждый третий или четвертый потребитель. LabVIEW также хорошо известен в нашей стране, поэтому описание его основных свойств опускается.
В середине этого года была выпущена новая версия LabVIEW 6 i. Главный упор в ней фирма сделала на расширение возможностей проведения измерений через Интернет, что даже вынесено в название продукта. Также полностью переработан графический интерфейс пользователя с основной ориентацией на трехмерность представления, дополнены и расширены библиотеки. Пример нового вида передней панели приведен на рис. 1. Потребитель может выбирать как новый, так и привычный классический вид каждого конкретного органа управления и индикации.
Встроенная поддержка организации собственного ввода/вывода ограничена простой работой с портами PC под Windows 98/95. Также имеются библиотечные функции, позволяющие использовать звуковую плату в качестве двухканальных АЦП и ЦАП под Windows 98/95/NT. Стандартный интерфейс к внешним устройствам включает в себя работу с последовательными портами PC, GPIB и VXI. Естественно, поддерживается вся аппаратура National Instruments. К тому же практически каждый заметный производитель техники для сбора и обработки данных предусматривает наличие соответствующих драйверов к LabVIEW.
С целью автономного исполнения проекта вне интегрированной среды, разработки и передачи его конечному потребителю приложение может быть оформлено в виде EXE файла. Для этого необходим дополнительный, отдельно поставляемый модуль Application Builder. На рис. 1 как раз и приведен вариант проекта, скомпилированный с его помощью.
HP VEE от Hewlett-Packard (теперь, после ее разделения, это сфера деятельности Agilent Technologies) значительно меньше известен в Росии. Проектирование, так же как и в LabVIEW, заключается в составлении блок-схемы из набора библиотечных элементов. Но, в отличие от LabVIEW, блоки имеют дополнительно к входам и выходам данных (левые и правые порты) вход запуска на исполнение блока (сверху) и выход выдачи сигнала окончания блоком задачи (снизу). Соединение в схеме этих портов между блоками устанавливает специальную последовательность исполнения программы, отличающуюся от естественного порядка выполнения, который определяется потоками передачи данных.
На рис. 2 приведен пример проекта в версии 5.01 HP VEE (последней на момент подготовки статьи). Блок может быть представлен в развернутом виде для редактирования его параметров или в закрытом — в виде иконки для уменьшения громоздкости схемы. Программа может исполняться прямо из схемы, без создания передней панели. Имеются средства отладки и просмотра данных. После отладки проекта можно создать панель и поместить на нее только нужные блоки. При использовании кириллицы в HP VEE есть некоторые проблемы, но они преодолимы.
Имеются стандартный набор органов контроля и индикации для построения передней панели, хорошо развитые средства управления ходом программы, основные математические функции над действительными и комплексными данными и минимальный набор действий по цифровой обработке сигналов. В части возможностей по цифровой обработке сигналов HP VEE заметно уступает LabVIEW с дополнением Advanced Analуsis.
Пакет может обмениваться данными с приложениями на основе ActiveX (Excel и т. п.), и с некоторыми ограничениями допускает непосредственное включение в схему отдельных компонентов этой технологии. В проекте на рис. 2 приведен вариант такого использования на примере графического дисплея из ComponentWorks (рассматривался в первой части статьи). Мощный и удобный для сокращения объема схемы блок Formula используется в данном случае для описания свойств и задания методов компонента ActiveX. Для обработки событий предусмотрены специальные средства.
Имеется развитое обеспечение работы стандартных интерфейсов RS-232, GPIB и VXI. Также есть встроенная поддержка более специфического интерфейса GPIO, который реализуется с помощью ISA-платы (модель E2075A). GPIO имеет 16 линий ввода данных, 16 линий вывода и линии сигналов управления обменом и внешнего прерывания.
Собственных библиотечных функций для работы с портами PC в HP VEE нет. Однако их легко можно организовать с помощью блока Import Library, который загружает внешнюю библиотеку типа DLL. Файлы такой библиотеки для работы с портами под Windows 9x и NT (Peekpoke.dll, его текст на С, описание и пример использования) свободно распространяются фирмой. Этот продемонстрированный подход можно использовать и в качестве образца для создания собственных внешних функций.
Для исполнения проекта вне среды разработки имеется специальная runtime-версия пакета, которая распространяется бесплатно. Но в проекте, который предназначается для такой работы, обязательно должна быть сформирована передняя панель.
HP VEE в основном ориентирован на построение систем сбора и обработки данных с применением внешних измерительных приборов и стоек. Это и понятно, так как Agilent является крупнейшим производителем такого оборудования. Только в комплекте поставки HP VEE версии 5.01 имеется около 300 драйверов для разных инструментов и через Интернет можно найти еще немало других. В таком аспекте применения состоит определенное различие между HP VEE и LabVIEW, который все-таки больше используют вместе со вставными в PC платами сбора данных. Но конечно, и для HP VEE имеются возможности удобной работы с такими платами, так как достаточно много фирм (например, Data Translation) осуществляют поддержку своей продукции для HP VEE. Впрочем, и для LabVIEW за долгие годы его существования накопилось драйверов для автономных приборов наверняка не меньше.
Ответ на вопрос, часто обсуждаемый в публикациях на тему «что выбрать»: LabVIEW или HP VEE, примерно следующий. При наличии большого парка приборов HP обычно выбирают VEE. В пользу же LabVIEW в такой дискуссии однозначно говорят его значительно большие возможности по обработке данных за счет обильного количества дополнительных прикладных пакетов под широкий круг задач. Так, для LabVIEW, в частности, кроме упомянутого Advanced Analуsis, имеется набор модулей для более специфической цифровой обработки сигналов (Signal Processing Toolset) и развитая система обработки изображений (IMAQ Vision и IMAQ Vision Builder).
Сравнения HP VEE и LabVIEW по времени разработки программ и скорости их работы (для версий 5 обоих продуктов) не очень убедительно свидетельствуют в пользу того или другого пакета. Это говорит об их примерной равнозначности по таким характеристикам.
Статья была уже закончена, когда стало известно о выходе новой и тоже шестой версии VEE (сентябрь этого года), которая теперь называется Agilent VEE 6. В первой же строке аннотации говорится о значительном улучшении дел с обработкой данных за счет интеграции в VEE части такого известного пакета, как MATLAB. Найти информацию о Agilent VEE 6 и получить демо-версию можно по адресу:
www.agilent.com/products/vee/support.
2.2. SoftWIRE
Появившийся в этом году пакет фирмы ComputerBoards (
www.computerboards.com) выпускается под маркой Graphical Programming for Visual Basic. Если принять во внимание тот факт, что для программирования сбора и обработки данных Visual Basic использует примерно столько же потребителей, сколько все остальные графические методы вместе взятые, то предлагаемое решение заслуживает безусловного и пристального внимания.
Для работы с SoftWIRE обязательно нужен Visual Basic 6 (не ниже!). Пакет является дополнением к Visual Basic (add-on) и после установки включается в его меню. При создании или вызове проекта для SoftWIRE в интегрированной среде разработки Visual Basic формируется специальное окно «Диаграмма», в которой и производится ввод схемы (рис. 3). Нужные библиотечные блоки выбираются из закладки в верхней части окна.
Блоки выполнены по технологии ActiveX и аналогично HP VEE имеют, кроме портов данных, вход и выход для управления последовательностью исполнения блока в программе. Вообще, схожесть с HP VEE вряд ли случайна. Фирма давно обеспечивает для своей аппаратуры поддержку в HP VEE и включается Agilent в список рекомендуемых изготовителей плат сбора данных для использования с HP VEE.
Библиотеки включают в себя основной набор органов контроля и индикации, но по возможностям они уступают элементам аналогичного назначения в рассмотренных ранее продуктах National Instruments и Agilent. Имеются блоки для управления ходом программы, выполнения системных функций, арифметических и логических действий. Поддержка работы с массивами и по обработке данных минимальна, и ее трудно назвать удовлетворяющей потребностям современных систем сбора и обработки данных. Естественно обеспечивается программный интерфейс к аппаратуре, которую выпускает ComputerBoards.
Схеме соответствует стандартная из Visual Basic форма для отображения передней панели (рис. 4) и ввода текста программы. Введенные в схему блоки автоматически включаются в форму. Работа с блоками в форме ведется в обычном для ActiveX компонентов порядке. Возможно использование других библиотек ActiveX, но они не отображаются в схеме. Есть также ограничения некоторых свойств Visual Basic. Действия по организации интерфейса к внешним устройствам и созданию EXE-файла выполняются так же, как и для обычных проектов в Visual Basic.
Для самых простых задач (типа измерения температуры) действительно не потребуется написания кода программы и достаточно лишь задать и соединить блоки. Но уже небольшое усложнение задачи, например создание двухканального осциллографа, потребовало текстового программирования. Создается ощущение, что с определенного уровня сложности проекта наличие в нем диаграммы с соединениями между блоками будет приносить мало пользы.
В пакете пока присутствует немало ошибок, в частности такая досадная, как выброс по координате Y в начале оси X в графическом дисплее (на синусоиде на рис. 4), о возможности которого предупреждает и фирма. Это, конечно, вызвано крайней свежестью продукта, и текущая версия 1.0.1 (на момент написания статьи) уже работает существенно лучше, чем инициальная, но не безупречно.
В целом от SoftWIRE остается неоднозначное впечатление. Для задач типа прямых измерений, особенно при использовании аппаратуры производства ComputerBoards, он должен найти своего потребителя. Но для расширения сферы его применений фирме придется приложить значительные усилия по развитию возможностей пакета. Отметим все же, что заложенная в SoftWIRE идея представляется плодотворной. Так что упускать из виду эту систему не стоит.
Окончание в следующем номере