AlgorithmsSmartForce/algorithm_51/body.puml

141 lines
4.0 KiB
Plaintext
Raw Normal View History

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