@startuml
header
ИТ-020-21
end header
title Алгоритм 51. Проводит диагностику сенсорной системы
legend left
ПЧ: UFC_Application
Контроллер ТСК: аваы
endlegend
start
floating note left:
split
group МОСТ ПЭ #LightGrey
:Выполняет опрос дальномеров по внутренним протоколам
взаимодействия;
:Подготовить данные для отправки:
* для каждого дальномера в качестве данных установить 0;
repeat
if (Данные валидны?) then (да)
:Поместить номер дальномера
и данные с него в посылку
для отправки в ПО ПЧ,
согласно протоколу
взаимодействия;
else (нет)
:Поместить номер дальномера
в посылку для отправки
в ПО ПЧ, в качестве данных
отправить 0xffffff;
endif
repeat while(Обработаны данные всех дальномеров?)
:Отправить данные по протоколу **DS14.80029-01 95 01**;
end group
group ПЧ ПЭ #LightGrey
:Принять данные по протоколу **DS14.80029-01 95 01**;
if (Таймаут обновления счётчика) then (да)
:Сформировать **отказ** приема данных платы МОСТ;
elseif (Интегральный признак отказа) then (да)
:Сформировать общий **отказ** платы МОСТ;
else (нет)
endif
:Обновить данные дальномеров в датаграмме протокола **EtherCat**;
end group
group Контроллер ТСК: ядро реального времени #LightGrey
:Обновить данные от ПЧ через **EtherCat**;
split
:Осуществить преобразование данных дальномеров в физические величины;
if (Дальномер в диапазоне?) then (да)
elseif (Дальномер показывает "0"?) then (да)
:Сформировать **отказ** дальномера;
else
:Сформировать **признак** данные вне диапазона;
endif
split again
:Фиксация отказов платы МОСТ от ПЧ;
endsplit
end group
split again
group Контроллер ТСК: верхний уровень #LightGrey
:Отправить Ping по IP
адресу камеры компьютерного
зрения для определения
наличия связи;
if (Есть ответ от камеры?) then (да)
:Отправить запрос в камеру
для получения координат
кромки детали по настроенным
областям поиска;
if (Координаты получены?) then (да)
else (нет)
:Записать в журнал, что
произошла ошибка;
endif
else (нет)
:Записать в журнал, что
произошла ошибка;
endif
end group
end split
group Контроллер ТСК: верхний уровень #LightGrey
if (Есть сообщения о ошибках?) then (да)
:Сформировать признак
"Сенсорная система **не исправна**";
else (нет)
:Сформировать признак
"Сенсорная система **исправна**";
endif
end group
group Пульт ТСК #LightGrey
:Отображать статус сенсорной системы;
:Сигнализировать в ЧМИ
о наличии проблем с сенсорной
системой с указанием кода
ошибки и понятного описания
проблемы;
end group
end
@enduml