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

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

Имитация склада готовых изделий

Для имитации склада готовых изделий используйте объект sink со следующими свойствами:

  • Имя: ГотИзделия
  • Класс заявки: Product
  • Действие при выходе
    kolGotIzd++;
    timeIzd = time()/kolGotIzd;
    costGotIzd += entity.cost;
    minCostGotIzd+=minCostIzd;
    koefIncrCostIzd = 
    (costGotIzd+costBrakBlock)/minCostGotIzd;
    ostGotBlock1 = gotBlock1 - kolGotIzd - zamBlock1;
    ostGotBlock2 = gotBlock2 - kolGotIzd - zamBlock2;
    ostGotBlock3 = gotBlock3 - kolGotIzd - zamBlock3;
    ostGotBlock4 = gotBlock4 - kolGotIzd - zamBlock4;

Код свойства Действие при выходе введен для счёта количества kolGotIzd готовых изделий, их стоимости costGotIzd и коэффициента koefIncrCostIzd увеличения себестоимости изделия вследствие наличия брака.

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

Имитация склада бракованных блоков

Ранее (см. п. 6.2.4.2) для имитации склада бракованных блоков было рекомендовано использовать один объект sink.

Предположим, что требуется вести раздельный учёт забракованных блоков на постах контроля цехов и забракованных на стендах контроля и пунктах приёма изделий. Для разделения потока брака дополнительному полю entity.sign1 присваивались признаки 1 или 2.

  1. Перетащите объекты selectOutput и sink на прямоугольник с именем Склад бракованных блоков диаграммы класса Main.
  2. Разместите и соедините их согласно рис. 6.12.
  3. Поочередно выделите объекты имитации склада бракованных блоков, начиная с объекта selectOutput, и установите свойства согласно табл. 6.8.

    Коды в свойстве Действие при выходе обоих объектов sink одинаковые. Они предназначены для счёта:

    • стоимости costzbrakBlock забракованных блоков не по типам, а в целом всех блоков;
    • количества забракованных блоков по типам allBrakBlock1… allBrakBlock4.
  4. Из палитры Картинки перетащите на сегменты имитации складов готовых изделий и бракованных блоков картинки Склад.
Таблица 6.8.
Свойства Значение
selectOutput
Класс заявки: Product
Выход true выбирается При выполнении условия
Условие entity.sign1 == 1
sink
Имя БрПостКонтр
Класс заявки: Product
Действие при выходе if (entity.numBlBrak1 == 1)
{costBrakBlock += costBlock1;
allBrakBlock1++;}
if (entity.numBlBrak2 == 1)
{costBrakBlock += costBlock2 ;
allBrakBlock2++;}
if (entity.numBlBrak3 == 1)
{costBrakBlock += costBlock3;
allBrakBlock3++;}
if (entity.numBlBrak4 == 1)
{costBrakBlock += costBlock4;
allBrakBlock4++;}
Имя БрБлЗам
Класс заявки: Product
Действие при выходе if (entity.numBlBrak1 == 1)
{costBrakBlock += costBlock1;
allBrakBlock1++;}
if (entity.numBlBrak2 == 1)
{costBrakBlock += costBlock2;
allBrakBlock2++;}
if (entity.numBlBrak3 == 1)
{costBrakBlock += costBlock3;
allBrakBlock3++;}
if (entity.numBlBrak4 == 1)
{costBrakBlock += costBlock4;
allBrakBlock4++;}
Замечание. Можно обойтись и одним объектом sink для имитации склада бракованных блоков. Для этого нужно оба кода (см. табл. 6.8) занести в его свойство Действие при выходе.

В начало первого кода добавить:

if (entity.sign1 == 1)
{  код для БрПостКонтр  }
а во второго
if (entity.sign1 == 2)
{  код для БрБлЗам      }

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

Организация переключения между областями просмотра

Добавьте свои собственные элементы презентации на ранее созданные области просмотра Mainview, Data, Result, Kont1 и Sbor, щелчком на которых будет производиться переход к той или иной области просмотра. Сделайте так, чтобы из любой области можно было переходить в любую другую область.

Для этого разместите на каждой области просмотра элементы презентации, показанные на рис. 6.13.

Элементы презентации для переключения

увеличить изображение
Рис. 6.13. Элементы презентации для переключения

Начните с области просмотра Mainview.

  1. В Палитре выделите Презентация. Перетащите элемент text на область просмотра Mainview, разместите и введите в поле Текст: Предприятие (рис. 6.13). На странице Основные панели Свойства установите в поле Цвет: black, а также выберите выравнивание текста и шрифт.
  2. Перетащите второй элемент text, разместите и введите в поле Текст: Посты контроля блоков. На странице Основные панели Свойства установите в поле Цвет: blue, а также выберите выравнивание текста и шрифт. На панели Свойства выделите Динамические и в поле Действие по щелчку: введите код: test.Kontr1.navigateTo();
    Замечание. Можете выбрать и другие цвета элементов презентации. При этом нужно исходить из того, чтобы различались по цвету текст открытой области просмотра и тексты закрытых областей просмотра.
  3. Перетащите третий элемент text, разместите и введите в поле Текст: Пункты сборки изделий. На панели Свойства выделите Динамические и в поле Действие по щелчку: введите: sborka.Sbor.navigateTo();
  4. Перетащите четвертый элемент text, разместите и введите в поле Текст: Исходные данные. На панели Свойства выделите Динамические и в поле Действие по щелчку: введите: Data.navigateTo();
  5. Перетащите пятый элемент text, разместите и введите в поле Текст: Результаты моделирования. На панели Свойства выделите Динамические и в поле Действие по щелчку: введите: Result.navigateTo();

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

  1. Скопируйте элементы презентации так, как они показаны на рис. 6.13.
  2. Последовательно переходите на остальные области просмотра, вставьте скопированные элементы презентации и внесите правки в их свойства согласно табл. 6.9.

Построение модели для проведения простого эксперимента завершено. Теперь отладьте модель и проведите эксперимент.

Замечание. При каждом запуске модели результаты будут повторяться, если в модели используются только распределения и случайные функции из AnyLogic. Например, если вместо функции uniform(1) использовать функцию random(), которая является функцией Java, результаты моделирования воспроизводиться не будут.
Таблица 6.9.
Элемент презентации Действие по щелчку
Data
Предприятие Mainview.navigateTo();
Посты контроля блоков test.Kontr1.navigateTo();
Пункты сборки изделий sborka.Sbor.navigateTo();
Исходные данные
Результаты моделирования Result.navigateTo();
Result
Предприятие Mainview.navigateTo();
Посты контроля блоков test.Kontr1.navigateTo();
Пункты сборки изделий sborka.Sbor.navigateTo();
Исходные данные Data.navigateTo();
Результаты моделирования
Kontrol
Предприятие get_Main().Mainview.navigateTo();
Посты контроля блоков
Пункты сборки изделий get_Main().sborka.Sbor.navigateTo();
Исходные данные get_Main().Data.navigateTo();
Результаты моделирования get_Main().Result.navigateTo();
Sbor
Предприятие get_Main().Mainview.navigateTo();
Посты контроля блоков get_Main().test.Kontr1.navigateTo();
Пункты сборки изделий
Исходные данные get_Main().Data.navigateTo();
Результаты моделирования get_Main().Result.navigateTo();
Алексей Гроссман
Алексей Гроссман

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

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