Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MY_GPS.DOC
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
357.38 Кб
Скачать
  1. Базовая модель производственного модуля

В примере 1 была рассмотрена простейшая модель производственного модуля. Ее основные недостатки – малая адекватность и невозможность использования для исследования реальных производственных объектов.

Первым рассмотренным способом ввода транзактов в модель является использование блоков generate. Существует также второй способ ввода транзактов. Этот метод требует использования блока split (расщепить).

  1. Блок split

Как только транзакт, уже находящийся в модели, входит в блок split, происходит ввод в модель нескольких дополнительных транзактов. Число дополнительных транзактов задается операндом «А». Транзакт-родитель из блока split переходит в очередной последующий блок. Вновь созданные транзакты переходят к блоку, символическая метка которого записана в операнде «В».

Например: split 9, met1

Данный блок создает дополнительно 9 транзактов и направляет их в блок с меткой met1.

    1. Блоки link и unlink

При использовании в модели блока расщепление поступившей партии на отдельные заготовки возникает необходимость моделирования накопителя. Использование очередей для этой цели неудобно, так как транзакты во время ожидания в очереди находятся в активном состоянии и сильно замедляют процесс моделирования, поэтому удобнее воспользоваться для этой цели так называемыми «цепочками пользователя» (ЦП). При помещении в ЦП транзакты удаляется из списка активных событий и сохраняются в пассивном режиме до момента обращения к ним. Цепочка пользователя однозначно определяется парой блоков link (поместить в ЦП) и unlink (удалить из ЦП).

Операнд «А» блока link содержит имя ЦП, операнд «В» – порядок формирования очереди, в операнде «С» может быть задана метка перехода.

Например: link bxp1,fifo,next1

Все транзакты, попадающие в блок link, помещаются в цепочку пользователя с именем bxp1. Порядок формирования очереди: fifo – первый пришел, первый обслужен. Возможны и другие способы построения очереди, например, lifo – последний пришел, первый обслужен. Данный способ можно использовать при моделировании складывания заготовок одна на другую. Операнд «С» – next1 задает следующий режим работы: при входе в «пустую» ЦП транзакт, минуя ее, направляется к блоку с указанной в операнде «С» меткой.

Вывод транзактов из ЦП осуществляется при помощи блока unlink. Операнды блока задают: «А» – имя ЦП, «В» – метку блока, в которой следует поместить удаляемый транзакт, «С» – количество удаляемых на ЦП транзактов.

    1. Блок assemble

Блок assemble (собрать) позволяет организовать сбор готовых деталей в транспортные партии. Операнд «А» содержит число собираемых в партию транзактов. На выходе блока assemble формируется один транзакт-партия. При этом необходимо учитывать, что если транзакты создавались блоком split, то операнд «А» блока assemble должен быть равен операнду «А»+1 блока split или меньше и кратен ему.

    1. Пример 2. Модель обрабатывающего производственного модуля с накопителем и транспортными партиями

Необходимо построить модель обрабатывающего производственного модуля. Заготовки на обработку поступают партиями по 10 штук с интервалом 1 ± 0,5 часа и помещаются в ориентирующий накопитель кассетного типа. Время загрузки – выгрузки составляет 25 ± 10 с. Время обработки 6 ± 1 мин.

Промоделировать работу модуля в течение 8 часов. Исследовать возможность сокращения времени обработки до 5 ± 2 мин. Провести прогон модели в установившемся режиме с ненулевыми условиями.

Блок-схема модели приведена на рис. 4.1. Ввод партий заготовок осуществляется блоком generate. Затем происходит разделение на отдельные заготовки. В блоке split создаются 9 транзактов-копий, которые вместе с исходным транзактом вводятся блоком link в цепочку пользователя с именем bxp1. Первый транзакт из партии переходит на обработку в блок с меткой next1.

Последовательность загрузки, обработки, выгрузки реализована с помощью соответствующих блоков seize, advance, release . К моменту освобождения робота после операции выгрузки необходимо подготовить для загрузки очередную заготовку. Вывод заготовки-транзакта из накопителя – ЦП осуществляется блоком unlink, который играет роль защелки на выходе накопителя.

Полная распечатка текста моделирующей программы приведена на рис. 4.2.

Рассмотрим использующиеся управляющие карты, первой картой start 1 осуществляется первый прогон модели и вывод выходной статистики. Карта clear возвращает модель в исходное состояние. Для исследования изменения времени обработки заготовки, воспользуемся средством переопределения блоков. Блок advance с меткой met1 повторно записывается с новыми значениями операндов «А» и «В» после карты clear. Повторный запуск модели осуществляется очередной картой start. Для получения статистики о работе в установившемся режиме, необходимо исключить влияние переходного процесса. Для этой цели используется карта reset. Она сбрасывает всю накопленную статистику, оставляя модель в том состоянии, в котором она была остановлена. Таким образом, третий прогон модели осуществляется с начальных условий соответствующих установившемуся режиму работы.

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

Результаты прогона в установившемся режиме показывают более высокие значения коэффициента использования оборудования и увеличение выхода готовых деталей (с 69 до 72 штук).

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

Так, например, на рис. 4.6 приведена блок-схема модели производственного модуля с учетом сбора готовых деталей в транспортные партии по 25 штук. Для этой цели используется блок assemble .

Рис. 4.1. Блок-схема модели

; GPSS/PC Program File TEST.GPS. (V 2, # 37349) 10-03-2002 11:18:46

10 *

20 * ЛАБОРАТОРНАЯ РАБОТА № 2

30 * ИССЛЕДОВАНИЕ РАБОТЫ ПРОИЗВОДСТВЕННОГО МОДУЛЯ

40 *

50 * ВЫПОЛНИЛ:...........

60 * ГРУППА:.............

70 * ПРИНЯЛ:.............

80 *

90 GENERATE 3600,1800 ;Ввод транзакта – заготовки

100 SPLIT 9,BXP1 ;Разделение на заготовки

110 BXP1 LINK BXP1,FIFO,NEXT1 ;накопитель

120 NEXT1 SEIZE ZRM1 ;Занять робот

130 ADVANCE 25,10 ;Загрузка

140 SEIZE TST1 ;Занять станок

150 RELEASE ZRM1 ;Освободить робот

160 MET1 ADVANCE 360,60 ;Обработка ДЕТАЛИ

170 SEIZE ZRM1 ;Занять робот

180 RELEASE TST1 ;Освободить станок

190 ADVANCE 25,10 ;Выгрузка

200 UNLINK BXP1,NEXT1,1 ;Подготовить деталь

210 RELEASE ZRM1 ;Освободить робот

220 TERMINATE ;Вывод из модели

230 *

240 * ВТОРОЙ СЕГМЕНТ МОДЕЛИ

250 * ТАЙМЕР

260 *

270 GENERATE 28800 ;ЗАВЕРШЕНИЕ МОДЕЛИРОВАНИЯ

280 TERMINATE 1 ;ЧЕРЕЗ 8 ЧАСОВ

290 *

300 * CONTROL CARDS

310 *

320 START 1 ;1 ПРОГОН МОДЕЛИ

330 CLEAR ;УСТАНОВКА В ИСХОДНОЕ СОСТОЯНИЕ

340 MET1 ADVANCE 300,120 ;ПЕРЕОПРЕДЕЛЕНИЕ БЛОКОВ

350 START 1 ;2 ПРОГОН МОДЕЛИ

360 RESET ;СБРОС СТАТИСТИКИ

370 START 1 ;3 ПРОГОН МОДЕЛИ

Рис. 4.2. Текст моделирующей программы

START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY

0 28800 15 2 0 277888

LINE LOC BLOCK_TYPE ENTRY_COUNT CURRENT_COUNT RETRY

90 1 GENERATE 7 0 0

100 2 SPLIT 7 0 0

110 BXP1 LINK 70 10 0

120 NEXT1 SEIZE 60 0 0

130 5 ADVANCE 60 0 0

140 6 SEIZE 60 0 0

150 7 RELEASE 60 0 0

160 MET1 ADVANCE 60 1 0

170 9 SEIZE 59 0 0

180 10 RELEASE 59 0 0

190 11 ADVANCE 59 0 0

200 12 UNLINK 59 0 0

210 13 RELEASE 59 0 0

220 14 TERMINATE 59 0 0

270 15 GENERATE 1 0 0

280 16 TERMINATE 1 0 0

FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY

ZRM1 119 0.104 25.19 1 0 0 0 0 0

TST1 60 0.740 355.27 1 62 0 0 0 0

USER_CHAIN CHAIN_SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME

3 10 0 6.94 69 17 2897.46

Рис. 4.3

START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY

0 28800 15 2 0 327712

LINE LOC BLOCK_TYPE ENTRY_COUNT CURRENT_COUNT RETRY

90 1 GENERATE 7 0 0

100 2 SPLIT 7 0 0

110 BXP1 LINK 70 0 0

120 NEXT1 SEIZE 70 0 0

130 5 ADVANCE 70 0 0

140 6 SEIZE 70 0 0

150 7 RELEASE 70 0 0

160 8 ADVANCE 70 1 0

170 9 SEIZE 69 0 0

180 10 RELEASE 69 0 0

190 11 ADVANCE 69 0 0

200 12 UNLINK 69 0 0

210 13 RELEASE 69 0 0

220 14 TERMINATE 69 0 0

270 15 GENERATE 1 0 0

280 16 TERMINATE 1 0 0

340 MET1 ADVANCE 0 0 0

FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY

ZRM1 139 0.122 25.38 1 0 0 0 0 0

TST1 70 0.713 293.64 1 72 0 0 0 0

USER_CHAIN CHAIN_SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME

3 0 0 5.73 68 17 3260.90

Рис. 4.4

START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY

29180 57600 15 2 0 327376

LINE LOC BLOCK_TYPE ENTRY_COUNT CURRENT_COUNT RETRY

90 1 GENERATE 8 0 0

100 2 SPLIT 8 0 0

110 BXP1 LINK 80 8 0

120 NEXT1 SEIZE 72 0 0

130 5 ADVANCE 72 0 0

140 6 SEIZE 72 0 0

150 7 RELEASE 72 0 0

160 8 ADVANCE 73 1 0

170 9 SEIZE 72 0 0

180 10 RELEASE 72 0 0

190 11 ADVANCE 72 0 0

200 12 UNLINK 72 0 0

210 13 RELEASE 72 0 0

220 14 TERMINATE 72 0 0

270 15 GENERATE 1 0 0

280 16 TERMINATE 1 0 0

340 MET1 ADVANCE 0 0 0

FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY

ZRM1 144 0.123 24.29 1 0 0 0 0 0

TST1 73 0.786 306.34 1 145 0 0 0 0

USER_CHAIN CHAIN_SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME

3 8 0 5.38 75 14 2040.15

Рис. 4.5

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]