Программное обеспечение приборов неразрушающего контроля, реализующих метод вихревых токов

Вид материалаДокументы

Содержание


Аппаратная реализация.
Разработка ПО.
Подобный материал:

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРИБОРОВ НЕРАЗРУШАЮЩЕГО КОНТРОЛЯ, РЕАЛИЗУЮЩИХ МЕТОД ВИХРЕВЫХ ТОКОВ




Ischkov A.V., Dmitriev S.F., Novozhenov A.V., Ljaschenko D.N.



В докладе описаны подходы к разработке прикладного программного обеспечения виртуализированных приборов, реализующих метод вихревых токов, на основе управления параметрами звукового адаптера ЭВМ через интерфейс низкого уровня и микшерную подсистему Windows.


In the report approaches to development of the applied software of the virtualized devices implementing a method of eddy currents circumscribed, on the basis of management in parameters of the sound adapter of the PC through the interface of a low level and mixer subsystem of Windows.


Введение. Концепция виртуализированных приборов, современных измерительных программно-аппаратных комплексов, базируется на максимальной виртуализации функций прибора не связанных с непосредственным получением информации от контролируемого объекта и среды [1]. Ее практическое воплощение стало возможным с появлением современных высокопроизводительных ЭВМ, позволяющих основной алгоритм работы измерительного устройства, в части первичной обработки сигнала, его преобразовании, сравнении со стандартом, накоплении результатов последовательных измерений и их статистическую обработку, вывод полученных результатов и управление функциями измерителя реализовать в виде специальной компьютерной программы, написанной на языке высокого уровня. Конечно, у таких приборов всегда открытой остается задача получения цифрового сигнала от первичного датчика для его последующей обработки программой – виртуальным прибором, однако для многих прикладных задач оказываются достаточными возможности встроенных практически в любую ЭВМ АЦП/ЦАП – звуковых карт. Необходимым условием такого применения звуковых карт являются низкие мощности, развиваемые в цепи первичного преобразователя – датчика и ограниченный звуковым диапазон используемых частот. Соблюдение этих условий, тем не менее, позволяет реализовывать большую гамму измерительных устройств, находящих применение в неразрушающем контроле различных параметров объектов и окружающей среды.

В задачах неразрушающего контроля особое место отводится методу вихревых токов (МВТ). МВТ базируется на возбуждении в контролируемом объекте или среде под воздействием переменного магнитного поля вихревых токов и одновременной регистрации вторичного поля – поля наведенных вихревых токов [2]. Величина вторичного поля сложным образом зависит от параметров контролируемого объекта и если должным образом выстроить математическую модель отклика первичного преобразователя на поле вихревых токов, оказывается возможным определять раздельно более десятка параметров объекта. Однако задача отклика первичного преобразователя в МВТ является не только математической, сводящейся к отысканию решения соответствующего уравнения для векторного потенциала в случае определенного значения обобщенного параметра, учитывающего свойства объекта, но и физической и инженерной – связанной с установлением оптимальных условий измерений и конструкции самого датчика, а при создании виртуализированного прибора к этой задаче добавляется еще и разработка специализированного программного обеспечения (ПО). Задачи, связанные с откликом первичного вихретокового преобразователя (ВТП), его конструктивными особенностями, зависимости сигналов ВТП от различных параметров контролируемых объектов, установлению оптимальных условий измерений и положения датчика относительно объекта и др., были решены нами ранее [3, 4].

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


Аппаратная реализация. Виртуализированные приборы, реализующие МВТ, представляют собой программно-аппаратные комплексы, построенные по следующей общей схеме (рис. 1).




Рис. 1. Структурная схема виртуализированного прибора МВТ


Комплекс состоит из трех основных частей: вихретокового преобразователя; звуковой карты и программного обеспечения, объединенного с устройствами АЦП/ЦАП в архитектуре персонального компьютера.

Цифровой сигнал от виртуального генератора поступает на ЦАП звуковой карты и преобразуется в аналоговый. Аналоговый сигнал, с выхода усилителя мощности (У) нагружен на генераторную катушку (Г) ВТП. Электромагнитное поле наводит ЭДС в приемной катушке (П) ВТП. ЭДС, усиленная микрофонным усилителем, поступает на вход АЦП звуковой карты. Оцифрованный сигнал поступает далее на блок обработки и управления ПО. Блок обработки и управления фиксирует уровень цифрового сигнала в условных единицах. Этот уровень принимается за уровень нуля и соответствует уровню напряжения на сигнальной катушке без объекта контроля. На индикатор выводится ноль, который соответствует нулевому значению измеренного параметра. В случае взаимодействия ВТП с объектом происходит изменение уровня и характеристик входного сигнала АЦП, как по отношению к нулевому сигналу, так и по отношению к сигналу на выходе ЦАП. В ходе предварительной калибровки прибора определяется вид функциональной зависимости между контролируемым параметром объекта и сигналом на входе АЦП, а также соответствующая аппаратная кривая, параметры которых заносятся в блок обработки и управления. Таким образом, сохраняя в составе программно-аппаратного комплекса основные компоненты базового прибора МВТ [2], виртуализированный вариант прибора реализует их в виде специализированных программных модулей (приложений): виртуального генератора, индикаторного интерфейса и блока обработки сигнала и управления программно-аппаратным комплексом.


Разработка ПО. Для реализации специализированных приложений нами был выбран интерфейс низкого уровня. В отличие от MS DOS, термин «низкоуровневое» в Windows означает не манипуляцию регистрами, прерываниями и каналами DMA, а просто самый элементарный уровень сервиса, обычно предоставляемого непосредственно драйвером устройства. В нашем случае таким устройством является звуковой адаптер (карта). Низкий уровень позволяет приложениям получить доступ к буферам, содержащим воспроизводимые или записываемые звуковые данные, работать с внутренней структурой файлов, содержащих звуковую информацию, а также использовать другие дополнительные возможности. К этому уровню обычно обращаются в тех случаях, когда ни один из более высоких уровней не позволяет достичь нужного результата. Как правило, низкий уровень используется для создания инструментальных средств и приложений, обрабатывающих звуковую информацию в реальном времени.

Для работы со звуковым адаптером в среде ОС Windows нет необходимости программировать на уровне портов ввода/вывода, прерываний и каналов прямого доступа. Весь необходимый интерфейс (высокого или низкого уровня) предоставляется приложению DLL-библиотекой mmsystem.dll. В mmsystem.dll определены функции низкого уровня (Low-Level Functions) и функции высокого уровня, представляющие собой интерфейс для управления средой (MCI).

Функции низкого уровня работают непосредственно с драйверами устройств ввода/вывода, такими, как драйверы звукового адаптера, джойстика или устройства ввода/вывода MIDI. Функции интерфейса MCI работают с драйверами устройств среды (например, драйверами устройств чтения компакт-дисков) и вызывают функции низкого уровня. В любом случае для работы с устройствами мультимедиа приложение должно вызывать ту или иную функцию, определенную в mmsystem.dll, вне зависимости от уровня интерфейса. Для разработки специализированного ПО нами также будут использоваться два стандартных драйвера звукового устройства: драйвер для ввода звука (Waveform Input Driver), драйвер для вывода звука (Waveform Output Driver ). Эти драйверы поставляются вместе со звуковым адаптером, устанавливаются после установки ОС и позволяют Windows обмениваться со звуковыми устройствами wav-файлами, а при установке Codec-ов и файлами других форматов. Для непосредственного доступа к буферам, содержащим звуковые данные, приложение будет использовать интерфейс низкого уровня, обеспечиваемый в mmsystem.dll несколькими функциями с префиксом имени wave (waveInOpen, waveOutOpen, waveOutWrite, waveAddBuffer и т.д.). Таким образом, создаваемое приложение будет иметь полный контроль над процессом воспроизведения/записи, так как оно само должно подготовить блоки данных в оперативной памяти.

В отличие от интерфейса MCI, где многие параметры воспроизведения/записи принимаются по умолчанию, интерфейс низкого уровня требует учета всех деталей этого процесса, позволяя получить большую гибкость и возможность работы со звуковыми данными в реальном времени, необходимые для реализации прибора МВТ.

Так как звуковое устройство, используемое нами как высокоскоростное АЦП/ЦАП в составе программно-аппаратного комплекса, в Windows может одновременно использоваться не только специализированным приложением, но и любой другой программой или самой ОС, требуется надежный контроль его переменных параметров в процессе работы виртуализированного прибора (любое из приложений, обращающихся к адаптеру через mmsystem.dll, может изменить параметры входного и выходного сигнала, уровень громкости записи/воспроизведения, частоты каналов и пр.). Эта задача является серьезным препятствием при реализации любых программно-аппаратных комплексов через встроенный звуковой адаптер ЭВМ, зачастую сводя на нет все усилия разработчиков. Однако в Windows все же имеется возможность контроля параметров звукового адаптера.

Базовый звуковой интерфейс (MME) включает три класса устройств - Wave (собственно цифровой звук), MIDI (синтезаторы и устройства управления в стандарте MIDI) и Mixer/Aux (микшеры и дополнительные устройства), отражая архитектуру типового адаптера, содержащего тракт цифрового звука, синтезатора и микшера, соединяющего выходы источников звука с входами приемных устройств. Микшеры, как вполне самостоятельные блоки звуковых адаптеров и виртуальных синтезаторов, также управляются в MME отдельной подсистемой, но в отличие от дополнительных устройств, в отношении которых из Windows доступно только управление громкостью, микшер позволяет осуществлять приложению коммутацию источников и приемников звука, регулировку уровня, панорамы, тембра и других параметров звука, смешивать несколько источников звука в единый звуковой сигнал, осуществлять контрольное прослушивания и корректировку сигнала, на одной или нескольких линиях.

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

Для обращения к органам управления и индикации микшера в приложении используются 32-разрядные идентификаторы, однозначно определяющие требуемый элемент внутри микшера. Поскольку микшерная подсистема является частью MME - она несколько похожа на подсистемы MIDI и Audio/Wave, однако это сходство касается лишь общей схемы построения интерфейса. В отличие от устройств типа Wave и MIDI, являющихся устройствами ввода/вывода данных, микшеры являются устройствами управления с принципиально иной структурой. Единственное, что объединяет все эти подсистемы - общая структура набора интерфейсных функций и способы уведомления приложения о событиях. В отличие от устройств типа Wave/MIDI, микшеры не требуют обязательного открывания перед использованием. Однако если приложение нуждается в уведомлении об изменениях состояния микшера, устройство микшера должно быть открыто в начале работы и закрыто после ее завершения.

Кроме возможности получения уведомлений, открывание микшера гарантирует его существование до завершения сеанса работы. Открытый микшер невозможно удалить из системы до тех пор, пока он не будет закрыт, а неоткрытый микшер может быть удален в любой момент времени. Вдобавок, доступ к открытому микшеру происходит по ключу, который не изменяется в течение всего сеанса работы, а к неоткрытом - по номеру, который также может смениться при установке или удалении других микшерных устройств. Также, в отличие от драйверов Wave/MIDI, драйверы микшерных устройств чаще всего допускают параллельное открывание микшеров несколькими процессами. Это связано, прежде всего с тем, что параллельное использование устройств Wave/MIDI требует от драйвера смешивания и разделения потоков данных, в то время как в отношении микшера это не требуется, и драйвер может ограничиться лишь рассылкой уведомляющих сообщений. При открывании микшера подсистема возвращает его идентификатор, или ключ (handle), по которому затем происходит обращение к микшеру. Ключи микшерных устройств имеют тип HMIXER.

Таким образом, в микшерной подсистеме может возникать только два типа событий - изменение состояния линии (line status change) и изменение состояния элемента управления (control status change). О наступлении каждого из этих событий подсистема уведомляет специализированную программу с тем, чтобы она обновила состояние органов управления и индикаторов на экране, либо сообщила пользователю о нарушении параметров настройки прибора, если обновление невозможно.

Все необходимые константы, типы, структуры и прототипы функций микшерной подсистемы Windows определяется в файле mmsystem.h, который по умолчанию включается в компиляцию из общего файла windows.h, дополнительные константы определены в файле mmreg.h, а интерфейсные функции импортируются из библиотеки winmm.lib.

С использованием описанного выше подхода управления звуковым адаптером, его настройками и связи со стандартными библиотеками ОС Windows нами было разработано универсальное ПО на основе модульного принципа для виртуализированных приборов, реализующих метод вихревых токов (рис. 2). Программное обеспечение разработано на языке высокого уровня С++ под операционную систему MS Windows 95/98/2000/XP и имеет интерактивный оконный интерфейс.

Разработанное программное обеспечение можно условно разделить на четыре функциональных блока (модуля):

- управление микшерной подсистемой Windows (Mixer.cpp),

- управление стандартным звуковым устройством Windows (Wave.cpp),

- функции для работы с файлами (dbBase.cpp),

- функции обработки сообщений элементов управления (Unit1.cpp).




Рис. 2. Функциональная схема универсального ПО


Функции каждого из модулей ПО могут вызывать встроенные функции среды разработки Borland C++ Builder v. 6.0, а так же API-функции Windows.

Литература:
  1. Ишков А.В., Дмитриев С.Ф. Современная концепция сопряжения измерительных приборов с ЭВМ. // Мат. Междунар. научн.-техн. конф. «Измерение, контроль, информатизация. ИКИ-2007». –Барнаул: Изд-во АГТУ, 2007. С.3-5.
  2. Герасимов В.Г., Клюев В.В., Шатерников В.Е. Методы и приборы электромагнитного контроля промышленных изделий. –М.: Изд-во Энергоатомиздат, 1983.
  3. Панов С.Г., Дмитриев С.Ф., Ишков А.В. Применение сверхминиатюрных вихретоковых преобразователей для неразрушающего контроля наноматериалов. // Горизонты образования. Вып.10. 2008. С. 246-249.
  4. Дмитриев С.Ф., Сагалаков А.М. // Труды Второй Междунар. научн.-техн. конф. «Экспериментальные методы в физике структурно-неоднородных конденсированных сред. ЭМФ 2001». –Барнаул: Изд-во АГУ, 2001.