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

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

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

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

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

  1. На панели Проект щелкните Main правой кнопкой мыши и выберите из контекстного меню Создать/Класс активного объекта. Откроется окно Новый класс активного объекта.
  2. В поле Имя: задайте имя нового класса Test.
  3. Если нужно, в поле Описание: введите описание сущности, моделируемой этим классом. Щелкните кнопку Готово.

Создайте область просмотра на диаграмме класса Test для размещения объектов сегмента Посты контроля блоков.

  1. В Палитре выделите Презентация. Перетащите элемент Область просмотра.
  2. Перейдите на страницу Основные панели Свойства.
  3. В поле Имя: введите Kontr1.
  4. Перейдите на страницу Дополнительные панели Свойства. Введите в поля X: 0, Y: 0, Ширина: 590, Высота: 390.

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

Создайте элемент нового класса активного объекта Test.

  1. Из Палитры Основная перетащите элемент Порт и разместите сверху в крайнем левом ряду (рис. 6.5).
    Размещение элементов Порт на объекте Test

    Рис. 6.5. Размещение элементов Порт на объекте Test
  2. На странице Основные панели Свойства имя port замените именем Блок1.
  3. Скопируйте элемент Порт с именем Блок1.
  4. Вставьте три элемента Порт (см. рис. 6.5). При вставке последовательно будут изменяться их имена: Блок2, Блок3, Блок4.
  5. Из Палитры Основная перетащите элемент Порт и разместите сверху в среднем ряду (см. рис. 6.5).
  6. На странице Основные панели Свойства имя port замените именем БракБл1.
  7. Скопируйте элемент Порт с именем БракБл1.
  8. Вставьте три элемента Порт (см. рис. 6.5). При вставке последовательно будут изменяться их имена: БракБл2, БракБл3, БракБл4.
  9. Из Палитры Основная перетащите элемент Порт и разместите сверху в крайнем правом ряду (см. рис. 6.5).
  10. На странице Основные панели Свойства имя port замените именем ГотБл1.
  11. Скопируйте элемент Порт с именем ГотБл1.
  12. Вставьте три элемента Порт (см. рис. 6.5). При вставке последовательно будут изменяться их имена: ГотБл2, ГотБл3, ГотБл4.
  13. По мере размещения элементов Порт они автоматически будут объединяться прямоугольником (с пунктирными линиями) и появится надпись Значок.
  14. Возвратитесь на диаграмму класса Main.
  15. На панели Проект выделите Test, перетащите на диаграмму класса Main элемент класса Test, разместите и соедините так, как на рис. 6.6. Порты БракБл1…БракБл4 соедините с объектом sink сегмента Склад бракованных блоков, предварительно разместив его там.
  16. Элемент диаграммы активного класса Test создан. Возвратитесь на диаграмму класса Test.

Для имитации работы постов контроля блоков одного типа (одного цеха) нам потребуются объекты:

  • queue - имитация склада изготовленных цехом блоков;
  • delay - имитация времени тестирования блока;
  • selectOutPut - имитация процесса браковки блоков.
Добавлен элемент диаграммы класса Test

Рис. 6.6. Добавлен элемент диаграммы класса Test
  1. Перетащите элемент Скруглённый прямоугольник. В нём мы разместим все объекты сегмента имитации работы постов контроля блоков. Оставьте имя, предложенное системой.
  2. Перейдите на страницу Дополнительные панели Свойства. Введите в поля X: 10, Y: 50, Ширина: 570, Высота: 330.

Добавьте на диаграмму класса Test объекты класса Queue.

  1. Из библиотеки Enterprise Library перетащите объект queue и разместите слева сверху, как на рис. 6.7.
  2. На странице Основные панели Свойства замените имя queue именем склИзгБл1 (склад изготовленных блоков цеха 1).
  3. В поле Класс заявки: Entity замените Product.
  4. Установите Вместимость: Максимальная.
  5. Скопируйте объект с именем склИзгБл1.
  6. Вставьте и поместите три объекта класса Queue (см. рис. 6.7).

Добавьте на диаграмму класса Test объекты класса Delay.

  1. Из библиотеки Enterprise Library перетащите один объект delay и поместите справа рядом с объектом склИзгБл1, как на рис. 6.7.
    Размещение элементов на диаграмме активного класса Test

    увеличить изображение
    Рис. 6.7. Размещение элементов на диаграмме активного класса Test
  2. На странице Основные панели Свойства замените имя delay именем постКонтрБлок1 (посты контроля блоков цеха 1).
  3. В поле Класс заявки: Entity замените Product.
  4. Введите в поле Время задержки: exponential (1/get_Main().timeTestBlock1).
  5. Введите get_Main().postKontr1 в поле Вместимость:.
  6. Действие при выходе
    get_Main().kolTestBlock1++;
    get_Main().sumCostBlock1 += get_Main().stTestBlock1;
    get_Main().costTestBlock1+=get_Main().stTestBlock1;
    get_Main().costTestBlock += get_Main().stTestBlock1;
    get_Main().sumCostBlock += get_Main().stTestBlock1;
  7. Скопируйте объект с именем постКонтрБлок1.
  8. Вставьте и разместите три объекта delay (см. рис. 6.7).
  9. Последовательно выделите и внесите правки в их свойства (табл. 6.4). Внесите правки и в свойство Действие при выходе.
Таблица 6.4.
Имя Время задержки Вместимость
постКонтрБлок2 exponential get_Main().
(1/get_Main().timeTestBlock2) postKontr2
постКонтрБлок3 exponential get_Main().
(1/get_Main().timeTestBlock3) postKontr3
постКонтрБлок4 exponential get_Main().
(1/get_Main().timeTestBlock4) postKontr4

Добавьте на диаграмму Test объекты класса SelectOutput.

  1. Перетащите объект selectOutput и разместите справа рядом с объектом постКонтрБлок1, как на рис. 6.7.
  2. На странице Основные панели Свойства замените имя selectOutPut именем ОтбракБлок1 (отбраковка блоков цеха 1).
  3. Установите свойства объекта согласно табл. 6.5.
  4. Скопируйте объект с именем ОтбракБлок1.
  5. Вставьте три объекта класса SelectOutput (см. рис. 6.7).
  6. Последовательно выделите вставленные объекты и скорректируйте значения их свойств согласно табл. 6.5.
  7. Соедините входы и выходы объектов диаграммы класса Test согласно рис. 6.7.

Код в свойство Действие при выходе (true) введен для учёта, например, для цеха 1:

  • gotBlock1 - количества готовых блоков цеха 1.

Код в свойстве Действие при выходе (false) обеспечивает счёт количества brakBlock1 забракованных блоков цеха 1.

Таблица 6.5.
Свойства Значение
Имя ОтбракБлок1
Класс заявки Product
Выход true выбирается С заданной вероятностью
Вероятность [0…1] 1-get_Main().procBrakBlock1
Действие при выходе (true) get_Main().gotBlock1++;
Действие при выходе (false) get_Main().brakBlock1++;
entity.sign1 = 1;
entity.numBlBrak1 = 1;
Имя ОтбракБлок2
Класс заявки Product
Выход true выбирается С заданной вероятностью
Вероятность [0…1] 1-get_Main().procBrakBlock2
Действие при выходе (true) get_Main().gotBlock2++;
Действие при выходе (false) get_Main().brakBlock2++;
entity.sign1 = 1;
entity.numBlBrak2 = 1;
Имя ОтбракБлок3
Класс заявки Product
Выход true выбирается С заданной вероятностью
Вероятность [0…1] 1-get_Main().procBrakBlock3
Действие при выходе (true) get_Main().gotBlock3++;
Действие при выходе (false) get_Main().brakBlock3++;
entity.sign1 = 1;
entity.numBlBrak3 = 1;
Имя ОтбракБлок4
Класс заявки Product
Выход true выбирается С заданной вероятностью
Вероятность [0…1] 1-get_Main().procBrakBlock4
Действие при выходе (true) get_Main().gotBlock4++;
Действие при выходе (false) get_Main().brakBlock4++;
entity.sign1 = 1;
entity.numBlBrak4 = 1;

В поле entity.sign1 записывается 1 - признак брака на постах контроля, а также единица записывается в поле entity.numBlock1 … entity.numBlock4. Это нужно для раздельного счёта забракованных блоков.

Перейдите на диаграмму класса Main.

Алексей Гроссман
Алексей Гроссман

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

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