feat(SF-429): Доработка всмопомогательных алгоритмов

This commit is contained in:
Леонид Титов 2024-08-28 17:35:57 +03:00
parent 4c9edff572
commit 5038e3ccdd
5 changed files with 1299 additions and 78 deletions

View File

@ -1,96 +1,87 @@
@startuml @startuml
|#428743|МОСТ| header
:Выполняет опрос дальномеров ИТ-020-21
по внутренним протоколам end header
взаимодействия;
title Алгоритм 51. Проводит диагностику сенсорной системы
legend left
ПЧ: UFC_Application
Контроллер ТСК: аваы
endlegend
start
floating note left:
split split
if (Есть связь с дальномером 1?) then (yes)
if (Данные валидны?) then (yes) group <b>МОСТ ПЭ</b> #LightGrey
:Выполняет опрос дальномеров по внутренним протоколам
взаимодействия;
:Подготовить данные для отправки:
* для каждого дальномера в качестве данных установить 0;
repeat
if (Данные валидны?) then (да)
:Поместить номер дальномера :Поместить номер дальномера
и данные с него в посылку и данные с него в посылку
для отправки в ПО ПЧ, для отправки в ПО ПЧ,
согласно протоколу согласно протоколу
взаимодействия; взаимодействия;
else (no)
:Поместить номер дальномера
в посылку для отправки
в ПО ПЧ, в качестве данных
отправить 0xffffff;
endif
else (no)
:Поместить номер дальномера
в посылку для отправки в ПО ПЧ,
в качестве данных отправить 0;
endif
split again
if (Есть связь с дальномером 2?) then (yes)
if (Данные валидны?) then (yes)
:Поместить номер дальномера
и данные с него в посылку
для отправки в ПО ПЧ,
согласно протоколу
взаимодействия;
else (no)
:Поместить номер дальномера
в посылку для отправки
в ПО ПЧ, в качестве данных
отправить 0xffffff;
endif
else (no)
:Поместить номер дальномера
в посылку для отправки в ПО ПЧ,
в качестве данных отправить 0;
endif
split again
if (Есть связь с дальномером 3?) then (yes)
if (Данные валидны?) then (yes)
:Поместить номер дальномера
и данные с него в посылку
для отправки в ПО ПЧ,
согласно протоколу
взаимодействия;
else (no)
:Поместить номер дальномера
в посылку для отправки
в ПО ПЧ, в качестве данных
отправить 0xffffff;
endif
else (no)
:Поместить номер дальномера
в посылку для отправки в ПО ПЧ,
в качестве данных отправить 0;
endif
end split
:Отправить данные;
|#f56767|ПЧ|
:Принять данные с платы МОСТ;
:Сформировать датаграмму для отправки в Sitara;
:Отправить данные в Sitara;
|#458ff7|Контроллер ТСК|
:Распаковать датаграмму;
split
:Определить наличие связи
с дальномером, корректность
данных;
if (Данные дальномера корректны?) then (да)
:Сенсорная система
исправна;
stop
else (нет) else (нет)
:Записать в журнал, что :Поместить номер дальномера
произошла ошибка; в посылку для отправки
в ПО ПЧ, в качестве данных
отправить 0xffffff;
endif 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 split again
group <b>Контроллер ТСК: верхний уровень</b> #LightGrey
:Отправить Ping по IP :Отправить Ping по IP
адресу камеры компьютерного адресу камеры компьютерного
зрения для определения зрения для определения
@ -103,32 +94,48 @@ if (Есть ответ от камеры?) then (да)
областям поиска; областям поиска;
if (Координаты получены?) then (да) if (Координаты получены?) then (да)
:Сенсорная система
исправна;
stop
else (нет) else (нет)
|#458ff7|Контроллер ТСК|
:Записать в журнал, что :Записать в журнал, что
произошла ошибка; произошла ошибка;
endif endif
else (нет) else (нет)
|#458ff7|Контроллер ТСК|
:Записать в журнал, что :Записать в журнал, что
произошла ошибка; произошла ошибка;
endif endif
end group
end split end split
|#fc9738|Контроллер робота| group <b>Контроллер ТСК: верхний уровень</b> #LightGrey
if (Есть сообщения о ошибках?) then (да)
:Сформировать признак
"Сенсорная система **не исправна**";
else (нет)
:Сформировать признак
"Сенсорная система **исправна**";
endif
end group
group <b>Пульт ТСК</b> #LightGrey
:Отображать статус сенсорной системы;
:Сигнализировать в ЧМИ :Сигнализировать в ЧМИ
о наличии проблем с сенсорной о наличии проблем с сенсорной
системой с указанием кода системой с указанием кода
ошибки и понятного описания ошибки и понятного описания
проблемы; проблемы;
:Сенсорная система end group
не исправна;
end end
@enduml @enduml

59
algorithm_56/test.puml Normal file
View File

@ -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

View File

@ -0,0 +1,223 @@
<mxfile host="Electron" modified="2024-08-27T13:30:09.629Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.4.8 Chrome/124.0.6367.207 Electron/30.0.6 Safari/537.36" etag="0SykBB_4em_9wa5-4Eww" version="24.4.8" type="device">
<diagram id="U2dJCsa7sE4v5P5Dxrlu" name="Page-1">
<mxGraphModel dx="2388" dy="1680" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="1654" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="59" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="800" y="259" width="240" height="1000" as="geometry" />
</mxCell>
<mxCell id="58" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="540" y="259" width="190" height="1000" as="geometry" />
</mxCell>
<mxCell id="57" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="100" y="259" width="360" height="1000" as="geometry" />
</mxCell>
<mxCell id="2" value="Начало" style="rounded=1;whiteSpace=wrap;html=1;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="220" y="199" width="160" height="40" as="geometry" />
</mxCell>
<mxCell id="3" value="Клещи сжаты, &lt;br&gt;толщина заготовки корректна, усилие набрано корректное" style="html=1;shape=mxgraph.infographic.ribbonSimple;notch1=0;notch2=20;align=center;verticalAlign=middle;fontSize=14;fontStyle=0;fillColor=#FFFFFF;whiteSpace=wrap;direction=west;" parent="1" vertex="1">
<mxGeometry x="415" y="120" width="210" height="80" as="geometry" />
</mxCell>
<mxCell id="5" value="Выставлен триггер &lt;br&gt;на сварку с током?" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="220" y="359" width="160" height="50" as="geometry" />
</mxCell>
<mxCell id="11" value="Запрашивает у робота id программы и индекс сварочной точки" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="215" y="439" width="170" height="80" as="geometry" />
</mxCell>
<mxCell id="13" value="Получает запрос" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="574" y="439" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="14" value="Отправляет индекс сварочной точки и id программы" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="569" y="559" width="130" height="80" as="geometry" />
</mxCell>
<mxCell id="15" value="Запрашивает номер сварочной программы из локальной БД" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="235" y="559" width="130" height="80" as="geometry" />
</mxCell>
<mxCell id="16" value="Отправляет номер сварочной программы в сварочный контроллер" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="235" y="679" width="130" height="80" as="geometry" />
</mxCell>
<mxCell id="17" value="Получает номер сварочной программы" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="847" y="679" width="130" height="80" as="geometry" />
</mxCell>
<mxCell id="18" value="Выполнение сварочной программы" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="847" y="917.5" width="130" height="83" as="geometry" />
</mxCell>
<mxCell id="19" value="Завершено?" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
<mxGeometry x="852" y="1040" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="20" value="Сварка началась?" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
<mxGeometry x="852" y="819" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="21" value="Анализ и корректировка параметров в процессе сварки" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="235" y="919" width="130" height="80" as="geometry" />
</mxCell>
<mxCell id="23" value="Анализ качества сварки" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="235" y="1040" width="130" height="40" as="geometry" />
</mxCell>
<mxCell id="24" value="Сохранение данных в локальной БД" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="235" y="1120" width="130" height="80" as="geometry" />
</mxCell>
<mxCell id="25" value="" style="ellipse;html=1;shape=endState;fillColor=strokeColor;" parent="1" vertex="1">
<mxGeometry x="285" y="1324" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="26" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="3" target="2" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="340" y="209" as="sourcePoint" />
<mxPoint x="390" y="159" as="targetPoint" />
<Array as="points">
<mxPoint x="300" y="160" />
<mxPoint x="300" y="199" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="27" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="2" target="5" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="530" y="339" as="sourcePoint" />
<mxPoint x="580" y="289" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="29" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="5" target="11" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="470" y="489" as="sourcePoint" />
<mxPoint x="520" y="439" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="34" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="11" target="13" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="450" y="529" as="sourcePoint" />
<mxPoint x="500" y="479" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="35" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="13" target="14" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="444" y="589" as="sourcePoint" />
<mxPoint x="494" y="539" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="36" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="14" target="15" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="420" y="669" as="sourcePoint" />
<mxPoint x="470" y="619" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="37" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="15" target="16" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="420" y="689" as="sourcePoint" />
<mxPoint x="470" y="639" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="38" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="16" target="17" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="500" y="789" as="sourcePoint" />
<mxPoint x="550" y="739" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="47" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="23" target="24" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="130" y="1100" as="sourcePoint" />
<mxPoint x="180" y="1050" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="48" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="24" target="25" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="160" y="1182" as="sourcePoint" />
<mxPoint x="210" y="1132" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="49" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="5" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint y="469" as="sourcePoint" />
<mxPoint x="300" y="1240" as="targetPoint" />
<Array as="points">
<mxPoint x="140" y="384" />
<mxPoint x="140" y="1240" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="50" value="нет" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="155" y="349" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="51" value="да" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="300" y="409" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="60" value="Алгоритм #. Формирование команды на сварку." style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=29;" parent="1" vertex="1">
<mxGeometry x="225" y="30" width="720" height="50" as="geometry" />
</mxCell>
<mxCell id="61" value="Конец" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="315" y="1324" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="62" value="Контроллер ТСК" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="100" y="259" width="130" height="30" as="geometry" />
</mxCell>
<mxCell id="63" value="Контроллер робота" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="540" y="259" width="150" height="30" as="geometry" />
</mxCell>
<mxCell id="64" value="Сварочный контроллер" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="800" y="259" width="170" height="30" as="geometry" />
</mxCell>
<mxCell id="65" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="17" target="20" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="770" y="670" as="sourcePoint" />
<mxPoint x="820" y="620" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="66" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="20" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="770" y="820" as="sourcePoint" />
<mxPoint x="912" y="790" as="targetPoint" />
<Array as="points">
<mxPoint x="972" y="790" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="67" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="20" target="18" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="770" y="860" as="sourcePoint" />
<mxPoint x="820" y="810" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="68" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="18" target="21" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="780" y="910" as="sourcePoint" />
<mxPoint x="830" y="860" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="69" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="19" target="18" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="940" y="1170" as="sourcePoint" />
<mxPoint x="990" y="1120" as="targetPoint" />
<Array as="points">
<mxPoint x="1000" y="1060" />
<mxPoint x="1000" y="959" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="76" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="18" target="19" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="770" y="1110" as="sourcePoint" />
<mxPoint x="820" y="1060" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="77" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="19" target="23" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="880" y="1220" as="sourcePoint" />
<mxPoint x="930" y="1170" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="78" value="нет" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="972" y="810" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="79" value="да" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="912" y="859" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="80" value="нет" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="972" y="1060" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="81" value="да" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="792" y="1030" width="60" height="30" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@ -0,0 +1,161 @@
<mxfile host="Electron" modified="2024-08-28T14:08:04.711Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.4.8 Chrome/124.0.6367.207 Electron/30.0.6 Safari/537.36" etag="YsAZ1YSjnc0RRQnC8IG9" version="24.4.8" type="device">
<diagram id="U2dJCsa7sE4v5P5Dxrlu" name="Page-1">
<mxGraphModel dx="3340" dy="1527" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="1654" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="cXhk_Pv_VdVScGw-giEE-142" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="-610" y="390" width="360" height="1000" as="geometry" />
</mxCell>
<mxCell id="25" value="" style="ellipse;html=1;shape=endState;fillColor=strokeColor;" parent="1" vertex="1">
<mxGeometry x="440" y="1550" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="60" value="Алгоритм #. Останов ТСК." style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=29;" parent="1" vertex="1">
<mxGeometry x="-345" y="30" width="720" height="50" as="geometry" />
</mxCell>
<mxCell id="61" value="Конец" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" parent="1" vertex="1">
<mxGeometry x="480" y="1550" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-96" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="-160" y="400" width="360" height="1000" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-110" value="Контроллер безопасности" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="-160" y="400" width="130" height="61" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-133" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="cXhk_Pv_VdVScGw-giEE-122" target="cXhk_Pv_VdVScGw-giEE-125">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-122" value="&lt;blockquote style=&quot;margin: 0 0 0 40px; border: none; padding: 0px;&quot;&gt;&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Сформированно условие аварийного останова ТСК:&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;ul&gt;&lt;li style=&quot;&quot;&gt;Внешний аварийный сигнал&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;" style="html=1;shape=mxgraph.infographic.ribbonSimple;notch1=0;notch2=20;align=left;verticalAlign=middle;fontSize=14;fontStyle=0;fillColor=#FFFFFF;whiteSpace=wrap;direction=west;" vertex="1" parent="1">
<mxGeometry x="280" y="671" width="300" height="100" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-127" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="cXhk_Pv_VdVScGw-giEE-123" target="cXhk_Pv_VdVScGw-giEE-126">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-123" value="Иницирует срабатывание функции быстрого останова ПЧ" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="-65" y="490" width="170" height="80" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-132" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="cXhk_Pv_VdVScGw-giEE-124" target="cXhk_Pv_VdVScGw-giEE-123">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-124" value="&lt;blockquote style=&quot;margin: 0 0 0 40px; border: none; padding: 0px;&quot;&gt;&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Сформированно условие останова ТСК:&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;ul&gt;&lt;li style=&quot;&quot;&gt;БУП: &quot;аварийный останов&quot;&lt;/li&gt;&lt;li style=&quot;&quot;&gt;Пульт ТСК: &quot;аварийный останов&quot;&lt;/li&gt;&lt;li style=&quot;&quot;&gt;Отказ ПЧ ПЭ&lt;/li&gt;&lt;li style=&quot;&quot;&gt;Отказ ПЧ НЭ&lt;/li&gt;&lt;li style=&quot;&quot;&gt;Внешний аварийный сигнал&lt;/li&gt;&lt;li style=&quot;&quot;&gt;Пульт ТСК: &quot;Переключатель безопасности оператора&quot; и &quot;ручной режим&quot;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div style=&quot;&quot;&gt;&lt;br&gt;&lt;/div&gt;" style="html=1;shape=mxgraph.infographic.ribbonSimple;notch1=0;notch2=20;align=left;verticalAlign=middle;fontSize=14;fontStyle=0;fillColor=#FFFFFF;whiteSpace=wrap;direction=west;" vertex="1" parent="1">
<mxGeometry x="280" y="130" width="300" height="230" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-144" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="cXhk_Pv_VdVScGw-giEE-125" target="cXhk_Pv_VdVScGw-giEE-143">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-125" value="Иницирует срабатывание функции безопасности&lt;div&gt;STO&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="-65" y="681" width="170" height="80" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-128" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="cXhk_Pv_VdVScGw-giEE-126" target="cXhk_Pv_VdVScGw-giEE-125">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-130" value="да" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="cXhk_Pv_VdVScGw-giEE-128">
<mxGeometry x="-0.6758" y="-1" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-126" value="Таймаут&lt;div&gt;срабатывания STO?&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="-60" y="601" width="160" height="50" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-129" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="cXhk_Pv_VdVScGw-giEE-126" target="cXhk_Pv_VdVScGw-giEE-126">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="120" y="626" />
<mxPoint x="120" y="581" />
<mxPoint x="20" y="581" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-131" value="нет" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="cXhk_Pv_VdVScGw-giEE-129">
<mxGeometry x="-0.8828" y="-2" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-134" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="-600" y="400" width="360" height="1000" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-135" value="ПЧ&lt;br&gt;подвижного&amp;nbsp; и неподвижного электрода" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="-600" y="400" width="290" height="61" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-136" value="Торможение с максимальным ускорением" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="-505" y="490" width="170" height="80" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-137" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="cXhk_Pv_VdVScGw-giEE-123" target="cXhk_Pv_VdVScGw-giEE-136">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-138" value="Отключение управления&lt;br&gt;ЭМП" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="-505" y="681" width="170" height="80" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-156" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="cXhk_Pv_VdVScGw-giEE-140" target="cXhk_Pv_VdVScGw-giEE-155">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-140" value="Отключение питания транзисторов" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="-505" y="787" width="170" height="80" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-139" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="cXhk_Pv_VdVScGw-giEE-125" target="cXhk_Pv_VdVScGw-giEE-138">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-141" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="cXhk_Pv_VdVScGw-giEE-125" target="cXhk_Pv_VdVScGw-giEE-140">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-143" value="Формирование диагностического сигнала о срабатывании защиты" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="-65" y="787" width="170" height="80" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-145" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="280" y="860" width="360" height="540" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-146" value="Пульт ТСК" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="280" y="860" width="130" height="61" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-168" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="cXhk_Pv_VdVScGw-giEE-147" target="cXhk_Pv_VdVScGw-giEE-165">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-147" value="Отображает состояние&lt;br&gt;контроллера безопасности&amp;nbsp;" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="370" y="1030" width="170" height="80" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-148" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="cXhk_Pv_VdVScGw-giEE-143" target="cXhk_Pv_VdVScGw-giEE-147">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-150" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="cXhk_Pv_VdVScGw-giEE-149" target="cXhk_Pv_VdVScGw-giEE-136">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-149" value="&lt;blockquote style=&quot;margin: 0 0 0 40px; border: none; padding: 0px;&quot;&gt;&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Сформированно условие останова ТСК в соответствии с алгоритмами:&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;ul&gt;&lt;li style=&quot;&quot;&gt;Сенсорная система не исправна&lt;/li&gt;&lt;li style=&quot;&quot;&gt;Сварка невыпполнима в данной точке&lt;/li&gt;&lt;li style=&quot;&quot;&gt;&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div style=&quot;&quot;&gt;&lt;br&gt;&lt;/div&gt;" style="html=1;shape=mxgraph.infographic.ribbonSimple;notch1=0;notch2=20;align=left;verticalAlign=middle;fontSize=14;fontStyle=0;fillColor=#FFFFFF;whiteSpace=wrap;direction=east;" vertex="1" parent="1">
<mxGeometry x="-990" y="130" width="300" height="230" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-151" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="-1050" y="400" width="360" height="1000" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-152" value="Контроллер ТСК: ядро реального времени" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="-1050" y="400" width="130" height="61" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-154" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="cXhk_Pv_VdVScGw-giEE-153" target="cXhk_Pv_VdVScGw-giEE-136">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-160" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="cXhk_Pv_VdVScGw-giEE-153" target="cXhk_Pv_VdVScGw-giEE-158">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-153" value="Алгоритм защиты клещей:&lt;br&gt;контроль выхода за пределы допустимых характеристик" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="-955" y="490" width="170" height="80" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-162" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="cXhk_Pv_VdVScGw-giEE-155" target="cXhk_Pv_VdVScGw-giEE-158">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-155" value="Фиксация кода ошибки" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="-505" y="900" width="170" height="80" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-161" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="cXhk_Pv_VdVScGw-giEE-158" target="cXhk_Pv_VdVScGw-giEE-147">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-158" value="Фиксация кода ошибки" style="rounded=0;whiteSpace=wrap;html=1;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="-955" y="1030" width="170" height="80" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-167" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="cXhk_Pv_VdVScGw-giEE-165" target="25">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="cXhk_Pv_VdVScGw-giEE-165" value="Система в состоянии аварийного останова" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" vertex="1" parent="1">
<mxGeometry x="295" y="1440" width="320" height="80" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

File diff suppressed because one or more lines are too long