AlgorithmsSmartForce/algorithm_51/body.puml

141 lines
4.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@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