Глава 4. Автоматизация спектроскопического эксперимента
Напомним, что Python – интерпретируемый язык, и создавать на нём критичные ко времени выполнения функции совершенно не рационально. Ведь при решении реальных задач для работы с периферийным оборудованием необходимо получать высокую производительность и функциональность, часто основанную на обработке прерываний. В этом плане одним из вариантов является соединение программы на Python с предварительно разработанными и оптимизированными библиотеками, написанными, например, на С / С++.
Более логичным вариантом разработки автоматизированной системы является вынесение наиболее критичных по быстродействию алгоритмов в периферийные микропроцессорные устройства либо микрокомпьютеры (SOC – System on a Chip), которые будут непосредственно взаимодействовать с датчиками и управляющими устройствами в режиме реального времени. В таком случае главная программа будет выполнять функции распорядителя задач и сбора данных. Такие функции очень хорошо подходят для реализации на языке Python.
Кроме того, далеко не всегда программа управления комплексом экспериментального оборудования, создаваемая в стенах научной лаборатории, должна быть выведена на уровень коммерческого программного продукта. Скорее наоборот, при тестировании различных измерительных методик приходится постоянно совершенствовать алгоритмы управления оборудованием, подключать новые устройства, переписывать ранее разработанные программы. Наличие простых способов отладки программ, удобное представление результатов и быстрота разработки и модификации программ – эти типичные для Python преимущества дают основание считать этот язык весьма привлекательным для решения задач автоматизации эксперимента.
Программа управления люминесцентным комплексом в минимальном варианте реализует функции управления положением дифракционной решётки монохроматора МДР -23 и получением данных с фотоэлектронного умножителя. То есть, задача программы состоит в измерении спектра свечения какого-либо источника излучения. Для этого необходимо последовательно выводить монохроматор на заданную длину волны и для каждой длины волны измерять соответствующую интенсивность излучения, прошедшего через оптическую схему монохроматора. Покажем возможность построения полноценной управляющей программы, работающей в Windows-терминале (интерфейс командной строки). Поскольку программа достаточно большая, рассмотрим далее лишь ключевые моменты кода.
Пользовательский интерфейс представляет собой меню выбора функций. Представленный ниже фрагмент (файл arti.py) определяет каркас программы, которая может работать как при непосредственном взаимодействии с экспериментальной установкой, так и на любом другом компьютере, если в этом будет необходимость.
В первую очередь следует отметить, что данная программа не будет работать в оболочке IDLE Python в связи с использованием библиотеки cursesmenu, с помощью которой легко создавать интерактивное меню прямо в консоли командной строки. Для работы с данной библиотекой под Windows дополнительно потребуется установить пакет windows-curses. Поэтому для редактирования текста программы в данном случае удобно использовать универсальные редакторы типа Atom либо Microsoft Code, а запуск программы следует осуществлять в режиме командной строки:
python arti.py
Рабочим каталогом по умолчанию предполагается каталог, где находится файл arti.py, относительно которого строятся все пути к файлам, читаемым или сохраняемым программой.
Если вы заметили неточность, ошибку или хотите поделиться своими мыслями по поводу статьи - мы рады обратной связи. Давайте вместе сделаем ресурс лучше!