Наш прокатный стан
И снова привет из глубин металлургического комбината! В прошлый раз я рассказывал, откуда завод знает, что производить и когда. Мы эту задачу выводили на более-менее понятную математическую модель не один год и будем рефакторить и оптимизировать отдельные участки всю оставшуюся жизнь, поскольку точки роста есть всегда.
Сегодня речь пойдёт про графикователи производства — системы, лежащие ниже уровнем, чем календарное планирование. Они берут обещания отгрузок по датам и в перспективе ближайших нескольких дней строят оптимальную загрузку каждого агрегата по единицам продукции.
Итак, к нам пришёл заказ, пускай условно это будет сталь Ивановского машиностроительного завода. Дальше мы планируем производство: в диапазоне нескольких недель работает система календарного планирования (стратегическое планирование), а в диапазоне двух-трёх дней работают графикователи (тактический уровень) – они разбирают заказы на серии работ, чтобы оптимизировать производство.
Как выглядит работа графикователя
Происходит следующее: графикователь обычно имеет несколько заказов, которые критично произвести именно сегодня, и ставит их в производство. Предположим, нам нужно сделать два типа проката: узкий и широкий. Первый делается 3 часа, второй делается 4 часа. Между ними в нашем примере нет ничего критичного. Переналадка с одного типа продукции на другой на этом переделе в примере занимает полтора часа.
Графикователь запускает оптимизатор, который ищет ближайшие заказы, которые можно произвести там же при таких же примерно условиях. Предположим, нам повезло и где-то рядом есть ещё несколько тонн такого же узкого проката, как мы уже точно делаем, разбитого на четыре мелких заказа. Мы собираем всё это в кластер и отправляем на стан одним заданием.
На самом деле на этом уровне заказы уже превращаются в задачи для цехов, поэтому это выглядит вот так:
Дальше у нас есть остаток смены, в который можно произвести что-то из пула заказов в нашем окне ближайших заказов. Предположим, там есть заказы на прокат средней ширины.
Графикователь ставит их вот так:
Но тут дело в том, что на этом конкретном оборудовании переналадка с узкого на широкий прокат занимает больше времени, чем со среднего на широкий. Соответственно, оптимизатор может переставить задачи местами, чтобы сэкономить время на этой операции.
В конце у нас будет возможность произвести ещё какое-то количество широкого проката (и он может быть нужен в следующих днях), например. То, что мы выиграли на оптимизации, — это дополнительная прибыль для производства.
Естественно, у нас может быть и вот такая картина, когда задача уйдёт на следующую смену.
Тогда она станет ограничением для графика следующей смены:
И мы можем выбирать заказы не только исходя из параметров загрузки оборудования, но ещё учитывать другие метрики — доступность материала, технологические ограничения, следование календарному плану. Металл, например, может лежать прямо перед агрегатом или перемещаться из другого цеха. Оптимизатор всё это видит и учитывает и в первую очередь берёт то, что есть в наличии. Во вторую очередь учитывает то, что придёт на склад. Для каждого узла производства составляется такой график загрузки. Система видит семь тысяч возможных производственных позиций с учётом загрузки мощностей, даты обещания клиенту, наличия на складе и т.д.
Это прокатный стан, на всём протяжении которого должны быть перенастроены валки в зависимости от типоразмера стальной полосы
А тут эти валки видно крупно
Естественно, за сутки что-то может поменяться. Например, вместо планового ремонта у нас образуется где-то оперативный. Графикователь адаптирует свою загрузку под эту ситуацию с учётом того, что нужно перепланировать конкретный график. Это можно сделать как руками, так и с помощью оптимизатора.
Обычно загрузка состоит из микса критичных и некритичных заказов:
- тех, которые нужно исполнить уже прямо сейчас (с критичным дедлайном);
- тех, которые можно немного отложить (с относительно далёким дедлайном или это пополнение впрок наших складов полуфабрикатов);
- некритичных заказов без дедлайна, когда мы производим что-то, если вдруг образуется окно в заказах (такое случается очень редко).
Это выгодно с точки зрения календарного планирования, потому что для заказов задаются окна на выполнение — то время, которое гарантирует, что заказ с точки зрения производства будет отгружен в срок. Графикование же обеспечивает гибкость оптимальной загрузки оборудования и даёт возможность выжимать из него максимум. Гибкость в глобальной перспективе календарного планирования часто даёт больший выигрыш, чем локальная загрузка в 100% по плану.
Прокатный стан, вид с пульта управления
Что происходит дальше
Итак, мы разместили заказы по агрегатам и расставили даты. Графикователи раскидали всё это в разрезе не заказов, а производственных операций: сколько слябов, куда, где какие плавки, какие рулоны и где потребуются и так далее, плюс с учётом технических ограничений: времени на логистику между цехами, перестройки и переналадки.
Далее график на сутки передаётся в MES (систему управления производством) в виде суточного задания. Начинается его выполнение. По факту готовности MES отчитывается в графикователе.
Вопрос «иридиевых чапельников»
Предположим, что наша цепочка производства заказа для ивановских автокранов начинается с выплавки сляба подходящего сортамента. Сюда идёт только высококачественный материал с особыми требованиями к химсоставу, качеству готовой продукции и сорту металла.
Вот сляб выплавлен, и вдруг он не проходит аттестацию (выходной контроль качества в конверторном цехе). Предположим, что-то с температурными режимами пошло немного не так и сплав «палладия с иридием», как в фильме «День выборов», не подходит под входные критерии следующего передела. Зато подходит подо что-то другое менее ответственное, с простыми требованиями к составу.
В лаборатории
У оптимизатора есть выбор, что именно делать:
- Переплавить сляб (это стоит денег и времени работы оборудования) или предусмотреть для него дополнительные этапы обработки, которые доведут качество до необходимого.
- Искать заказ, где нужна сталь именно с этими параметрами.
- Сделать из него что-то для следующих, ожидающих своей очереди заказов, даже если там нужна сталь качеством ниже (но эта тоже подходит).
И вот, если в окне планирования вдруг окажутся заказы только с повышенными требованиями к стали или будет выгодно раскатать «более крутой» сляб даже на заказе с требованиями ниже, то, вполне возможно, по стечению производственных обстоятельств, какие-нибудь простые вилки могут быть сделаны из суперстали. Просто графикователь сказал, что так будет лучше.
Что на входе, что на выходе
На выходе — задание для MES. На входе — огромное количество данных:
- Наличие на всех складах — это полуфабрикаты и материалы.
- Ожидаемые поставки — чтобы сразу резервировать их под конкретные задачи.
- Время исполнения каждого передела, время перемещений.
- Технические карты (химия, допобработка, технология производства каждого вида продукции) — то есть то, как именно и что именно производится.
- План ремонтов (регламентов) оборудования.
- Ограничения оборудования: например, на каких-то установках нельзя производить продукцию нужной толщины, на каких-то это невыгодно и так далее. В том же конвертерном цехе № 2 у нас 5 установок непрерывной разливки стали (УНРС). Физические возможности у них разные, они строились в разное время. Задача — загрузить их равномерно, чтобы установки с ограничениями по сортаменту (с точки зрения ширины и химсостава) загружались подходящими под них заказами в первую очередь, а остальные заказы распределялись по универсальным установкам.
- Есть ещё минимальные объёмы. Например, для заказа нужен один сляб, а один сляб мы физически сделать не можем. У нас кратность 156 тоннам в конвертерном цехе № 1 и около 300 тонн в конвертерном цехе № 2. То есть нужно компоновать заказы так, чтобы обеспечить кратность минимум одной плавке.
- Есть коммерческие параметры: некоторые заказы нам производить выгоднее, некоторые мы можем почти неограниченно класть на склад, потому что точно продадим, а некоторые нет. С теми, где спрос высокий, удобно: можно «добивать» такие заказы до конца смены или под количество слябов, зная, что они точно не будут залёживаться на складах.
План ремонтов
Мы стараемся работать «с колёс». Когда материал приходит на склад, мы комбинируем заказы так, чтобы он сразу шёл в производство. Началось это лет десять назад ещё на бумаге, потом, с появлением первой автоматизации, удалось сильно уменьшить количество остатков на складах, а теперь храним только нужное. К нужному относятся небольшие буферные запасы критичных и самых востребованных полуфабрикатов — это чтобы при срочном дорогом заказе иметь гибкость или в случае непредвиденной остановки предыдущего участка — не останавливать производство.
В общем, не замораживаем деньги, не затариваем склад, не усложняем логистику.
Начнём с выплавки сляба
Конвертерный цех добавляет графикователю свои нюансы: время и очередь движения сталевозов, кранов, комбинации химии стали и времени её обработки на различных агрегатах.
Пока это всё происходит, «бульон» стынет, при этом на выходе нужно без перерыва подавать сталь в установки разливки стали строго определённой температуры. Это добавляет новые ограничения.
Стальной «бульон» подъезжает
Иногда бывает, что в ближайших заказах (горизонт 5 дней) нет ничего, что удачно комбинируется с тем, что мы сейчас производим. Тогда окно подбора расширяется и графикователь начинает искать что-то нужное в заказах дальше. Например, может заглянуть и на 2 месяца вперёд. Но если сотрудники знают, что производимый металл всё равно будет востребован в ближайшее время (даже если заказ ещё не пришёл), то они могут настроить систему вручную и произвести слябы на склад.
Это слябы в момент своего рождения
Также мы стараемся не делать заказы раньше, если они отгружаются по железной дороге.
Например, если заказ на пятницу, то состав, который приедет во вторник, будет только мешать и множить издержки.
А это слябы в момент перемещения
Содержимое складов бывает физическое (что по факту есть) и виртуальное (что производство сделает за сегодня в результате расчёта графикователя). Физическое наличие учитывается в приоритете над виртуальным. Графикователь, как я уже упоминал, работает непрерывно. А график рассчитывается по требованию пользователя. Если он хочет увидеть график, он нажимает кнопочку и читает результат.
На случай форс-мажоров или аварийных режимов у нас есть возможность внесения корректировки в план напрямую в MES-системе.
На установках разливки стали есть так называемые переходные слябы — это когда в УНРС ушла одна сталь, она почти кончилась, и потом туда ушла другая сталь. В итоге получается некая средняя химия между первой и второй плавкой. Состав таких слябов можно прогнозировать и также рассчитывать, куда они пойдут и подо что — в другие заказы. Может быть, даже на всё те же чапельники. В общем, переходные слябы нужно назначить на потребность, где ожидаемые химии будут удовлетворять требованиям заказа.
Иногда бывает так, что на склад в конце всех этих оптимизаций приходит пара слябов из какого-то редкого металла, который нам в следующий раз понадобится через год. Поскольку графикователь не умеет заглядывать далеко в будущее, здесь пока принимается решение вручную: держать, продавать, переплавлять или использовать для заказа, где его характеристики сильно превосходят требуемые.
Пока мы не считаем себестоимость на разных машинах одной операции, например, не учитываем количество персонала на машину (на новых меньше, на старых больше), не считаем энергоэффективность обслуживания и так далее. Цель — нагружать близко к 100%.
Примеры интерфейсов
MPS:
Составление сменно-суточного задания:
Теперь идём в прокат
Далее в цепочке производства металл проходит преобразование из вида «сляб» в вид «горячекатаный рулон». Этим преобразованием занимается «Стан-2000», это важное место комбината. У него отдельный графикователь. Он видит потребности по операции прокатки с окном возможных дат производства, чтобы мы попали в обещанную дату. Задача планировщика стана — собирать последовательность производства из наличия слябов перед станом и заказов. При этом надо соблюдать технологию и порядок заказов.
Это один из «кусочков» процесса оцинковки
Как было в упрощённом примере выше, «Стан-2000» не может резко перестраиваться с одной ширины на другую, надо учитывать переход между строчками. Стан может катать от 900 до 1850 мм. Ему нужно время, чтобы перенастроиться на другую толщину. Максимально группируются потребности с одинаковыми параметрами, чтобы прокатать их один раз сразу партией. Также на стане при производстве происходит сильное обжатие валков, они изнашиваются, замена валков делается при каждом монтаже. Валки имеют ширину, то есть нельзя весь монтаж катать узкий металл или широкий — иначе они не выдержат, нужно относительно равномерно их нагружать, иначе пойдёт брак.
Планировщику важно обеспечить равномерность для цехов холодной прокатки. Есть план производства у каждого цеха по суткам, его нужно соблюдать. Сильно упрощая, нельзя дать 5000 тонн в понедельник и сказать: «Живите с этим всю неделю». Это потому что горячекатаный металл на складе может начать портиться без защиты. А защита делается на следующем переделе. И вообще если не обеспечивать цеха равномерно, а обеспечивать толчками, эти же толчки будут позже сильнее отражаться на готовой продукции и потеряется гибкость.
Технологически после «Стана-2000» происходит разделение потоков металла на два ручья: производство в цехе холодного проката (крупный объём), туда сделан конвейер, горячекатаные рулоны ставят краном.
Дальше возможна оцинковка. И передача в цеха динамной и трансформаторной стали. Туда передача идёт либо грузовиками, либо внутренней железной дорогой — и тут надо учитывать график вывоза металла в эти цеха.
Ещё раз основной цикл
- Появляется задание на производство серий в горизонте суток.
- Серии графикуются внутри установок. Привязываем план по использованию и загрузке.
- Отслеживаем выполнение. План не всегда соответствует факту: сляб может выйти не с теми параметрами, на прокате может быть брак, бывают сбои и поломки, и мы не можем использовать металл на конкретный заказ. В этом случае уведомляются все заинтересованные стороны и заказ уходит в графикователь заново. Обычно есть время на ручное управление решением.
В рамках управления нашим производством мы, кажется, нащупали новый уровень киберпанк-мира: глобально он плановый, но в коротком горизонте — оперативный. И план ещё может быстро обновляться, то есть система за счёт хорошей автоматизации моделей остаётся очень гибкой и при этом не теряет в оптимальности.