Автоматизации измерительного эксперимента
Большинство современных научных приборов предусматривает возможность управления через стандартные интерфейсы, а также создание специальных управляющих программ. Как правило, все приборы, допускающие внешнее управление либо совместную работу с другими приборами, поставляются с комплектом документации и программного обеспечения для разработчика – SDK (Software Development Kit). В него входит описание функций и типов данных, библиотеки функций и примеры простейших программ.
В зависимости от объема задачи, навыков программирования, наличия ПО (среды программирования, библиотек компонентов), программной поддержке производителя, создание управляющей программы может быть оптимально на разных уровнях программирования – от языков низкого уровня до визуальных сред программирования.
Для примера, вначале рассмотрим состав SDK, предлагаемого компанией Princeton Instruments для линейки монохроматоров Acton. SDK предоставляется с комплектом документации при поставке оборудования. Все функции работы с монохроматорами включены в библиотечный файл ARC_SpectraPro.dll. В описании сказано, что функции разбиты на несколько основных групп:
1. Communications: обмен информации с подключенными устройствами..
2. Information: получение информации о монохроматоре (модель, серийный номер, фокальная длина и пр.)
3. Wavelength: установка и считывание длины волны (в нм).
4. Grating: выбор дифракционной решетки и получение информации о текущей.
5. Diverter Mirrors: управление зеркалами, переключающими выходы.
6. Slits: контроль моторизированных щелей.
7. Filters: контроль встроенного моторизированного набора фильтров.
8. Advanced Functions: дополнительные функции для установки решеток и отладки прибора.
9. Functions for the controlling External Filter Wheel Controllers: контроль внешнего моторизированного набора фильтров.
Там же сказано, что работа с прибором должна проводиться по следующему алгоритму:
1. Получение номеров подключенных приборов вызовом функции ARC_Search_For_Mono.
2. Подключение нужного прибора с помощью функции ARC_Open_Mono.
3. Вызов пользователем необходимых функций. Все это время порт монохроматора должен быть подключен.
4. По окончании работы требуется вызвать функцию ARC_Close_Mono, чтобы закрыть порт.
Также в SDK приводятся простейшие примеры на трех языках – Delphi, Visual Basic и Visual C++ – с исходными, заголовочными и уже скомпилированными исполняемыми файлами.
Воспользовавшись указанным SDK, а также документацией по счетчику фотонов SR400, была разработана программа, обеспечивающая автоматизацию работы счетчика фотонов, регистрирующего импульсы с ФЭУ, установленного на монохроматор Acton 2550i. Задача довольно проста – спектрометр должен перестариваться на нужную длину волны, счетчик считать импульсы заданного уровня дискриминации, после чего необходимо наблюдать записанный спектр. Внешний вид программы и алгоритм работы приведены на рис. 24-25.
Рис. 24 Скриншот программы управления
Рис. 25 Алгоритмы программы управления
Полный список команд монохроматора и счетчика фотонов приведен в руководствах по программированию данных приборов – ARC_SpectraPro_dll.pdf и SR400m.pdf.
Теперь рассмотрим пример SDK для PC-осциллографа PicoScope 3206A. Для осциллографов этой серии выпускается SDK в виде архива PS3000sadk. Помимо заголовочных и библиотечных файлов *.h и *.dll, там также содержится набор примеров на разных языках: LabVIEW, MATLAB, для программы Microsoft Excel, и консольное приложение на С. Перечислять группы функций не будем, их описание приводится в файле руководства по программированию [23].
При многократной выборке сигнала вклад случайных шумов и помех уменьшается как , где N – число выборок (разумеется, существуют и другие помехи, которые могут не позволить увеличить соотношение с/ш до уровня, достаточного для обнаружения сигнала). Накопление кривых затухания люминесценции и последующее усреднения мы реализовали на базе этого осциллографа. Для этого на основе демонстрационного файла из SDK создана программа в среде программирования Visual C++. Программа предназначена для работы в консольном режиме, который упрощает процесс создания и тестирования программы. Это, а также то что она создана на чистом С, существенно повышает быстродействие (рис. 26).
Рис. 26 Рабочее окно программы накопления сигнала осциллографа PicoScope 3206A, созданной на базе примера-приложения работы с осциллографами PicoScope. Консольный режим, чистый С.
Программирование требует следующих обязательных разделов:
– инициализация (подключение устройства, загрузка параметров по-умолчанию),
–выбор режима работы, задание параметров для измерения,
– сбор данных,
– передача данных в компьютер, сохранение их на диск,
– отключение оборудования.
Непосредственно для автоматизации эксперимента компанией National Instruments разработан язык LabVIEW, позволяющий создать программу управления на уровне подключения блоков. Ввиду популярности языка, большое число приборов поставляется с библиотеками для него, равно как и наоборот – среда программирования уже снабжена библиотеками большинства приборов.
LabVIEW – это среда графического программирования для быстрого создания комплексных приложений в задачах измерения, тестирования, управления, автоматизации научного эксперимента и образования. Под концепцией графического программирования подразумевается в первую очередь последовательное соединение функциональных блоков на блок-диаграмме. В LabView есть два представления программы – в виде схемы компонентов с установленными связями, а также в виде приборной панели с размещенными компонентами. Добавление элемента на панель добавляет его и в схему. Применение такой среды упрощает создание программы, но при работе компьютере невысокой производительности может сказываться на быстродействии.
В среде программирования LabVIEW была создана программа накопления сигнала для осциллографа Tektronix TDS 2022B, это хороший пример, показывающий процесс создания программы на языке LabVIEW. На рисунках 27 и 28 приведены примеры двух представлений для программы к осциллографу.
Рис. 27 Схема компонентов программы управления для осциллографа Tektronix в среде установки связей между блоками
Рис. 28 Размещение элементов приборной панели программы управления для осциллографа Tektronix
Вопросы для самопроверки:
· На языках какого уровня возможно создание программ для автоматизации эксперимента?
· В чем должна заключаться процедура инициализации прибора?
· Что такое SDK?
· Какие, на ваш взгляд, могут быть недостатки у программирования в среде LabView?