Начальный конвейер: wrappingConveyor.
Конечный конвейер: wrappingConveyor.
с. Выберите опцию Покинуть конвейер при выходе.
Цвет электродов в конвертах изменится. Чтобы это продемонстрировать, мы используем элемент wrappingStation.
Откройте свойства станции wrappingStation и распахните секцию Действия.
В поле При окончании процесса введите следующий код: agent.color = white;
Запустите модель и посмотрите, как электроды оборачиваются в конверты.
Сборка блоков
Создадим новый тип материального объекта, который будет выполнять роль блока электродов.
Создайте новый тип материального объекта
Перетащите элемент Тип материального объекта с палитры Библиотеки производственных систем на графическую диаграмму агента Main.
В диалоговом окне Создание агента укажите Имя типа агента:
BatteryBlock и щелкните кнопку Готово.
В графическом редакторе агента BatteryBlock выберите элемент Масштаб и задайте значение параметра Длина линейки соответствует: 1 м.
Перетащите 3D объект Группа пласти аккумулятора с палитры 3D объекты на графическую диаграмму агента BatteryBlock и разместите его в точке начала координат.
В диалоговом окне Автомасштабирование 3D oбъекта щелкните кнопку Да.
Дважды скопируйте 3D объект (Ctrl+перетаскивание) и расположите копии в соответствии с изображением ниже:
Рисунок 20 - Новый тип материального объекта
Добавьте процесс сборки блока электродов в диаграмму процесса
Перетащите
блок
Assembler
с
палитры Библиотеки
моделирования процессов на графический
редактор
агента Main
и добавьте его в диаграмму процессов
перед блоком
sink.
Убедитесь в том, что предыдущий блок соединился с самым верхним входным портом блока assembler.
В свойствах блока assembler задайте следующие параметры:
Количество 1: 15. Здесь мы задаем количество входящих агентов одного типа, необходимых для формирования одного нового агента.
Количество 2: 0.
Новый агент: BatteryBlock.
Время задержки: 5 минут. Здесь задается время, необходимое для сборки
одного блока электродов.
Вместимость буфера на выходе: 1. Здесь мы создаем буфер, в котором собранный новый агент (блок электродов) будет ожидать, когда его примет следущий блок в диаграмме процесса, поскольку этому блоку нужно будет знать координаты нового собранного агента.
Место нового агента: Узел сети/ГИС.
Узел: assembledBlocksBuffer.
Место агентов (delay): assembleArea. Здесь мы задаем место, где будет происходить непосредственно процесс сборки блока.
Добавьте ресурсы
Перетащите элемент Тип ресурса с палитры Библиотеки моделирования процессов на графическую диаграмму агента Main.
В диалоговом окне Создание агента укажите Имя типа агента:
Operator и щелкните кнопку Далее.
В списке 3D объектов распахните секцию Люди и выберите объект Рабочий. Щелкните кнопку Готово.
Перетащите
элемент
Точечный
узел с палитры
Разметка
пространства на графическую
диаграмму
агента Main.
Разместите его рядом с узлом assembleUnitLocation как указано на изображении ниже:
Рисунок 21 - Добавление ресурса
Назовите узел operatorLocation. Во время выполнения модели наш рабочий будет находиться здесь.
В свойствах узла выберите опцию Видимость: нет.
Перетащите
блок ResourcePool
с
палитры Библиотеки
моделирования
процессов на графическую
диаграмму
агента Main.
Назовите новый блок operator.
Перейдите в свойства блока и в параметре Новый ресурс выберите тип агента Operator.
В параметре Базовое местоположение (узлы) выберите узел
operatorLocation.
Перейдите
в свойства блока assembler и выберите
оператора в параметре Набор ресурсов,
щелкнув по кнопке
.
Фаза 4. Сборка аккумуляторов
Добавьте новый тип материального объекта
Перетащите элемент Тип материального объекта с палитры Библиотеки производственных систем на графическую диаграмму агента Main.
В диалоговом окне Создание агента укажите Имя типа агента:
Battery и щелкните кнопку Далее.
Распахните секцию Склады и контейнерные терминалы в списке 3D объектов и выберите Промышленный контейнер 1. Щелкните кнопку Готово.
В графическом редакторе агента Battery выберите элемент Масштаб и задайте значение параметра Длина линейки соответствует: 1 м.
Перейдите в секцию Размеры и движение свойств агента Battery укажите следующее:
Длина: 0.3 м
Ширина: 0.2 м
Высота: 0.15 м
Теперь нужно изменить размер объекта 3D, чтобы он соответствовал заданным размерам нашего типа агента. Выберите фигуру 3D в графическом редакторе и в свойствах этой фигуры задайте Доп. масштабирование: 50%.
В секции Цвета свойств 3D фигуры укажите Мой цвет: black. Создайте разметку пространства
Дважды щелкните элемент Конвейер в секции Разметка пространства на палитре Библиотека производственных систем.
Нарисуйте конвейер в соответствии с изображением ниже.
Назовите его batteryConveyor.
В свойствах конвейера укажите следущее:
Тип материального объекта: Battery
Максимальная скорость: 0.5 м/с
Начальная скорость: 0.5 м/с
Z: 20
Ширина: 0.5 м
Перетащите
элемент Точка
конвейера из секции Разметка
пространства палитры
Библиотека
производственных систем на
графический
редактор
агента Main
и разместите его на
batteryConveyor.
Назовите новый элемент blockInputPosition.
С помощью этого элемента мы укажем точное место на конвейере, где группы электродов будут помещаться в корпус аккумулятора.
Перетащите элемент Прямоугольный узел с палитры Разметка пространства на графическую диаграмму агента Main и разместите его у начальной точки конвейера batteryConveyor.
Назовите узел caseBuffer.
В свойствах узла укажите:
Видимость: нет
Расположение внутри: Упорядоченное
Перетащите элемент Стреловой кран из секции Разметка пространства палитры Библиотека производственных систем на графический редактор агента Main и разместите его как указано на изображении ниже.
Назовите кран batteryBlockCrane.
В свойствах крана укажите следующее:
Тип материального объекта: BatteryBlock
В секции Местоположение и размер задайте значение параметра Длина плеча: 3 м и Высота крана: 4 м
Убедитесь в том, что рабочая зона крана полностью закрывает узел assembledBlocksBuffer и точку конвейера blockInputPosition. Перетаскивайте метку-манипулятор, расположенный на окончании плеча крана, чтобы увеличить/уменьшить размеры рабочей области.
Выберите опцию Недоступная зона и отрегулируйте ее угол с помощью меток-манипуляторов так, чтобы эта зона выглядела, как на изображении ниже:
Рисунок 22 - Недоступная зона
Добавьте процесс сборки аккумулятора в диаграмму процесса
Перетащите элемент Source с палитры Библиотеки моделирования процессов на графический редактор агента Main и
разместите его над блоком assembler. Убедитесь в том, что между этими двумя блоками не установилось соединение.
Назовите блок source: batterySource.
С его помощью мы будем создавать агентов типа Battery.
В свойствах блока batterySource укажите следующее:
Прибывают согласно: Интенсивности
Интенсивность прибытия: 10 в час
Местоположение прибытия: Узел сети / ГИС
Узел: caseBuffer
Новый агент: Battery
Уберите галочку в опции Выталкивать агентов.
Перетащите
блок Queue
с
палитры Библиотеки
моделирования процессов на графическую
диаграмму
агента Main
и разместите его после блока batterySource.
Убедитесь в том, что связь между этими
блоками
установилась.
С помощью этого блока мы смоделируем нахождение корпусов в зоне ожидания перед конвейером.
В свойствах блока queue укажите:
Вместимость: 25
Место агентов: caseBuffer.
Чтобы
промоделировать перемещение корпусов
аккумуляторов из области ожидания на
конвейер для сборки,
перетащите
блок Conveyor
Enter
с палитры
Библиотеки
производственных систем на графический
редактор
агента Main
и разместите его после блока
queue.
В свойствах блока conveyorEnter укажите:
Точка входа задается как: Точка конвейера
Точка конвейера: blockInputPosition
Чтобы
промоделировать перемещение групп
электродов из области ожидания в корпус
аккумулятора, перетащите блок
Move
By
Crane
с палитры Библиотеки производственных систем на графический редактор агента Main и разместите его после блока assembler.
Назовите новый блок toCase.
В свойствах блока toCase укажите следующее:
Кран: batteryBlockCrane
Место назначения: Агент
Время захвата: 5 секунд
Время освобождения: 5 секунд
В поле ввода параметра Агент добавьте следующую строку кода: blockInputPosition.getAgent().
Эта функция возвращает агента, который в данный момент находится в точке конвейера blockInputPosition.
Рисунок 23 – Свойства
Удалите соединитель между блоком toCase и блоком sink.
Перетащите
блок
Combine
с
палитры Библиотеки
моделирования процессов на графическую
диаграмму
агента Main
и разместите его после блока conveyorEnter.
Убедитесь в том, что соединение между
этими блоками установилось через
верхний входной порт блока combine.
Дважды щелкните выходной порт блока toCase и перетащите созданный соединитель к нижнему входному порту блока combine. Отпустите кнопку мыши, когда точка соединения станет голубого цвета, как показано на изображении ниже:
Рисунок 24 – Соединения
В свойствах блока combine укажите Объединенный агент: agent1.
Разместите блок sink после блока combine.
Запустите модель!
Синхронизируйте процесс сборки групп и процесс подготовки корпуса аккумулятор
Перетащите
блок Hold с палитры Библиотеки моделирования
процессов и разместите его в диаграмме
процессов между блоком assembler и блоком
toCase.
С помощью этого блока мы сможем контролировать поток групп электродов: мы будем останавливать поток, пока не появится новый корпус аккумулятора, куда можно будет поместить группы.
В свойствах блока hold укажите Режим: Блокировать после заданного количества агентов и выберите опцию Изначально заблокирован.
Теперь мы должны правильно выбрать момент вызова функции unblock(), чтобы синхронизировать два процесса.
В свойствах блока conveyorEnter распахните секцию Действия и введите следующую строку кода в поле При входе: hold.unblock()
Теперь функция unblock() блока hold будет вызываться каждый раз, когда корпус аккумулятора поступает на конвейер, где кран должен поместить в него группу электродов. В оставшееся время движение групп электродов будет заблокировано.
Запустите модель снова и понаблюдайте за процессом производства!
Фаза 5. Формировка аккумуляторов и проверка качества Подготовьте разметку пространства
Перетащите элемент Станция обработки из секции Разметка пространства палитры Библиотеки производственных систем на графическую диаграмму агента Main и разместите его на конвейере batteryConveyor.
Назовите станцию addCapAndTerminalsStation.
В свойствах станции укажите следующее:
Видимость: нет
Время обработки: 1 минута
Длина: 1 м
Добавьте на конвейер batteryConveyor еще одну станцию и назовите ее qaStation.
В свойствах станции укажите:
Видимость: нет
Время обработки: uniform( 20, 30 ) секунд
Длина: 1 м
Измените местоположение станций на конвейере в соответствии с изображением ниже:
Рисунок 25 - Изменение местоположения станции
Перетащите
элемент
Поворотный
стол из секции Разметка пространства
палитры
Библиотеки
производственных систем и разместите
его на конвейере batteryConveyor.
Дважды щелкните элемент Конвейер в палитре, чтобы переключиться в режим рисования, и нарисуйте еще одно ответвление конвейера от элемента turntable в соответствии с планом пространства.
Назовите новый конвейер defectiveBatteryConveyor и укажите его Ширину: 0.5 м.
Разместите еще одну станцию на конвейере batteryConveyor и назовите ее electrolyteFillingStation.
В свойствах станции укажите следующее:
Видимость: нет
Время обработки: 2 минуты
Количество: 3
Длина: 2.5 м
Рисунок 26 – Станция
Добавьте 3D анимацию
Перетащите 3D объект Машина термосварки крышки с палитры 3D объекты на графическую диаграмму агента Main и разместите его поверх станции addCapAndTerminalsStation.
В диалоговом окне Автомасштабирование 3D объекта щелкните кнопку Да.
Таким же образом используйте 3D объект Машина проверки герметичности, чтобы создать 3D анимацию для станции qaStation и объект Машина заливки электролита для станции electrolyteFillingStation.
Сверяйте местоположение 3D объектов с изображением ниже:
Рисунок 27 - Добавление 3D объекта
Мы можем сделать анимацию корпусов аккумуляторов более реалистичной. Изначально мы использовали простой черный контейнер, но на этом этапе мы добавляем крышку и выполняем сварку перемычек между
блоками. Все эти действия происходят на станции addCapAndTerminalsStation.
Перейдите в панель Проекты и дважды щелкните по агенту Battery в модельном дереве.
Перетащите 3D объект Аккумулятор с панели 3D объекты на графическую диаграмму агента Battery и разместите ее поверх ранее созданной фигуры анимации.
В диалоговом окне Автомасштабирование 3D объекта щелкните кнопку Да.
В свойствах 3D объекта Аккумулятор укажите Видимость: нет.
Перейдите в свойства станции addCapAndTerminalStation, распахните секцию Действия и введите следующий код в поле При окончании процесса: