Опубликован: 15.02.2013 | Доступ: свободный | Студентов: 255 / 0 | Длительность: 16:52:00
ISBN: 978-5-9556-0146-5
Лекция 7:

Модель функционирования предприятия

Построение событийной части модели

В событийную часть модели включим указанные ранее сегменты согласно представлению предприятия как системы массового обслуживания (см. рис. 6.1).

Модель будет содержать три активных объекта, элементы которых не могут физически вместиться в область диаграммы в окне презентации при выполнении модели, поэтому используем для каждого активного объекта элемент область просмотра. В дальнейшем после построения всех сегментов событийной части модели организуем переключение между областями просмотра. Создайте область просмотра для размещения сегментов событийной части модели на диаграмме класса Main.

  1. В Палитре выделите Презентация. Перетащите элемент Область просмотра.
  2. Перейдите на страницу Основные панели Свойства.
  3. В поле Имя: введите Mainview.
  4. Перейдите на страницу Дополнительные панели Свойства. Введите в поля X: 0, Y: 0, Ширина: 990, Высота: 390.
  5. Перетащите элемент Скруглённый прямоугольник. В нём мы разместим все сегменты модели. Оставьте имя, предложенное системой.
  6. Перейдите на страницу Дополнительные панели Свойства. Введите в поля X: 10, Y: 60, Ширина: 970, Высота: 320.
  7. Перетащите элементы Скруглённый прямоугольник, укажите имена сегментов и свойства согласно табл. 6.2. Шрифт, цвет и т.д. выберите по своему усмотрению.
Таблица 6.2.
Сегмент Свойства
Х: Y: Ширина: Высота:
Цеха 20 80 140 270
Посты контроля блоков 170 80 160 270
Пункты сборки изделий 340 80 120 270
Стенды контроля изделий 470 80 150 270
Пункты приёма изделий 630 80 170 270
Склад готовых изделий 810 80 160 130
Склад бракованных изделий 810 220 160 130
Размещение сегментов модели

увеличить изображение
Рис. 6.4. Размещение сегментов модели
Имитация работы цехов предприятия

Данный сегмент предназначен для имитации работы цехов, то есть изготовления и выпуска блоков через случайные интервалы времени, счёта количества изготовленных блоков, стоимости комплектующих изготовленных блоков по типам и за предприятие, стоимости изготовления блоков по типам и суммарной стоимости за предприятие.

  1. В Палитре выделите Enterprise Library.
  2. Перетащите объект sourсe на диаграмму класса Main и разместите в скругленном прямоугольнике с именем Цеха.
  3. Для записи и хранения параметров блоков и изделий в дополнительные поля заявок нужно создать нестандартный класс заявки. Создайте класс заявки Product.
  4. В панели Проект щелкните правой кнопкой мыши элемент модели верхнего уровня дерева и выберите в меню Создать Java класс.
  5. Появится диалоговое окно Новый Java класс. В поле Имя: введите имя нового класса Product.
  6. В поле Базовый класс: выберите из выпадающего списка Entity в качестве базового класса. Щелкните кнопку Далее.
  7. Появится вторая страница Мастера создания Java класса. Добавьте следующие поля Java класса, которые потребуются в дальнейшем при разработке модели:
    int numBlock;
    int sign1;
    int numBlBrak1;
    int numBlBrak2;
    int numBlBrak3;
    int numBlBrak4;
    double timeSbor;
    double cost;
  8. Оставьте выбранными флажки Создать конструктор и Создать метод toString().
  9. Щелкните кнопку Готово. Появится редактор кода и автоматически созданный код вашего Java класса. Закройте код.
  10. Выделите объект source. На странице Основные панели Свойства установите свойства согласно табл. 6.3.
    Таблица 6.3. Свойства объектов source
    Имя Свойства Значения
    Цех1 Отображать имя Установите флажок
    Класс заявки Product
    Заявки прибывают согласно Времени между прибытиями
    Время между прибытиями Exponential(1/aveTimeShop1)
    Количество заявок, прибывающих за один раз 1
    Новая заявка new Product()
    Действие при выходе if (a==0){
    costBlock1=stKomplBlock1+
    stIzgBlock1+stTestBlock1;
    costBlock2=stKomplBlock2+
    stIzgBlock2+stTestBlock2;
    costBlock3=stKomplBlock3+
    stIzgBlock3+stTestBlock3;
    costBlock4=stKomplBlock4+
    stIzgBlock4+stTestBlock4;
    costBlockIzd=costBlock1+
    costBlock2+costBlock3+
    costBlock4;
    minCostIzd=costBlockIzd+
    stSborki+
    stKontrIzd+stPriemIzd;
    a=1;}
    kolIzgBlock1++;
    entity.numBlock = 1;
    entity.timeSbor =
    exponential(1/timeSborki);
    costKomplBlock1 += stKomplBlock1;
    costKomplBlock += stKomplBlock1;
    costIzgBlock1 += stIzgBlock1;
    sumCostBlock1 += (stKomplBlock1+stIzgBlock1);
    costIzgBlock += stIzgBlock1;
    sumCostBlock += (stKomplBlock1+stIzgBlock1);
    цех2 Отображать имя Установите флажок
    Класс заявки Product
    Заявки прибывают согласно Времени между прибытиями
    Время между прибытиями Exponential(1/aveTimeShop2)
    Количество заявок, прибывающих за один раз 1
    Новая заявка new Product()
    Действие при выходе kolIzgBlock2++;
    entity.numBlock = 2;
    costKomplBlock2 += stKomplBlock2;
    costKomplBlock += stKomplBlock2;
    costIzgBlock2 += stIzgBlock2;
    sumCostBlock2 += (stKomplBlock2+stIzgBlock2);
    costIzgBlock += stIzgBlock2;
    sumCostBlock += (stKomplBlock2+stIzgBlock2);
    цех3 Отображать имя Установите флажок
    Класс заявки Product
    Заявки прибывают согласно Времени между прибытиями
    Время между прибытиями Exponential(1/aveTimeShop3)
    Количество заявок, прибывающих за один раз 1
    Новая заявка new Product()
    Действие при выходе kolIzgBlock3++;
    entity.numBlock = 3;
    costKomplBlock3 += stKomplBlock3;
    costKomplBlock += stKomplBlock3;
    costIzgBlock3 += stIzgBlock3;
    sumCostBlock3 += (stKomplBlock3+stIzgBlock3);
    costIzgBlock += stIzgBlock3;
    sumCostBlock += (stKomplBlock3+stIzgBlock3);
    цех4 Отображать имя Установите флажок
    Класс заявки Product
    Заявки прибывают согласно Времени между прибытиями
    Время между прибытиями Exponential(1/aveTimeShop4)
    Количество заявок, прибывающих за один раз 1
    Новая заявка new Product()
    Действие при выходе kolIzgBlock4++;
    entity.numBlock = 4;
    costKomplBlock4 += stKomplBlock4;
    costKomplBlock += stKomplBlock4;
    costIzgBlock4 += stIzgBlock4;
    sumCostBlock4 += (stKomplBlock4+stIzgBlock4);
    costIzgBlock += stIzgBlock4;
    sumCostBlock += (stKomplBlock4+stIzgBlock4);
  11. Щелкните выделенный source правой кнопкой мыши и в контекстном меню выберите Копировать.
  12. Вставьте в скругленный прямоугольник с именем Цеха еще три объекта source. Разместите их вертикально один под другим. Во время вставки имена объектов будут изменяться: цех2, цех3, цех4. Однако остальные свойства останутся такими же, как и у объекта цех1. Поэтому, последовательно выделяя второй, третий и четвертый объекты source, скорректируйте их свойства также согласно табл. 6.3.
Алексей Гроссман
Алексей Гроссман

Здравствуйте, прошел курс "Концептуальное проектирование систем в AnyLogic и GPSS World". Можно ли получить по нему сертификат? У нас в институте требуют сертификаты для создания портфолио.

Елена Блинаева
Елена Блинаева