149 lines
4.1 KiB
Plaintext
149 lines
4.1 KiB
Plaintext
@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**;
|
||
|
||
split
|
||
|
||
:Осуществить преобразование данных дальномеров в физические величины;
|
||
|
||
if (Дальномер в диапазоне?) then (да)
|
||
|
||
elseif (Дальномер показывает "0"?) then (да)
|
||
:Сформировать **отказ** дальномера;
|
||
|
||
else
|
||
:Сформировать **признак** данные вне диапазона;
|
||
|
||
endif
|
||
|
||
split again
|
||
|
||
:Фиксация отказов платы МОСТ от ПЧ;
|
||
|
||
endsplit
|
||
|
||
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 |