Вызов механика

В проекте предусмотрено два режима вызова механиков "ручной" и "автоматический".

Ручной вызов механиков

Для ручного выхова механиков на пульте ЦПУ расположены следующие органы управления: # - двухпозиционныцй перпеключатель "Главный механик" - "Второй электромеханик". # - кнопка "Вызов"

Помимо это в каютах главного механика и второй электромеханика, расположены звонки и кнопки "Подтверждения вызова".

Логику работы см. Caller

Ручной вызов механиков

Автоматический выхов механиков (согласно регистру) осуществляется в случае если в течение заданного времени (обычно 2 минуты) после срабатывания АПС, не произошло её квитирование в ЦПУ. При этом, в текущей реализации, происходит включение звонков сразу и у главного механика и второго электромеханика.

Программная реализация вызова механиков

Программная реализация построена на базе объектов класса Caller. Фактически в проекте получается три "аббонента" (объекта):
  1. - "вызов главного механика"
  2. - "вызов второго электромеханика"
  3. - "автоматический вызов"

Т.к. для ручного вызова (главного и второго механиков) основные органы управления расположены на пульте ЦПУ, то принято решение создавать объекты (процесс) на контроллере tscpu. (см. mcaller.cc).

Для автоматического вызова все необхоимые датчики и органы управления, подключены к шкафу ШУ ТС1, поэтому объект (процесс) запускается на контроллере ts1. (см. automcaller.cc).

Все настройки по каждому объекту расположены в configure.xml. Секции <MainMechanic> , <SecondMechanic>. <AutoMCaller>.

Класс Caller реализует логику "вызова" для одной группы кнопок и звонков. Поэтому для каждого "адресата" (главнй механик, помошник и т.п.) создаётся свой объект класса Caller.

Специфика автоматического вызова механиков

Т.к. для автоматического вызова, используется универсальный класс Caller, требующий наличия кнопки "выбор". То создан специальный искуственный датчик Select_AutoMCaller_FS, который всегда равен "1". Вызов производится по датчику "Сработала АПС" (APS_FS) и идёт сразу в два места (в каюты механиков).

Одновременное управление звонками

При данной реализации получается, что одними и теми же звонками необходимо управлять сразу двум процессам "ручному вызову" и "автоматическому вызову". Для "разруливания" этой ситуации используется специальный класс CommonHorn. Для каждого объекта созданы искуственные "звонки" MainMech_Horn1_C, MainMech_Horn2_C, SecondMech_Horn1_C, SecondMech_Horn_C. Т.е. каждый объект класса Caller управляет своим "звонком". Эти искуственные звонки по логике "ИЛИ" объединяемые объектом класса CommonHorn - MainMech_Horn и SecondMech_Horn (см. automcaller.cc), выставляющим "реальный" выход.

Документация по uniset-algorithms. Последние изменения: Fri Dec 12 14:27:17 2014. Создано системой  doxygen 1.5.9