diff --git a/algorithm_51/body.puml b/algorithm_51/body.puml
index 3f753ad..e83d5cd 100644
--- a/algorithm_51/body.puml
+++ b/algorithm_51/body.puml
@@ -1,96 +1,87 @@
@startuml
-|#428743|МОСТ|
-:Выполняет опрос дальномеров
-по внутренним протоколам
+header
+ИТ-020-21
+end header
+
+title Алгоритм 51. Проводит диагностику сенсорной системы
+
+legend left
+
+ ПЧ: UFC_Application
+ Контроллер ТСК: аваы
+
+endlegend
+
+start
+floating note left:
+
+split
+
+group МОСТ ПЭ #LightGrey
+:Выполняет опрос дальномеров по внутренним протоколам
взаимодействия;
-split
-if (Есть связь с дальномером 1?) then (yes)
- if (Данные валидны?) then (yes)
+:Подготовить данные для отправки:
+* для каждого дальномера в качестве данных установить 0;
+
+repeat
+ if (Данные валидны?) then (да)
:Поместить номер дальномера
и данные с него в посылку
для отправки в ПО ПЧ,
согласно протоколу
взаимодействия;
- else (no)
+ else (нет)
:Поместить номер дальномера
в посылку для отправки
в ПО ПЧ, в качестве данных
отправить 0xffffff;
endif
-else (no)
- :Поместить номер дальномера
- в посылку для отправки в ПО ПЧ,
- в качестве данных отправить 0;
-endif
-split again
-if (Есть связь с дальномером 2?) then (yes)
- if (Данные валидны?) then (yes)
- :Поместить номер дальномера
- и данные с него в посылку
- для отправки в ПО ПЧ,
- согласно протоколу
- взаимодействия;
- else (no)
- :Поместить номер дальномера
- в посылку для отправки
- в ПО ПЧ, в качестве данных
- отправить 0xffffff;
- endif
-else (no)
- :Поместить номер дальномера
- в посылку для отправки в ПО ПЧ,
- в качестве данных отправить 0;
-endif
+repeat while(Обработаны данные всех дальномеров?)
-split again
-if (Есть связь с дальномером 3?) then (yes)
- if (Данные валидны?) then (yes)
- :Поместить номер дальномера
- и данные с него в посылку
- для отправки в ПО ПЧ,
- согласно протоколу
- взаимодействия;
- else (no)
- :Поместить номер дальномера
- в посылку для отправки
- в ПО ПЧ, в качестве данных
- отправить 0xffffff;
- endif
-else (no)
- :Поместить номер дальномера
- в посылку для отправки в ПО ПЧ,
- в качестве данных отправить 0;
-endif
-end split
+:Отправить данные по протоколу **DS14.80029-01 95 01**;
-:Отправить данные;
+end group
-|#f56767|ПЧ|
-:Принять данные с платы МОСТ;
-:Сформировать датаграмму для отправки в Sitara;
-:Отправить данные в Sitara;
+group ПЧ ПЭ #LightGrey
+:Принять данные по протоколу **DS14.80029-01 95 01**;
-|#458ff7|Контроллер ТСК|
-:Распаковать датаграмму;
-
-split
-:Определить наличие связи
-с дальномером, корректность
-данных;
-
-if (Данные дальномера корректны?) then (да)
- :Сенсорная система
- исправна;
- stop
+if (Таймаут обновления счётчика) then (да)
+ :Сформировать **отказ** приема данных платы МОСТ;
+elseif (Интегральный признак отказа) then (да)
+ :Сформировать общий **отказ** платы МОСТ;
else (нет)
- :Записать в журнал, что
- произошла ошибка;
endif
+:Обновить данные дальномеров в датаграмме протокола **EtherCat**;
+
+end group
+
+group Контроллер ТСК: ядро реального времени #LightGrey
+
+:Обновить данные от ПЧ через **EtherCat**;
+
+:Осуществить преобразование данных дальномеров в физические величины;
+
+if (Данные дальномера в заданном диапазоне?) then (да)
+
+elseif (Дальномер показывает "0"?) then (да)
+ :Сформировать **отказ** дальномера;
+
+else
+ :Сформировать **признак** данные вне диапазона;
+
+endif
+
+end group
+
+
split again
+
+group Контроллер ТСК: верхний уровень #LightGrey
+
:Отправить Ping по IP
адресу камеры компьютерного
зрения для определения
@@ -103,32 +94,48 @@ if (Есть ответ от камеры?) then (да)
областям поиска;
if (Координаты получены?) then (да)
- :Сенсорная система
- исправна;
- stop
+
else (нет)
- |#458ff7|Контроллер ТСК|
:Записать в журнал, что
произошла ошибка;
endif
else (нет)
- |#458ff7|Контроллер ТСК|
:Записать в журнал, что
произошла ошибка;
endif
+
+end group
+
end split
-|#fc9738|Контроллер робота|
+group Контроллер ТСК: верхний уровень #LightGrey
+
+if (Есть сообщения о ошибках?) then (да)
+ :Сформировать признак
+ "Сенсорная система **не исправна**";
+
+else (нет)
+ :Сформировать признак
+ "Сенсорная система **исправна**";
+
+endif
+
+end group
+
+group Пульт ТСК #LightGrey
+
+:Отображать статус сенсорной системы;
+
:Сигнализировать в ЧМИ
о наличии проблем с сенсорной
системой с указанием кода
ошибки и понятного описания
проблемы;
-:Сенсорная система
-не исправна;
+end group
+
end
@enduml
\ No newline at end of file
diff --git a/algorithm_56/test.puml b/algorithm_56/test.puml
new file mode 100644
index 0000000..8eab894
--- /dev/null
+++ b/algorithm_56/test.puml
@@ -0,0 +1,59 @@
+@startuml
+
+header
+ИТ-020-31?
+end header
+
+title Алгоритм 56. Проводит диагностику платы МОСТ
+
+legend left
+
+ Индекс 0: Ток и напряжение
+ Индекс 1: Температура платы МОСТ и статус
+ Индекс 2: Дальность по дальномеру 1
+ Индекс 3: Дальность по дальномеру 2
+ Индекс 4: Дальность по дальномеру 3
+
+endlegend
+
+start
+
+repeat
+
+:Принять данные по протоколу **DS14.80029-01 95 01**;
+
+if (Контрольная сумма совпадает с расчетной?) then (да)
+
+ :Обновить данные об усилии;
+ :Обновить данные по индексу протокола;
+ :Обновить данные значение счётчика данных;
+
+ if (Отказ линии сброса) then (да)
+ :Сформировать отказ
+ линии сброса
+ платы МОСТ;
+ elseif (Интегральный признак отказа) then (да)
+ :Сформировать общий отказ
+ платы МОСТ;
+
+ elseif (Таймаут обновления счётчика) then (да)
+ :Сформировать отказ
+ приема данных
+ платы МОСТ;
+ elseif (Скорость ЭМП более порогового значения) then (да)
+
+ if (Усилие равно "0") then (да)
+ :Сформировать отказ
+ обрыва датчика усилия;
+ endif
+ endif
+
+else (нет)
+
+ :Отбросить данные, данные не обновились;
+
+endif
+
+repeat while(Таймаут на линии данных?)
+
+@enduml
\ No newline at end of file
diff --git a/alogrithm_stop/.$algorithm_stop.drawio.bkp b/alogrithm_stop/.$algorithm_stop.drawio.bkp
new file mode 100644
index 0000000..6c2a8fb
--- /dev/null
+++ b/alogrithm_stop/.$algorithm_stop.drawio.bkp
@@ -0,0 +1,223 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/alogrithm_stop/algorithm_stop.drawio b/alogrithm_stop/algorithm_stop.drawio
new file mode 100644
index 0000000..f762637
--- /dev/null
+++ b/alogrithm_stop/algorithm_stop.drawio
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/alogrithm_stop/Алгоритм 55.drawio b/alogrithm_stop/Алгоритм 55.drawio
new file mode 100644
index 0000000..9b3a618
--- /dev/null
+++ b/alogrithm_stop/Алгоритм 55.drawio
@@ -0,0 +1,771 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+