Фаза 7. Разделение процесса производства электродов на аноды и катоды

В течение всех предыдущих фаз учебного пособия мы моделировали процесс производства аккумуляторов с одним типом электродов. В реальности аккумулятор состоит из электродов двух типов: анодов (с отрицательным зарядом) и катодов (с положительным зарядом). Процессы производства и обработки этих двух типов достаточно схожи, и поэтому их оба можно описать с помощью уже созданной диаграммы процесса. Чтобы не дублировать последовательность блоков, мы создадим две копии своего нестандартного блока, в который войдет эта последовательность, и с помощью параметров опишем в одном блоке процесс создания и обработки анодов, а в другом - катодов.

Но для начала мы нарисуем нужные нам элементы разметки пространства для зоны создания и обработки второго типа электродов.

Подготовьте разметку пространства

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


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

    a. Тип материального объекта: Electrode
    b. Z: 20
    c. Ширина: 0.5 м

  3. Разместите поверх нового конвейера Станцию обработки.
  4. Назовите ее cathodeCoatingStation.
  5. В свойствах станции укажите следующее:

    a. Видимость: нет
    b. Время обработки: 1 секунда
    c. Длина: 0.5 м

  6. В свойствах станции распахните секцию Действия и введите следующий код в поле При окончании процессаagent.color = silver;

    С помощью этого кода мы зададим цвет катодов на выходе из пастонамазочной станции.

  7. Используйте Прямоугольный узел, чтобы нарисовать область возле конечной точки конвейера cathodeConveyor. В этой области катоды, прошедшие обработку на конвейере, будут ожидать доставки в сушильную камеру.
  8. Назовите новый узел cathodePlatesBuffer.
  9. В свойствах узла укажите следующее:

    a. Видимость: нет
    b. Расположение внутри: Упорядоченное

  10. Теперь, используя тот же элемент, нарисуйте область сушильных камер для катодов в соответствии с изображением ниже.
  11. Назовите ее cathodeCuringOven.
  12. В свойствах узла cathodeCuringOven укажите Видимость: нет.
  13. Щелкните кнопку Аттракторы...  и в диалоговом окне укажите режим создания аттракторов в узле: сетка 5 x 1.


  14. Нарисуйте еще один Прямоугольный узел возле установки пайки блоков аккумулятора.
  15. Назовите его preassembleCathodesBuffer.
  16. Задайте параметр Видимость: нет и Расположение внутри: Упорядоченное.

    В этой области катоды, которые прошли дегидратацию, будут ожидать сборки в группы.


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

  1. Перейдите в палитру 3D объекты и перетащите 3D объект Сушильная камера с палитры на графическую диаграмму агента  Main.
  2. Разместите его поверх аттрактора в узле cathodeCuringOven.
  3. Убедитесь в том, что объект не выступает за стены и полностью закрывает собой аттрактор.  
  4. Поверните фигуру с помощью метки-манипулятора так, чтобы вход в сушильну камеру был расположен напротив конвейера cathodeConveyor.
  5. Создайте еще четыре копии 3D объекта, перетаскивая его с зажатой клавишей Ctrl. Разместите 3D объекты в соответствии с изображением ниже. Не забывайте о том, что размещение аттракторов также можно менять, перетаскивая их внутри узла.


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

Создайте нестандартный блок

  1. Выберите первые семь блоков диаграммы процесса (начиная с блока source по блок unbatchElectrodes включительно) и щелкните правой кнопкой мыши по выделенной области.
  2. Из контекстного меню выберите опцию Создать блок диаграммы процесса.


  3. В диалоговом окне Создание агента укажите Имя нового блока: PrepareElectrode.
  4. На месте выделенных блоков в диаграмме процесса появится новый блок prepareElectrode со стандартной иконкой.
  5. В модельном дереве в панели Проекты появится агент PrepareElectrode.

Выберите блок prepareElectrode в графическом редакторе. В свойствах блока вы увидите параметры тех блоков, которые мы объединили для создания prepareElectrodes. Метки параметров генерируются автоматически и не очень удобны для чтения. Далее мы отредактируем эти метки и настроим сами параметры.

Измените метки параметров нестандартного блока

  1. Дважды щелкните по агенту PrepareElectrode в панели Проекты, чтобы открыть его в графическом редакторе. Вы увидите все параметры блока на графической диаграмме агента.
  2. Чтобы изменить метку параметра, выберите параметр и перейдите в секцию Редактор значения его свойств. Введите в поле Метка новое название параметра.


  3. Таким же образом измените метки параметров в соответствии с таблицей, приведенной ниже.

    Внимание! В таблице приведены не все параметры. Не волнуйтесь и пропускайте те, которые не указаны в таблице: мы займемся их редактированием позже.

    Название параметра

    Новая метка

    batch_batchSize

    Batch size

    batch_EntityLocation

    Location of plates for batching

    batch_LocationNode

    Batch location

    convey_sourceConveyor

    Electrodes source conveyor

    convey_targetConveyor

    Electrodes target conveyor

    delay_delayTime

    Curing time

    delay_entityLocation

    Curing location

    source_entitiesPerArrival

    Electrodes per arrival

    source_interarrivalTime

    Electrodes interarrival time

    toElectrodeBuffer_destinationNode

    Electrodes buffer

    toElectrodeBuffer_loadingTime

    Time to load at the oven

    toElectrodeBuffer_unloadingTime

    Time to unload at the buffer

    toOven_destinationNode

    Curing oven

    toOven_fleet

    Forklifts fleet

    toOven_loadingTime

    Time to load batch from the conveyor

    toOven_unloadingTime

    Time to unload batch at the oven

Теперь перейдем к настройке оставшихся параметров.

Настройте параметры нестандартного блока
  1. Поскольку в этой модели и аноды, и катоды заданы агентом  Electrode, перейдите в свойства блока source, выбрав его на графической диаграмме агента  PrepareElectrode, переключите поле Новый агент в режим редактора значения и выберите агента  Electrode из выпадающего списка.
  2. Удалите параметр source_newEntity с графической диаграммы агента  PrepareElectrode.
  3. Партии анодов и катодов также задаются с помощью одного агента  PlatesBatch. В свойствах блока batch переключите поле Новая партия в режим редактора значения и выберите из выпадающего списка агента  PlatesBatch.
  4. Удалите параметр  batch_newBatch с графической диаграммы агента  PrepareElectrode.
  5. Партии анодов и катодов будут перевозить погрузчики одного автопарка, поэтому перейдите в свойства блока toElectrodeBuffer и укажите Автопарк: toOven_fleet(agent)
  6. Удалите параметр  toElectrodeBuffer_fleet.
Теперь давайте заменим стандартный значок блока на следующее изображение:
  1. Щелкните по изображению правой кнопкой мыши и сохраните его в папку модели.
  2. Удалите голубой прямоугольник стандартного значка с графического редактора агента  PrepareElectrode.
  3. Перетащите элемент Изображение с палитры  Презентация на графическую диаграмму агента  PrepareElectrode и разместите его приблизительно в той области, где находился голубой прямоугольник.
  4. В открывшемся диалоговом окне перейдите в папку модели, где вы сохранили изображение для значка и выберите его.
  5. В свойствах изображения выберите опцию Значок.
  6. Отрегулируйте местоположение изображения так, чтобы порт соединителя находился точно на краю изображения:

  7. Перейдите в свойства изображения и распахните секцию Специфические. В поле Действие по щелчку введите следующий кодreturn true;

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

  8. Теперь следует добавить счетчик агентов на выходе из блока. Перетащите элемент  Текст с палитры Presentation и разместите его рядом с нижним правым углом нового значка.
  9. В свойствах текста задайте следующее:

    a. Выберите опцию Значок.
    b. В поле Текст введите любое значение, например, 0. Переключите поле в режим редактора динамического значения и введите следующее выражение: source.out.count()В

    Это выражение возвращает количество агентов, прошедших через выходной порт блока source, который является частью нашего нестандартного блока.

    c. В параметре Цвет выберите значение blue.

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

  1. Перейдите на графическую диаграмму агента  Main и переименуйте блок prepareElectrode в prepareAnode.
  2. Перетащите элемент  PrepareElectrode из дерева модели на графическую диаграмму агента  Main и соедините его со вторым входным портом блока assembler, как указано на изображении ниже.
  3. Назовите новый блок prepareCathode.


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

    a. Batch size: 100
    b. Location of plates for batching: cathodePlatesBuffer
    c. Batch location: cathodePlatesBuffer
    d. Electrodes source conveyor: cathodeConveyor
    e. Electrodes target conveyor: cathodeConveyor
    f. Curing time: 2 minutes
    g. Curing location: cathodeCuringOven
    h. Electrodes per arrival: 200
    i. Electrodes interarrival time: 1.5 hours
    j. Electrodes buffer: preassembleCathodesBuffer
    k. Time to load at the oven: 0.5 minutes
    l. Time to unload at the buffer: 0.5 minutes
    m. Curing oven: cathodeCuringOven
    n. Forklifts fleet: forklifts
    o. Time to load batch from the conveyor: 0.5 minutes
    p. Time to unload batch at the oven: 0.5 minutes

  5. Теперь перейдите в свойства блока assembler и укажите Количество 2: 15.
  6. Запустите модель!

Вы увидите, как электроды обоих типов создаются, проходят пастонамазочную станцию и процесс дегидратации в сушильных камерах, а затем перемещаются на второй конвейер, где на станции сборки формируются в блоки, после чего помещаются в пластиковые корпусы аккумуляторов. Обратите внимание, что одиночные электроды меняют цвет, когда проходят пастонамазочную станцию из white (по умолчанию) в peru для анодов и silver для катодов. При этом цвет партий остается одинаковым для обоих типов электродов. Давайте это исправим!

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

Создайте список вариантов

  1. В панели Проекты щелкните правой кнопкой мыши по имени модели и выберите из контекстного меню опцию Создать >  Список вариантов.


  2. В диалоговом окне Новый список вариантов укажите Имя: ElectrodeType.
  3. В таблице Задайте элементыpe укажите имена свойств агента: ANODE и CATHODE.

  4. Список вариантов появится в дереве модели в группе  Списки вариантов.

Добавьте параметр в свойства агента PlatesBatch

  1. Перетащите элемент  Параметр с палитры  Агент на графическую диаграмму агента PlatesBatch.
  2. Назовите его electrodeType.
  3. В свойствах параметра выберите его Тип: ElectrodeType.

На следующем этапе мы настроим динамическую смену цвета в фигуре анимации для партии электродов в зависимости от типа электрода.

Задайте динамическую смену цвета

  1. Выберите фигуру rectangle на графической диаграмме агента PlatesBatch.
  2. Переключите поле Цвет заливки в режим редактора динамического значения и введите следующий код: electrodeType == ANODE ? peru : silver

    С его помощью мы проверяем значение параметра electrodeType и задаем цвет фигуры анимации rectangle в зависимости от полученного результата. Если значение равно ANODE, задается цвет peru. В противном случае задается цвет silver.

Теперь давайте научим наш нестандартный блок узнавать разные типы электродов.

Укажите тип электрода в агенте prepareElectrode
  1. Добавьте параметр на графическую диаграмму агента  prepareElectrode.
  2. Назовите его electrodeType.
  3. В свойствах параметра выберите его Тип: ElectrodeType и задайте Метку: Electrode type.
  4. В свойствах блока batch переключите поле Новая партия в режим редактора динамического значения и укажите следующее: new PlatesBatch( electrodeType )
  5. Перейдите на графическую диаграмму агента  Main. В свойствах блока prepareAnode укажите Electrode type: ANODE.
  6. В свойствах блока prepareCathode укажите Electrode type: CATHODE.
  7. Запустите модель!

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

Контрольная модель: Lead Acid Battery Production Tutorial - Phase 7


          Фаза 6. Доставка в зарядное помещение

          Фаза 8. Производство электродов из свинцовой ленты