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