Программа взаимодействия с приводами, bta_sew_can, работает на компьютере acs1 и является клиентом для главной управляющей программы bta_control.
Главной функцией программы bta_sew_can является преобразование скоростей, которые главная управляющая программа расчитывает для выдачи на ПКН, в обороты в минуту для вала соответствующего двигателя и передача этих значений в контроллер 1 (наведения A), контроллер 2 (ведения A), контроллер 3 (Z) в соответствии с текущим режимом работы телескопа.
Обмен с контроллерами выполняется через CAN-интерфейс (карта PCL841 фирмы Advantech). Для этого в систему адаптирован универсальный драйвер простых CAN-карт can4linux-2.1 фирмы Port (http://www.port.de).
Программа bta_sew_can после запуска делится на 5 взаимосвязанных процессов. Один ведает обменом по CAN-шине, три управляют через него каждый своим SEW-контроллером, и еще один обеспечивает к ним прежний сетевой UDP-интерфейс (для SEWpanel).
При остановленном телескопе программа держит все контроллеры в заблокированном состоянии. Конкретный контроллер разблокируется и начинает принимать данные управления скоростью только на время включения соответствующего режима работы телескопа (режим наведение, режим ведение или тест). Одновременно оба контроллера A никогда не должны разблокироваться.
В канале управления контроллерами реализованы тайм - ауты по обрыву связи. Таким образом, с одной стороны, программа bta_sew_can определяет включено ли питание контроллера, а с другой - контроллеры следят за наличием связи с управляющим компьютером и при ее обрыве останавливают привода.
Дополнительно программа на каждом такте управления считывает три стандартных параметра из контроллера. Это статус контроллера, измеряемая скорость вала и ток в обмотках двигателя. По внешней команде программа также может считать или записать один дополнительный параметр.
Обратно, в главную управляющую программу (bta_control), передаются только сообщения для оператора (об ошибочных ситуациях или о состоянии контроллеров) и команда останов телескопа в случае аварийной ситуации.
Поскольку сейчас в программном интерфейсе пока нет специальных команд и информации для работы с новыми приводами, то в программу bta_sew_can добавлен специальный сетевой интерфейс для управления контроллерами с удаленного компьютера. Через него можно записывать и считывать параметры конкретного контроллера. Ответная часть расположена на компьютере рабочего места оператора acs5 и состоит из двух программ. Это собственно сетевой обмен, написанный на языке C, и интерфейс (экранная панель), написанный на языке Tcl/Tk. Внешне они выглядят как одна программа SEWpanel, загружаемая через иконку на рабочем столе оператора.
Для представления графиков использована программа xmoda
(ModaGraph), использовавшаяся для индикации графиков ветра и
подвески.