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