next up previous contents
Next: Сетевая архитектура АСУ БТА Up: Общая архитектура организации расширяемой Previous: Общая архитектура организации расширяемой

Межпрограммный интерфейс.

Для взаимодействия между программами - клиентами и главной управляющей программой разработан специальный межпрограммный интерфейс ( программная шина). Он состоит из двух частей - блока общей (разделяемой) памяти и очередей сообщений. Они создаются при старте главной управляющей программы и используются программами - клиентами. Через блок общей памяти сервер распространяет информацию о текущем состоянии системы управления. Это может быть:

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

1.
Канал команд наблюдателя. Через него принимаются команды ввода координат и оперативного управления телескопом (коррекция телескопа, управление приводами фокусировки и поворотного стола).
2.
Канал команд удаленного оператора. Через него принимаются команды разрешенные наблюдателю и команды запуска и останова телескопа.
3.
Канал команд главного оператора. Через него принимаются все команды.

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

Максимальный темп выборки команд из очередей в главной управляющей программе - до 100 команд в секунду (10 раз в секунду по 10 команд). Сначала проверяется наличие команды Останов телескопа в канале главного оператора, а затем выбираются все прочие команды из этого канала. Потом проверяется наличие команды Останов телескопа в канале удаленного оператора и все прочие команды из этого канала. Последним проверяется канал команд наблюдателя. Основные типы команд: