Динамичное изменение производственной ситуации может быть вызвано различными причинами:
- экономическими – колебания спроса на продукцию, выход на рынок или уход с рынка продукции конкурентов;
- политическими – введение ограничений политического характера на импорт (экспорт) продукции;
- техническими – поломки оборудования, планово-предупредительный ремонт, техническое обслуживание.
Часть из перечисленных причин, например политические, носит стратегический характер, а часть (технические) – оперативный. На оперативном уровне актуальной является задача составления производственных расписаний в условиях непрерывного изменения производственной ситуации. Для решения данной задачи разработаны программы класса MES-систем (Manufacturing Execution Systems) - это интегрированные информационно-вычислительные системы, объединяющие инструменты и методы управления производством в режиме реального времени. Наиболее известными отечественными разработками в этой сфере являются системы оперативно-календарного планирования и диспетчерского контроля «ФОБОС» и Zenith SPPS [4], из зарубежных следует отметить систему PREACTOR. Однако, несмотря на широкие возможности данных систем, количество публикаций на данную тематику в научной литературе не снижается. Одним из главных требований к MES-системе является возможность быстрого перестроения производственного расписания из-за изменившихся условий. Все современные MES-системы имеют такую возможность, но в их описании, как правило, не раскрываются тонкости методик оптимизации или программной реализации. Ключевым фактором при этом является решение задачи организации данных, обрабатываемых программой в виде классов, массивов, записей [1]. Так, в работе [5] представлена объектная модель производственного процесса для составления субоптимального производственного расписания. Предложенная автором модель имеет сложную структуру классов, основанную на построении графовой модели производственного процесса. По другим системам подобная детальная информация о структуре организации данных внутри программы практически отсутствует.
Авторами предложена структура данных, основанная на использовании списков. В конечном счете производственное расписание можно представить в виде списка, включающего последовательность выполнения тех или иных операций на заданной единице технологического оборудования (ТО). Составление производственного расписания основано на добавлении и вставке операций в список работ оборудования с учетом их начала, окончания, текущего времени и занятости оборудования. UML-диаграмма основных классов представлена на рисунке 1.
Рис. 1. UML-диаграмма основных классов составления производственного расписания
Основным элементом является класс TPart, отображающий деталь. В атрибуте TP (технологический процесс) хранятся ссылки на класс TOperacia. Операция содержит поля для хранения моментов начала, окончания, длительности обработки и кода ТО, на котором должна выполняться обработка.
Рассмотрим пример составления производственного расписания для двух деталей: «Вилка» и «Корпус». Техпроцесс для вилки состоит из двух операций ТВ={t11=10 мин, t22=15 мин}, где tij – трудоемкость i-й операции, выполняемой на j-м ТО, например станке. Тогда для корпуса техпроцесс в соответствии с рисунком 2 представим как ТК={t12=8 мин, t21=10 мин, t32=12 мин}. При формировании задания на смену создается список SZ (сменное задание) типа TList, в который записываются ссылки на экземпляры класса TPart каждого изделия. Таким образом, SZ хранит столько объектов деталей и операций, сколько необходимо распланировать в обработку, что дает возможность в любой момент времени отследить где, на каком оборудовании и какая операция выполняется.
У объекта TStanok в атрибут Time заносятся ссылки на операции, находящиеся в сменном задании. Первой всегда устанавливается операция с нулевыми параметрами длительности, начала и окончания обработки. Это необходимо для задания момента начала планирования. В соответствии с рисунком 2 операции для изготовления вилки добавляются последовательно сначала на первый, затем на второй станок, при этом не возникает никаких сдвигов, так как оба станка свободны. При добавлении операций фиксируются моменты начала и окончания их обработки, на рисунке эти моменты выделены утолщённой линией в таблице сменного задания.
Так как у корпуса первая операция выполняется на втором станке, то проверяется есть ли возможность разместить ее в образовавшемся простое. Если длительность операции это позволяет, то вызывается метод вставки ссылки на данную операцию между нулевой и первой операцией станка 2. Тем самым ссылка на вторую операцию детали «Вилка» сдвигается в последовательности работ станка 2 с неизменным моментом начала обработки.
Рис. 2. Принцип размещения операций на оборудовании
Рис. 3. Алгоритм размещения операций по оборудованию
Дальнейшие операции планируются последовательно. Распределение операций выполняется по алгоритму, показанному на рисунке 3, при этом учитываются следующие условия:
- если у оборудования есть простой:
а) можно ли в него разместить текущую операцию?
б) предыдущая операция изделия закончилась раньше, чем освободился станок?
- если у оборудования простоев нет:
а) в момент начала операции установить момент окончания предыдущей операции или момент освобождения станка?
Данные условия позволяют жестко фиксировать очерёдность операций и не допускают ситуации, когда две операции одного и того же изделия обрабатываются одновременно.
Для визуализации графика занятости оборудования в виде диаграммы Ганта нужно просто перебрать список операций сменного задания и по полученным моментам начала и окончания обработки отобразить простои и работу оборудования.
Таким образом, предложенная диаграмма классов программы позволяет организовать централизованное хранение списка уникальных данных, определяющих производственное расписание. Внесение различного рода плановых и внеплановых простоев выполняется как работы отдельного типа. Доставку и переустановку заготовок можно организовать добавлением фиксированного времени или времени, которое изменяется по определенному закону распределения. Для оптимизации производственного расписания могут использоваться известные алгоритмы, например генетический алгоритм, формирующий оптимальную последовательность запуска изделий в обработку [2; 3].
Рецензенты:
Сердюк А.И., д.т.н., профессор, директор Аэрокосмического института, Оренбургский государственный университет, г. Оренбург;
Поляков А.Н., д.т.н., профессор, заведующий кафедрой технологии машиностроения, металлообрабатывающих станков и комплексов, Оренбургский государственный университет, г. Оренбург.
Библиографическая ссылка
Сергеев А.И., Савельев А.Б. СТРУКТУРА ХРАНЕНИЯ ДАННЫХ ПРОГРАММЫ СОСТАВЛЕНИЯ ПРОИЗВОДСТВЕННЫХ РАСПИСАНИЙ // Современные проблемы науки и образования. – 2015. – № 1-1. ;URL: https://science-education.ru/ru/article/view?id=18872 (дата обращения: 05.10.2024).