next up previous contents
Next: Программа управления кареткой облучателя Up: Программное обеспечение Previous: Ядро операционной системы, драйвер

Программа регистрации данных

Программа rr выполняет следующие функции:

Под синхронизацией системных часов здесь подразумевается процедура аппаратно-программной начальной установки значения программного счетчика внутри драйвера KAMAK. Необходимость этой процедуры вызвана тем, что в комплексе сбора и управления не предусмотрено наличие высокоточных аппаратных часов, а получение сетки ``звездного" времени обеспечивается централизованной службой РАТАН-600 (Егорова и др. 1980). Процедура представляет собой цикл из регистрации двух последовательных ``минутных" импульсов и серии импульсов номера текущей минуты (``пачка") между ними. Начало второго минутного импульса служит относительным началом отсчета системного "звездного" времени. Программа rr при запуске с помощью функции ioctl() проверяет признак установки времени и если необходимо вызывает ioctl() синхронизации.

Основным каналом управления сбором наблюдательных данных является файл пакета заданий, формируемый программным диспетчером из комплекса средств подготовки наблюдений (см. гл. 2). Программа rr периодически проверяет этот файл на модификацию и находит ближайшее по времени задание, следуемое к исполнению. Пропущенные по времени задания исключаются из дальнейшего рассмотрения и помечаются в файле для уведомления диспетчера. Также предусмотрена метка для уже исполняемого задания. На время записи файл блокируется от модификации другими программами. Аналогично, если при чтении файл содержит признак блокировки, программа ждет его освобождения. В качестве признака блокировки принят последний бит атрибутов файла, тем самым практически исключена зависимость от типа файловой системы.

Запуск программы управления кареткой - carr, производится с помощью функции system(), в текстовые параметры которой заносятся следующие данные:

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

Процедура калибровки каждого канала радиометра является неотъемлемой частью каждого наблюдения (Берлин и др. 1984). Автором совместно с Ерухимовым Б.Л. была разработана методика устойчивой оценки калибровочных сигналов, подробно описанная в работе (Витковский и др. 1988). В данной версии системы сбора повторен алгоритм реализованный в предыдущей версии. При этом процедура калибровки должна удовлетворять двум противоречивым требованиям. С одной стороны, длительность калибровочного сигнала (ступеньки) должна быть достаточно большой для обеспечения достоверной оценки уровня калибровки, т.е. усиления канала. С другой стороны, увеличение длительности калибровки повышает вероятность проявления импульсных помех и тренда. Алгоритм выглядит следующим образом:

Такой алгоритм позволяет, с одной стороны, практически полностью подавить влияние импульсных помех на точность оценки, при условии длительности импульса меньше половины времени включения генераторов. С другой стороны, исключается линейный тренд на масштабе тройной ширины указанного интервала.

Включение режима записи, как и калибровка, осуществляется по программному счетчику ``звездного" времени. При этом момент первого отсчета данных соответствует тому моменту времени, который получается в результате предрасчета из эфемерид ``источника" минус величина интервала до этого момента, вводимых наблюдателем при составлении пакета заданий (см. раздел 2.3). Максимальная задержка между моментами времени опроса соседних каналов складывается в основном из времени переключения мультиплексора каналов и времени преобразования в АЦП, что в данной системе сбора не превышает 20 мкс. Учитывая то, что момент эфемеридной ``привязки" координат перерассчитывается на каждое наблюдение, такой способ записи позволяет в некоторой мере компенсировать ``уход" видимого места источников, интересных наблюдателю, и проводить непосредственное сложение записей за цикл наблюдений продолжительностью в месяц и более (Ерухимов и др. 1990). Запись осуществляется в файл-``заготовку", предварительно прописанную значением -32767. Структура записи имеет следующий вид:
1-ый отсчет 1-го канала, 1-ый отсчет 2-го канала,..., 1-ый отсчет N-го канала,
2-ой отсчет 1-го канала, 2-ой отсчет 2-го канала,..., 2-ой отсчет N-го канала,
...,
M-ый отсчет 1-го канала, M-ый отсчет 2-го канала,..., M-ый отсчет N-го канала.

Каждый отсчет представляет собой шестнадцатиразрядное знаковое целое. При таком расположении данных в случае аварийного обрыва наблюдения можно найти конец уже записанного интервала. Кроме бинарного массива данных на диск заносится текстовая ``шапочка" сопроводительных данных, которая помещается в начале файла к концу наблюдений. Формат ``шапочки" описан в работе (Верходанов и др. 1988).

Процедура сетевого копирования вызывается сразу по завершении записи или второй калибровки, если она предусмотрена заданием режима наблюдений. С помощью функции system() запускается командный файл циклического копирования всех готовых к архивизации файлов с наблюдательными даннымы. Внутри цикла командного файла исполняется специальная программа - fcpa, осуществляющая копирование данных по протоколу FTP 4.13 в архивную область жесткого диска сервера РАТАН-600. Программа написана с использованием универсальной FTP - библиотеки (см. приложения в конце диссертации). В командном файле анализируется код возврата каждой процедуры копирования, и при ее успешном выполнении исходный файл удаляется. Если по каким-либо причинам копирование не выполняется, например, сервер остановлен, нет места в архивной области или отсутствует связь, то процесс копирования просто задерживается. На локальном жестком диске обычно предусмотрено достаточно места для временной буферизации данных. Такая организация взаимодействия локальной машины и сервера обуславливает значительно большую надежность сбора по сравнению с бездисковой двухуровневой архитектурой (Витковский и др. 1988), когда останов сервера приводил к фатальному результату. Более высокая надежность обеспечивается и по сравнению с чисто локальными комплексами сбора, поскольку нет необходимости в длительном хранении первичных данных на локальном компьютере в подвижном облучателе, где практически невозможно обеспечить качественное архивное сопровождение наблюдательного материала.



Vladimir Chernenkov
2000-10-09