init commit
This commit is contained in:
commit
f3f4d00e37
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
.idea
|
||||||
|
/__pycache__
|
55
algorithm_12/body.puml
Normal file
55
algorithm_12/body.puml
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
@startuml
|
||||||
|
|
||||||
|
if (Сенсорная система исправна?) then (да)
|
||||||
|
:__Контроллер ТСК__
|
||||||
|
Производит измерения и передает результаты;
|
||||||
|
else (нет)
|
||||||
|
end
|
||||||
|
endif
|
||||||
|
|
||||||
|
split
|
||||||
|
:__Контроллер ТСК__
|
||||||
|
Вычисляет толщину заготовок согласно описанию алгоритма
|
||||||
|
"Расчет толщины заготовок по данным с дальномеров";
|
||||||
|
|
||||||
|
:__Контроллер ТСК__
|
||||||
|
Сохраняет вычисленное значение толщины для точки
|
||||||
|
(для последующего формирования протокола);
|
||||||
|
|
||||||
|
split again
|
||||||
|
:__Контроллер ТСК__
|
||||||
|
Вычисляет угол наклона линии, характеризующей край свариваемой
|
||||||
|
детали в плоскости кадра согласно описанию алгоритма
|
||||||
|
"Расчет угла наклона линии края детали в плоскости кадра";
|
||||||
|
|
||||||
|
split
|
||||||
|
:__Сенсорная система__
|
||||||
|
Возвращает перпендикуляр от оси электродов
|
||||||
|
до края свариваемой заготовки;
|
||||||
|
|
||||||
|
split again
|
||||||
|
:__Сенсорная система__
|
||||||
|
Возвращает угол наклона линии,
|
||||||
|
характеризующей край свариваемой детали в
|
||||||
|
плоскости кадра;
|
||||||
|
|
||||||
|
end split
|
||||||
|
|
||||||
|
:__Контроллер ТСК__
|
||||||
|
Определяет оптимальную матрицу
|
||||||
|
между двумя наборами точек в пространстве,
|
||||||
|
и матрицу смещений согласно описанию алгоритма
|
||||||
|
"Точная корректировка системы координат робота
|
||||||
|
по фактическому положению";
|
||||||
|
|
||||||
|
:__Контроллер ТСК__
|
||||||
|
Передает вычисленные матрицы
|
||||||
|
смещения системы координат;
|
||||||
|
|
||||||
|
:__Контроллер робота__
|
||||||
|
Принимает матрицы
|
||||||
|
смещения системы координат;
|
||||||
|
|
||||||
|
end split
|
||||||
|
|
||||||
|
@enduml
|
0
algorithm_12/input.puml
Normal file
0
algorithm_12/input.puml
Normal file
16
algorithm_12/main.puml
Normal file
16
algorithm_12/main.puml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
@startuml
|
||||||
|
|
||||||
|
title
|
||||||
|
Алгоритм 12
|
||||||
|
Рассчитывает и передает корректировку для всей траектории
|
||||||
|
на основе результатов измерений.
|
||||||
|
end title
|
||||||
|
|
||||||
|
start
|
||||||
|
|
||||||
|
!include input.puml
|
||||||
|
!include body.puml
|
||||||
|
|
||||||
|
stop
|
||||||
|
|
||||||
|
@enduml
|
82
algorithm_9/body.puml
Normal file
82
algorithm_9/body.puml
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
@startuml
|
||||||
|
|
||||||
|
: __Контроллер ТСК__
|
||||||
|
Вычисляет начальную скорость и ускорения
|
||||||
|
перемещения нижнего и верхнего электрода;
|
||||||
|
|
||||||
|
:__Контроллер ТСК__
|
||||||
|
Передает скорости перемещения,
|
||||||
|
ускорения и целевые координаты
|
||||||
|
раскрытия, в которые нужно выйти.
|
||||||
|
Передает импульс запуска.;
|
||||||
|
|
||||||
|
split
|
||||||
|
:__ПЧ верхнего электрода__
|
||||||
|
Принимает скорость и ускорение перемещения
|
||||||
|
и целевые координаты раскрытия.;
|
||||||
|
|
||||||
|
:__ПЧ верхнего электрода__
|
||||||
|
Переводит ПЧ в контур управления по скорости
|
||||||
|
(в режим удержания) с нулевой скоростью;
|
||||||
|
'for understanding
|
||||||
|
detach
|
||||||
|
|
||||||
|
split again
|
||||||
|
:__ПЧ нижнего электрода__
|
||||||
|
Принимает скорость и ускорение перемещения
|
||||||
|
и целевые координаты раскрытия.;
|
||||||
|
|
||||||
|
:__ПЧ нижнего электрода__
|
||||||
|
ПЧ осуществляет втягивание электрода
|
||||||
|
до координат раскрытия с заданной скоростью и
|
||||||
|
ускорением, при этом измеряя уровень усилия;
|
||||||
|
|
||||||
|
repeat: Проверка усилия
|
||||||
|
if (Усилие меньше порога?) then (да)
|
||||||
|
:__Контроллер ТСК__
|
||||||
|
Передает импульс запуска
|
||||||
|
для ПЧ верхнего электрода;
|
||||||
|
break
|
||||||
|
else (нет)
|
||||||
|
if (Таймаут на снятие усилия сработал?) then (да)
|
||||||
|
:Аварийный останов с выводом
|
||||||
|
описания ошибки и ее кода на ПДУ;
|
||||||
|
end
|
||||||
|
else (нет)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
repeat while (Усилие меньше порога?) not (да)
|
||||||
|
|
||||||
|
end split
|
||||||
|
|
||||||
|
:__ПЧ верхнего электрода__
|
||||||
|
ПЧ осуществляет втягивание электрода
|
||||||
|
до координат раскрытия с заданной скоростью и
|
||||||
|
ускорением, при этом измеряя уровень усилия;
|
||||||
|
|
||||||
|
if (Усилие отрицательное и меньше порога?) then (да)
|
||||||
|
if (Усилие превысило порог максимального усилия?) then (да)
|
||||||
|
:Аварийный останов с выводом
|
||||||
|
описания ошибки и ее кода на ПДУ;
|
||||||
|
end
|
||||||
|
else (нет)
|
||||||
|
:__Контроллер ТСК__
|
||||||
|
Формирует сигнал о превышении отрицательного
|
||||||
|
порога усилия при раскрытии;
|
||||||
|
|
||||||
|
:__Контроллер ТСК__
|
||||||
|
Принимает решение о необходимости
|
||||||
|
заточки колпачков;
|
||||||
|
endif
|
||||||
|
else (нет)
|
||||||
|
endif
|
||||||
|
|
||||||
|
'синхронное перемещение упразднено.
|
||||||
|
:__Контроллер ТСК__
|
||||||
|
После достижения координаты
|
||||||
|
минимального раскрытия включает
|
||||||
|
режим синхронного перемещения
|
||||||
|
электродов;
|
||||||
|
|
||||||
|
@enduml
|
13
algorithm_9/input.puml
Normal file
13
algorithm_9/input.puml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
@startuml
|
||||||
|
split
|
||||||
|
-[hidden]->
|
||||||
|
:A<
|
||||||
|
split again
|
||||||
|
-[hidden]->
|
||||||
|
:B<
|
||||||
|
split again
|
||||||
|
-[hidden]->
|
||||||
|
:C<
|
||||||
|
end split
|
||||||
|
|
||||||
|
@enduml
|
16
algorithm_9/main.puml
Normal file
16
algorithm_9/main.puml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
@startuml
|
||||||
|
|
||||||
|
title
|
||||||
|
Алгоритм 9
|
||||||
|
Выполняет разжатие заготовок,
|
||||||
|
контролирует усилие отрыва.
|
||||||
|
end title
|
||||||
|
|
||||||
|
start
|
||||||
|
|
||||||
|
!include input.puml
|
||||||
|
!include body.puml
|
||||||
|
|
||||||
|
stop
|
||||||
|
|
||||||
|
@enduml
|
37
creator.py
Normal file
37
creator.py
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import argparse
|
||||||
|
from os import path, mkdir
|
||||||
|
|
||||||
|
TEXT = "@startuml\n\nstart\n\n!include input.puml\n!include body.puml\n\nstop\n\n@enduml\n"
|
||||||
|
|
||||||
|
|
||||||
|
def create_directory(directory_name: str) -> bool:
|
||||||
|
if not path.exists(directory_name):
|
||||||
|
mkdir(directory_name)
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def create_files(directory_name: str) -> None:
|
||||||
|
files = ("input.puml", "body.puml", "main.puml")
|
||||||
|
|
||||||
|
for file in files:
|
||||||
|
f = open(path.join(directory_name, file), 'w')
|
||||||
|
if "main" in file:
|
||||||
|
f.write(TEXT)
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
|
||||||
|
def init_args() -> argparse.Namespace:
|
||||||
|
parser = argparse.ArgumentParser(description="AlgorithmDigitalis")
|
||||||
|
parser.add_argument('-name', help="Algorythm name")
|
||||||
|
arguments = parser.parse_args()
|
||||||
|
return arguments
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
args = init_args()
|
||||||
|
dir_name = args.name
|
||||||
|
created = create_directory(directory_name=dir_name)
|
||||||
|
if created:
|
||||||
|
create_files(directory_name=dir_name)
|
Loading…
Reference in New Issue
Block a user