Здравствуйте,
Для начала напишу очень вкратце, тезисно. Потом если что поясню по отдельным моментам или видео сделаю. Если интересно будет...
Это нужно для возможности работы с так называемыми «объединёнными» заданиями.
Чтобы в план поста на смену некие детали (операции над ними) попадали не «россыпью», а одним общим заданием с общим временем, выполнение которого означает для программы закрытие операций по всем соответствующим деталям, которые входят в это «общее задание».
Пример 1. Термообработка. Ручное создание «объединённого задания».
Заранее ничего не готовим, не настраиваем, просто куча деталей с операцией «термообработка» вываливается в новые задания. Те из них, которые хотим в каких-то сочетаниях между собой пообъединять – выделяем, нажимаем «совместная обработка». Эти строчки из «Новых заданий» исчезают, появляются в окне «Задания для объединения».
Там выбираем, кто с кем объединяется (кол-во в соответствующих строчках проставляем) и нажимаем «Создать группу» (+). Вводим для созданной «группы», объединяющей выбранные детали/операции, какое-нибудь обозначение и/или наименование – например, «Кладка АБВ-1», указываем общую трудоёмкость – например 2,0 н/ч.
В результате из «заданий для объединения» соответствующие строчки (детали) «уходят», как уже определённые в «группу», а в "Новых заданиях" вместо кучи строчек деталей появляется одна строчка «Кладка АБВ-1» с трудоёмкость. 2,0 н/ч.
Её вставляем в план поста и выдаём/закрываем, как обычное задание через десктопный интерфейс, или по штрих-коду, или через терминал. Программа при закрытии такого задания «Кладка АБВ-1» автоматически понимает, операции термообработки по каким деталям закрылись и это помечает, как закрытие операции «Термообработка» в заданиях соответствующих деталей.
В окне «Задания на совместную обработку» показываются уже созданные «Группы», но пока не включённые в план работ постов на смену. Для того, чтобы пока дальше не пошло, можно было ещё что-то с ними сделать. Например, удалить, если не понравилось или ошибся.
Пример 2. Лазерная резка, с интеграцией с программой раскроя.
В техпроцессе или в «номенклатуре» операцию «Лазерная резка» помечаем специальным параметром. Чтобы программа понимала, что задания на такую операцию вообще не нужно помещать в «новые задания», а сразу в «задания для объединения». То есть, по смыслу, это в данном случае означает, что когда появляются задания на лазерную резку каких-то деталей, то они попадают не сразу для выдачи на пост, а сначала в отдельное окно технологу («задания для объединения»), как «задание на раскрой». Технолог делает раскрой и в результате этого в «новые задания» попадают уже программы (листы, фактически) подготовленные технологом (включающие соответствующие детали).
В этом случае, когда мы нажимаем в «Графике производства» кнопку «создать задания», то всё, где есть лазерная резка, попадает в окно «Задания для объединения» - это по смыслу, как задание технологу на раскрой. В «новые задания» пока ничего не попадает. Пока раскроя нет, нечего выдавать на посты.
В окне «задания для объединения» специально в рамках такой задачи есть функции:
- группировки по материалам (по толщинам);
- группировки по заказам, сортировки по приоритетам;
- проверка, есть ли по всем деталям в базе нужные файлы (развёртки или управляющие программы, например, смотря что используется). Есть функции показать все позиции, у которых нет определённого типа файла, или наоборот – все, у которые есть определённого типа файлы.
- пакетная загрузка файлов к номенклатуре (выделяешь детали, говоришь, что за файлы нужны, показываешь папку, или диск, или компьютер, и программа пытается там найти нужные файлы, если находит, то загружает в базу);
- пакетная выгрузка файлов (по выделенным строчкам все нужного типа файлы сложить в указанную папку).
Таким образом, в результате в окне «задания для объединения» технолог получает список деталей, которые нужно разложить по листам и к ним ко всем прицеплены файлы (*.dxf, *.nc, *.cp и т.п., какие нужны в зависимости от используемого софта для станков). Дальше, как простейший вариант он берёт список деталей с экрана, файлы выгружает в папку себе на диск и дальше готовит раскрой в своей программе, которой для этого пользуется.
Как более продвинутый вариант, можно написать плагин, который по нажатию кнопки делает сразу входной файл для импорта в программу раскроя. С деталями, количеством, развертками/УП. Делать надо индивидуально под конкретное предприятие, но можно, проверено.
Как результат тем или иным способом технолог в своём софте, для этого предназначенном, получает программы на конкретные листы. Дальше, опять же под конкретный софт пишется импорт данных из этих программ в VOGBIT: обозначение/наименование программы, размеры листа, расчётное время (пишется в трудоёмкость), список деталей на листе, количество листов. «Программы» получаются в VOGBIT, как номенклатура. Фактически – это «Группа». То же самое, что в предыдущем примере мы делали руками. Только теперь эти «Группы» мы загружаем из программ раскроя, их остаётся только «Применить». Чтобы «применить» в окне «Задания для объединения» есть кнопки «создать по шаблону» (= «применить одну программу») и «создать несколько групп» (= «применить» сразу несколько загруженных программ).
После «применения» программы, детали в неё входящие, «уходят» из списка «задания для объединения», а сама соответствующая «программа» (= «группа») появляется в «новых заданиях» и её можно «выдать на пост», как обычное задание, взять в работу, закрыть. При закрытии такого задания по всем деталям, которые на соответствующем листе, проставится автоматом, что операцию «Лазерной резки» они прошли.
Т.е. резюме:
В данном случае задания на лазерную резку попадают не в «новые задания» а в некий «буфер» технологу. Там у него список, что ещё надо раскроить и исходные данные для раскроя (файлы нужные). Он делает раскрой и «подключает» программы. Детали из его «буфера» соответствующие уходят, в «новых заданиях» появляются листы(/программы).
Понятно, что при наличии одного лазера с загрузкой пол-дня раз в два дня – это всё мало интересно. Лишние усложнения. Сыпем в задание на смену, как обычно, детали, берём текущий список деталей прямо из сменного задания поста, делаем программы на этот список, и всё. А вот при наличии 3-4 машин с загрузкой на несколько дней/недель вперёд, и необходимостью выдачи точных заданий на каждую машину, на каждую смену отдельно – вот тут описанная выше схема работы становится весьма актуальной.
P.S. Отдельно по части лазерной резки/пробивки прорабатывалась тема «докладывания» деталей. Когда технолог, чтобы просто заполнить оставшиеся пустые места на листе в процессе раскроя сам докладывает мелкие или ходовые детали на них. Причём заранее неизвестно сколько и каких именно. Это тоже учтено. Предусмотрено 2 варианта в текущей версии:
- не учитывать эти доложенные детали в программе в принципе, как будто их нет (с точки зрения учёта в программе);
- после «подключения» программ по факту посчитать относительно изначального количества что там ещё добавилось и зарядить это отдельным заказом на производство (чтобы после раскроя эти «лишние» детали тоже учесть, доделать до конца и сдать на склад, например).
По факту уже сталкивались со обоими случаями на производстве. И когда первое более разумно, и когда второе.
P.P.S.
Пока, это первый вариант данной функциональности, который мы выложили в открытый доступ. После довольно длинного закрытого тестирования. Не всё далеко, конечно, тут ещё учтено, достаточно много вопросов, которые ещё только планируется решать и дорабатывать. Но в базовом варианте описанная схема (в т.ч. на примере «лазера») работает на реальных данных реального производства. Поэтому решили в качестве первой версии, в принципе, можно уже выкладывать. Дальше будем дорабатывать постепенно. Уже лучше, чем ничего. В старых версиях с той же термообработкой было совсем никак. Сейчас появились пусть не идеальные пока, но рабочие уже инструменты.