Материал: 7лаб

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
  1. Начальный конвейер: wrappingConveyor.

  2. Конечный конвейер: wrappingConveyor.

с. Выберите опцию Покинуть конвейер при выходе.

Цвет электродов в конвертах изменится. Чтобы это продемонстрировать, мы используем элемент wrappingStation.

    1. Откройте свойства станции wrappingStation и распахните секцию Действия.

    2. В поле При окончании процесса введите следующий код: agent.color = white;

    3. Запустите модель и посмотрите, как электроды оборачиваются в конверты.

Сборка блоков

Создадим новый тип материального объекта, который будет выполнять роль блока электродов.

Создайте новый тип материального объекта

  1. Перетащите элемент Тип материального объекта с палитры Библиотеки производственных систем на графическую диаграмму агента Main.

  2. В диалоговом окне Создание агента укажите Имя типа агента:

BatteryBlock и щелкните кнопку Готово.

  1. В графическом редакторе агента BatteryBlock выберите элемент Масштаб и задайте значение параметра Длина линейки соответствует: 1 м.

  2. Перетащите 3D объект Группа пласти аккумулятора с палитры 3D объекты на графическую диаграмму агента BatteryBlock и разместите его в точке начала координат.

  3. В диалоговом окне Автомасштабирование 3D oбъекта щелкните кнопку Да.

  4. Дважды скопируйте 3D объект (Ctrl+перетаскивание) и расположите копии в соответствии с изображением ниже:

Рисунок 20 - Новый тип материального объекта

Добавьте процесс сборки блока электродов в диаграмму процесса

  1. Перетащите блок Assembler с палитры Библиотеки моделирования процессов на графический редактор агента Main и добавьте его в диаграмму процессов перед блоком sink.

  2. Убедитесь в том, что предыдущий блок соединился с самым верхним входным портом блока assembler.

  3. В свойствах блока assembler задайте следующие параметры:

  1. Количество 1: 15. Здесь мы задаем количество входящих агентов одного типа, необходимых для формирования одного нового агента.

  2. Количество 2: 0.

  3. Новый агент: BatteryBlock.

  4. Время задержки: 5 минут. Здесь задается время, необходимое для сборки

одного блока электродов.

  1. Вместимость буфера на выходе: 1. Здесь мы создаем буфер, в котором собранный новый агент (блок электродов) будет ожидать, когда его примет следущий блок в диаграмме процесса, поскольку этому блоку нужно будет знать координаты нового собранного агента.

  2. Место нового агента: Узел сети/ГИС.

  3. Узел: assembledBlocksBuffer.

  4. Место агентов (delay): assembleArea. Здесь мы задаем место, где будет происходить непосредственно процесс сборки блока.

Добавьте ресурсы

    1. Перетащите элемент Тип ресурса с палитры Библиотеки моделирования процессов на графическую диаграмму агента Main.

    2. В диалоговом окне Создание агента укажите Имя типа агента:

Operator и щелкните кнопку Далее.

    1. В списке 3D объектов распахните секцию Люди и выберите объект Рабочий. Щелкните кнопку Готово.

    2. Перетащите элемент Точечный узел с палитры Разметка пространства на графическую диаграмму агента Main.

    3. Разместите его рядом с узлом assembleUnitLocation как указано на изображении ниже:

Рисунок 21 - Добавление ресурса

    1. Назовите узел operatorLocation. Во время выполнения модели наш рабочий будет находиться здесь.

    2. В свойствах узла выберите опцию Видимость: нет.

    3. Перетащите блок ResourcePool с палитры Библиотеки моделирования процессов на графическую диаграмму агента Main.

    4. Назовите новый блок operator.

    5. Перейдите в свойства блока и в параметре Новый ресурс выберите тип агента Operator.

    6. В параметре Базовое местоположение (узлы) выберите узел

operatorLocation.

    1. Перейдите в свойства блока assembler и выберите оператора в параметре Набор ресурсов, щелкнув по кнопке .

Фаза 4. Сборка аккумуляторов

Добавьте новый тип материального объекта

  1. Перетащите элемент Тип материального объекта с палитры Библиотеки производственных систем на графическую диаграмму агента Main.

  2. В диалоговом окне Создание агента укажите Имя типа агента:

Battery и щелкните кнопку Далее.

  1. Распахните секцию Склады и контейнерные терминалы в списке 3D объектов и выберите Промышленный контейнер 1. Щелкните кнопку Готово.

  2. В графическом редакторе агента Battery выберите элемент Масштаб и задайте значение параметра Длина линейки соответствует: 1 м.

  3. Перейдите в секцию Размеры и движение свойств агента Battery укажите следующее:

  1. Длина: 0.3 м

  2. Ширина: 0.2 м

  3. Высота: 0.15 м

  1. Теперь нужно изменить размер объекта 3D, чтобы он соответствовал заданным размерам нашего типа агента. Выберите фигуру 3D в графическом редакторе и в свойствах этой фигуры задайте Доп. масштабирование: 50%.

  2. В секции Цвета свойств 3D фигуры укажите Мой цвет: black. Создайте разметку пространства

  1. Дважды щелкните элемент Конвейер в секции Разметка пространства на палитре Библиотека производственных систем.

  2. Нарисуйте конвейер в соответствии с изображением ниже.

  3. Назовите его batteryConveyor.

  4. В свойствах конвейера укажите следущее:

  1. Тип материального объекта: Battery

  2. Максимальная скорость: 0.5 м/с

  3. Начальная скорость: 0.5 м/с

  4. Z: 20

  5. Ширина: 0.5 м

  1. Перетащите элемент Точка конвейера из секции Разметка пространства палитры Библиотека производственных систем на графический редактор агента Main и разместите его на batteryConveyor.

  2. Назовите новый элемент blockInputPosition.

С помощью этого элемента мы укажем точное место на конвейере, где группы электродов будут помещаться в корпус аккумулятора.

  1. Перетащите элемент Прямоугольный узел с палитры Разметка пространства на графическую диаграмму агента Main и разместите его у начальной точки конвейера batteryConveyor.

  2. Назовите узел caseBuffer.

  3. В свойствах узла укажите:

  1. Видимость: нет

  2. Расположение внутри: Упорядоченное

  1. Перетащите элемент Стреловой кран из секции Разметка пространства палитры Библиотека производственных систем на графический редактор агента Main и разместите его как указано на изображении ниже.

  2. Назовите кран batteryBlockCrane.

  3. В свойствах крана укажите следующее:

  1. Тип материального объекта: BatteryBlock

  2. В секции Местоположение и размер задайте значение параметра Длина плеча: 3 м и Высота крана: 4 м

  1. Убедитесь в том, что рабочая зона крана полностью закрывает узел assembledBlocksBuffer и точку конвейера blockInputPosition. Перетаскивайте метку-манипулятор, расположенный на окончании плеча крана, чтобы увеличить/уменьшить размеры рабочей области.

  2. Выберите опцию Недоступная зона и отрегулируйте ее угол с помощью меток-манипуляторов так, чтобы эта зона выглядела, как на изображении ниже:

Рисунок 22 - Недоступная зона

Добавьте процесс сборки аккумулятора в диаграмму процесса

  1. Перетащите элемент Source с палитры Библиотеки моделирования процессов на графический редактор агента Main и

разместите его над блоком assembler. Убедитесь в том, что между этими двумя блоками не установилось соединение.

  1. Назовите блок source: batterySource.

С его помощью мы будем создавать агентов типа Battery.

  1. В свойствах блока batterySource укажите следующее:

  1. Прибывают согласно: Интенсивности

  2. Интенсивность прибытия: 10 в час

  3. Местоположение прибытия: Узел сети / ГИС

  4. Узел: caseBuffer

  5. Новый агент: Battery

  1. Уберите галочку в опции Выталкивать агентов.

  2. Перетащите блок Queue с палитры Библиотеки моделирования процессов на графическую диаграмму агента Main и разместите его после блока batterySource. Убедитесь в том, что связь между этими блоками установилась.

С помощью этого блока мы смоделируем нахождение корпусов в зоне ожидания перед конвейером.

  1. В свойствах блока queue укажите:

  1. Вместимость: 25

  2. Место агентов: caseBuffer.

  1. Чтобы промоделировать перемещение корпусов аккумуляторов из области ожидания на конвейер для сборки, перетащите блок Conveyor Enter с палитры Библиотеки производственных систем на графический редактор агента Main и разместите его после блока queue.

  2. В свойствах блока conveyorEnter укажите:

  1. Точка входа задается как: Точка конвейера

  2. Точка конвейера: blockInputPosition

  1. Чтобы промоделировать перемещение групп электродов из области ожидания в корпус аккумулятора, перетащите блок Move By Crane

с палитры Библиотеки производственных систем на графический редактор агента Main и разместите его после блока assembler.

  1. Назовите новый блок toCase.

  2. В свойствах блока toCase укажите следующее:

  1. Кран: batteryBlockCrane

  2. Место назначения: Агент

  3. Время захвата: 5 секунд

  4. Время освобождения: 5 секунд

  1. В поле ввода параметра Агент добавьте следующую строку кода: blockInputPosition.getAgent().

Эта функция возвращает агента, который в данный момент находится в точке конвейера blockInputPosition.

Рисунок 23 – Свойства

  1. Удалите соединитель между блоком toCase и блоком sink.

  2. Перетащите блок Combine с палитры Библиотеки моделирования процессов на графическую диаграмму агента Main и разместите его после блока conveyorEnter. Убедитесь в том, что соединение между этими блоками установилось через верхний входной порт блока combine.

  3. Дважды щелкните выходной порт блока toCase и перетащите созданный соединитель к нижнему входному порту блока combine. Отпустите кнопку мыши, когда точка соединения станет голубого цвета, как показано на изображении ниже:

Рисунок 24 – Соединения

  1. В свойствах блока combine укажите Объединенный агент: agent1.

  2. Разместите блок sink после блока combine.

  3. Запустите модель!

Синхронизируйте процесс сборки групп и процесс подготовки корпуса аккумулятор

  1. Перетащите блок Hold с палитры Библиотеки моделирования процессов и разместите его в диаграмме процессов между блоком assembler и блоком toCase.

С помощью этого блока мы сможем контролировать поток групп электродов: мы будем останавливать поток, пока не появится новый корпус аккумулятора, куда можно будет поместить группы.

  1. В свойствах блока hold укажите Режим: Блокировать после заданного количества агентов и выберите опцию Изначально заблокирован.

Теперь мы должны правильно выбрать момент вызова функции unblock(), чтобы синхронизировать два процесса.

  1. В свойствах блока conveyorEnter распахните секцию Действия и введите следующую строку кода в поле При входе: hold.unblock()

Теперь функция unblock() блока hold будет вызываться каждый раз, когда корпус аккумулятора поступает на конвейер, где кран должен поместить в него группу электродов. В оставшееся время движение групп электродов будет заблокировано.

  1. Запустите модель снова и понаблюдайте за процессом производства!

Фаза 5. Формировка аккумуляторов и проверка качества Подготовьте разметку пространства

  1. Перетащите элемент Станция обработки из секции Разметка пространства палитры Библиотеки производственных систем на графическую диаграмму агента Main и разместите его на конвейере batteryConveyor.

  2. Назовите станцию addCapAndTerminalsStation.

  3. В свойствах станции укажите следующее:

  1. Видимость: нет

  2. Время обработки: 1 минута

  3. Длина: 1 м

  1. Добавьте на конвейер batteryConveyor еще одну станцию и назовите ее qaStation.

  2. В свойствах станции укажите:

  1. Видимость: нет

  2. Время обработки: uniform( 20, 30 ) секунд

  3. Длина: 1 м

  1. Измените местоположение станций на конвейере в соответствии с изображением ниже:

Рисунок 25 - Изменение местоположения станции

  1. Перетащите элемент Поворотный стол из секции Разметка пространства палитры Библиотеки производственных систем и разместите его на конвейере batteryConveyor.

  2. Дважды щелкните элемент Конвейер в палитре, чтобы переключиться в режим рисования, и нарисуйте еще одно ответвление конвейера от элемента turntable в соответствии с планом пространства.

  3. Назовите новый конвейер defectiveBatteryConveyor и укажите его Ширину: 0.5 м.

  4. Разместите еще одну станцию на конвейере batteryConveyor и назовите ее electrolyteFillingStation.

  5. В свойствах станции укажите следующее:

  1. Видимость: нет

  2. Время обработки: 2 минуты

  1. Количество: 3

  2. Длина: 2.5 м

Рисунок 26 – Станция

Добавьте 3D анимацию

    1. Перетащите 3D объект Машина термосварки крышки с палитры 3D объекты на графическую диаграмму агента Main и разместите его поверх станции addCapAndTerminalsStation.

    2. В диалоговом окне Автомасштабирование 3D объекта щелкните кнопку Да.

    3. Таким же образом используйте 3D объект Машина проверки герметичности, чтобы создать 3D анимацию для станции qaStation и объект Машина заливки электролита для станции electrolyteFillingStation.

    4. Сверяйте местоположение 3D объектов с изображением ниже:

Рисунок 27 - Добавление 3D объекта

Мы можем сделать анимацию корпусов аккумуляторов более реалистичной. Изначально мы использовали простой черный контейнер, но на этом этапе мы добавляем крышку и выполняем сварку перемычек между

блоками. Все эти действия происходят на станции addCapAndTerminalsStation.

  1. Перейдите в панель Проекты и дважды щелкните по агенту Battery в модельном дереве.

  2. Перетащите 3D объект Аккумулятор с панели 3D объекты на графическую диаграмму агента Battery и разместите ее поверх ранее созданной фигуры анимации.

  3. В диалоговом окне Автомасштабирование 3D объекта щелкните кнопку Да.

  4. В свойствах 3D объекта Аккумулятор укажите Видимость: нет.

  5. Перейдите в свойства станции addCapAndTerminalStation, распахните секцию Действия и введите следующий код в поле При окончании процесса: